summaryrefslogtreecommitdiffstats
path: root/browser/components/sessionstore/test/browser_423132.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/sessionstore/test/browser_423132.js')
-rw-r--r--browser/components/sessionstore/test/browser_423132.js52
1 files changed, 52 insertions, 0 deletions
diff --git a/browser/components/sessionstore/test/browser_423132.js b/browser/components/sessionstore/test/browser_423132.js
new file mode 100644
index 0000000000..3a0113d4d0
--- /dev/null
+++ b/browser/components/sessionstore/test/browser_423132.js
@@ -0,0 +1,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]);
+});