browser_423132.js (1512B)
1 "use strict"; 2 3 /** 4 * Tests that cookies are stored and restored correctly 5 * by sessionstore (bug 423132). 6 */ 7 add_task(async function () { 8 const testURL = 9 "http://mochi.test:8888/browser/" + 10 "browser/components/sessionstore/test/browser_423132_sample.html"; 11 12 Services.cookies.removeAll(); 13 // make sure that sessionstore.js can be forced to be created by setting 14 // the interval pref to 0 15 await SpecialPowers.pushPrefEnv({ 16 set: [["browser.sessionstore.interval", 0]], 17 }); 18 19 let tab = BrowserTestUtils.addTab(gBrowser, testURL); 20 await BrowserTestUtils.browserLoaded(tab.linkedBrowser); 21 await TabStateFlusher.flush(tab.linkedBrowser); 22 23 // get the sessionstore state for the window 24 let state = ss.getBrowserState(); 25 26 // verify our cookie got set during pageload 27 let i = 0; 28 for (var cookie of Services.cookies.cookies) { 29 i++; 30 } 31 Assert.equal(i, 1, "expected one cookie"); 32 33 // remove the cookie 34 Services.cookies.removeAll(); 35 36 // restore the window state 37 await setBrowserState(state); 38 39 // at this point, the cookie should be restored... 40 for (var cookie2 of Services.cookies.cookies) { 41 if (cookie.name == cookie2.name) { 42 break; 43 } 44 } 45 is(cookie.name, cookie2.name, "cookie name successfully restored"); 46 is(cookie.value, cookie2.value, "cookie value successfully restored"); 47 is(cookie.path, cookie2.path, "cookie path successfully restored"); 48 49 // clean up 50 Services.cookies.removeAll(); 51 BrowserTestUtils.removeTab(gBrowser.tabs[1]); 52 });