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