tor-browser

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

cookieStore_event_overwrite.https.window.js (1247B)


      1 'use strict';
      2 
      3 promise_test(async testCase => {
      4  testCase.add_cleanup(async () => {
      5    await cookieStore.delete('cookie-name');
      6  });
      7 
      8  // The events are asynchronously dispatched. Let's wait for both in the
      9  // expected order to avoid race conditions.
     10  {
     11    const eventPromise = new Promise((resolve) => {
     12      cookieStore.onchange = resolve;
     13    });
     14    await cookieStore.set('cookie-name', 'cookie-value');
     15 
     16    const event = await eventPromise;
     17    assert_true(event instanceof CookieChangeEvent);
     18    assert_equals(event.type, 'change');
     19    assert_equals(event.changed.length, 1);
     20    assert_equals(event.changed[0].name, 'cookie-name');
     21  }
     22 
     23  {
     24    const eventPromise = new Promise((resolve) => {
     25      cookieStore.onchange = resolve;
     26    });
     27    await cookieStore.set('cookie-name', 'new-cookie-value');
     28 
     29    const event = await eventPromise;
     30    assert_true(event instanceof CookieChangeEvent);
     31    assert_equals(event.type, 'change');
     32    assert_equals(event.changed.length, 1);
     33    assert_equals(event.changed[0].name, 'cookie-name');
     34    assert_equals(event.changed[0].value, 'new-cookie-value');
     35    assert_equals(event.deleted.length, 0);
     36  }
     37 }, 'cookieStore fires change event for cookie overwritten by cookieStore.set()');