tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

cookieStore_getAll_arguments.https.any.js (7454B)


      1 // META: title=Cookie Store API: cookieStore.getAll() arguments
      2 // META: global=window,serviceworker
      3 
      4 'use strict';
      5 
      6 promise_test(async testCase => {
      7  await cookieStore.set('cookie-name', 'cookie-value');
      8  testCase.add_cleanup(async () => {
      9    await cookieStore.delete('cookie-name');
     10  });
     11  await cookieStore.set('cookie-name-2', 'cookie-value-2');
     12  testCase.add_cleanup(async () => {
     13    await cookieStore.delete('cookie-name-2');
     14  });
     15 
     16  const cookies = await cookieStore.getAll();
     17  cookies.sort((a, b) => a.name.localeCompare(b.name));
     18  assert_equals(cookies.length, 2);
     19  assert_equals(cookies[0].name, 'cookie-name');
     20  assert_equals(cookies[0].value, 'cookie-value');
     21  assert_equals(cookies[1].name, 'cookie-name-2');
     22  assert_equals(cookies[1].value, 'cookie-value-2');
     23 }, 'cookieStore.getAll with no arguments');
     24 
     25 promise_test(async testCase => {
     26  await cookieStore.set('cookie-name', 'cookie-value');
     27  testCase.add_cleanup(async () => {
     28    await cookieStore.delete('cookie-name');
     29  });
     30  await cookieStore.set('cookie-name-2', 'cookie-value-2');
     31  testCase.add_cleanup(async () => {
     32    await cookieStore.delete('cookie-name-2');
     33  });
     34 
     35  const cookies = await cookieStore.getAll({});
     36  cookies.sort((a, b) => a.name.localeCompare(b.name));
     37  assert_equals(cookies.length, 2);
     38  assert_equals(cookies[0].name, 'cookie-name');
     39  assert_equals(cookies[0].value, 'cookie-value');
     40  assert_equals(cookies[1].name, 'cookie-name-2');
     41  assert_equals(cookies[1].value, 'cookie-value-2');
     42 }, 'cookieStore.getAll with empty options');
     43 
     44 promise_test(async testCase => {
     45  await cookieStore.set('cookie-name', 'cookie-value');
     46  testCase.add_cleanup(async () => {
     47    await cookieStore.delete('cookie-name');
     48  });
     49  await cookieStore.set('cookie-name-2', 'cookie-value-2');
     50  testCase.add_cleanup(async () => {
     51    await cookieStore.delete('cookie-name-2');
     52  });
     53 
     54  const cookies = await cookieStore.getAll('cookie-name');
     55  assert_equals(cookies.length, 1);
     56  assert_equals(cookies[0].name, 'cookie-name');
     57  assert_equals(cookies[0].value, 'cookie-value');
     58 }, 'cookieStore.getAll with positional name');
     59 
     60 promise_test(async testCase => {
     61  await cookieStore.set('cookie-name', 'cookie-value');
     62  testCase.add_cleanup(async () => {
     63    await cookieStore.delete('cookie-name');
     64  });
     65  await cookieStore.set('cookie-name-2', 'cookie-value-2');
     66  testCase.add_cleanup(async () => {
     67    await cookieStore.delete('cookie-name-2');
     68  });
     69 
     70  const cookies = await cookieStore.getAll({ name: 'cookie-name' });
     71  assert_equals(cookies.length, 1);
     72  assert_equals(cookies[0].name, 'cookie-name');
     73  assert_equals(cookies[0].value, 'cookie-value');
     74 }, 'cookieStore.getAll with name in options');
     75 
     76 promise_test(async testCase => {
     77  await cookieStore.set('cookie-name', 'cookie-value');
     78  testCase.add_cleanup(async () => {
     79    await cookieStore.delete('cookie-name');
     80  });
     81  await cookieStore.set('cookie-name-2', 'cookie-value-2');
     82  testCase.add_cleanup(async () => {
     83    await cookieStore.delete('cookie-name-2');
     84  });
     85 
     86  const cookies = await cookieStore.getAll('cookie-name',
     87                                           { name: 'wrong-cookie-name' });
     88  assert_equals(cookies.length, 1);
     89  assert_equals(cookies[0].name, 'cookie-name');
     90  assert_equals(cookies[0].value, 'cookie-value');
     91 }, 'cookieStore.getAll with name in both positional arguments and options');
     92 
     93 promise_test(async testCase => {
     94  await cookieStore.set('cookie-name', 'cookie-value');
     95  testCase.add_cleanup(async () => {
     96    await cookieStore.delete('cookie-name');
     97  });
     98 
     99  let target_url = self.location.href;
    100  if (self.GLOBAL.isWorker()) {
    101    target_url = target_url + '/path/within/scope';
    102  }
    103 
    104  const cookies = await cookieStore.getAll({ url: target_url });
    105  assert_equals(cookies.length, 1);
    106  assert_equals(cookies[0].name, 'cookie-name');
    107  assert_equals(cookies[0].value, 'cookie-value');
    108 }, 'cookieStore.getAll with absolute url in options');
    109 
    110 promise_test(async testCase => {
    111  await cookieStore.set('cookie-name', 'cookie-value');
    112  testCase.add_cleanup(async () => {
    113    await cookieStore.delete('cookie-name');
    114  });
    115 
    116  let target_path = self.location.pathname;
    117  if (self.GLOBAL.isWorker()) {
    118    target_path = target_path + '/path/within/scope';
    119  }
    120 
    121  const cookies = await cookieStore.getAll({ url: target_path });
    122  assert_equals(cookies.length, 1);
    123  assert_equals(cookies[0].name, 'cookie-name');
    124  assert_equals(cookies[0].value, 'cookie-value');
    125 }, 'cookieStore.getAll with relative url in options');
    126 
    127 if (!self.GLOBAL.isWorker()) {
    128  promise_test(async testCase => {
    129    const invalid_url =
    130        `${self.location.protocol}//${self.location.host}/different/path`;
    131    await promise_rejects_js(testCase, TypeError, cookieStore.getAll(
    132        { url: invalid_url }));
    133  }, 'cookieStore.getAll with invalid url path in options');
    134 } else {
    135  promise_test(async testCase => {
    136    await cookieStore.set('cookie-name', 'cookie-value');
    137    testCase.add_cleanup(async () => {
    138      await cookieStore.delete('cookie-name');
    139    });
    140 
    141    const sameorigin_url =
    142        `${self.location.protocol}//${self.location.host}/different/path`;
    143    const cookies = await cookieStore.getAll({ url: sameorigin_url });
    144    assert_equals(cookies.length, 1);
    145    assert_equals(cookies[0].name, 'cookie-name');
    146    assert_equals(cookies[0].value, 'cookie-value');
    147  }, 'cookieStore.getAll with same-origin url path in options');
    148 }
    149 
    150 promise_test(async testCase => {
    151  await cookieStore.set('cookie-name', 'cookie-value');
    152  testCase.add_cleanup(async () => {
    153    await cookieStore.delete('cookie-name');
    154  });
    155 
    156  const invalid_url =
    157      `${self.location.protocol}//www.example.com${self.location.pathname}`;
    158  await promise_rejects_js(testCase, TypeError, cookieStore.getAll(
    159      { url: invalid_url }));
    160 }, 'cookieStore.getAll with invalid url host in options');
    161 
    162 promise_test(async testCase => {
    163  await cookieStore.set('cookie-name', 'cookie-value');
    164  testCase.add_cleanup(async () => {
    165    await cookieStore.delete('cookie-name');
    166  });
    167 
    168  let target_url = self.location.href;
    169  if (self.GLOBAL.isWorker()) {
    170    target_url = target_url + '/path/within/scope';
    171  }
    172 
    173  target_url = target_url + "#foo";
    174 
    175  const cookies = await cookieStore.getAll({ url: target_url });
    176  assert_equals(cookies.length, 1);
    177  assert_equals(cookies[0].name, 'cookie-name');
    178  assert_equals(cookies[0].value, 'cookie-value');
    179 }, 'cookieStore.getAll with absolute url with fragment in options');
    180 
    181 promise_test(async testCase => {
    182  if (!self.GLOBAL.isWorker()) {
    183    await cookieStore.set('cookie-name', 'cookie-value');
    184    testCase.add_cleanup(async () => {
    185      await cookieStore.delete('cookie-name');
    186    });
    187 
    188    self.location = "#foo";
    189    let target_url = self.location.href;
    190 
    191    const cookies = await cookieStore.getAll({ url: target_url });
    192    assert_equals(cookies.length, 1);
    193    assert_equals(cookies[0].name, 'cookie-name');
    194    assert_equals(cookies[0].value, 'cookie-value');
    195  }
    196 }, 'cookieStore.getAll with absolute different url in options');
    197 
    198 promise_test(async testCase => {
    199  await cookieStore.set('cookie-name', 'cookie-value');
    200  testCase.add_cleanup(async () => {
    201    await cookieStore.delete('cookie-name');
    202  });
    203  const cookies = await cookieStore.getAll(' cookie-name \t');
    204  assert_equals(cookies.length, 1);
    205  assert_equals(cookies[0].name, 'cookie-name');
    206  assert_equals(cookies[0].value, 'cookie-value');
    207 }, 'cookieStore.getAll with whitespace');