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()');