summaryrefslogtreecommitdiffstats
path: root/browser/components/sessionstore/test/browser_restore_cookies_noOriginAttributes.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/sessionstore/test/browser_restore_cookies_noOriginAttributes.js')
-rw-r--r--browser/components/sessionstore/test/browser_restore_cookies_noOriginAttributes.js171
1 files changed, 171 insertions, 0 deletions
diff --git a/browser/components/sessionstore/test/browser_restore_cookies_noOriginAttributes.js b/browser/components/sessionstore/test/browser_restore_cookies_noOriginAttributes.js
new file mode 100644
index 000000000..5767c6c0f
--- /dev/null
+++ b/browser/components/sessionstore/test/browser_restore_cookies_noOriginAttributes.js
@@ -0,0 +1,171 @@
+/*
+ * Bug 1267910 - The regression test case for session cookies.
+ */
+
+"use strict";
+
+const TEST_HOST = "www.example.com";
+const COOKIE =
+{
+ name: "test1",
+ value: "yes1",
+ path: "/browser/browser/components/sessionstore/test/"
+};
+const SESSION_DATA = `
+{
+ "version": ["sessionrestore", 1],
+ "windows": [{
+ "tabs": [{
+ "entries": [],
+ "lastAccessed": 1463893009797,
+ "hidden": false,
+ "attributes": {},
+ "image": null
+ }, {
+ "entries": [{
+ "url": "http://www.example.com/browser/browser/components/sessionstore/test/browser_1267910_page.html",
+ \"charset": "UTF-8",
+ "ID": 0,
+ "docshellID": 2,
+ "originalURI": "http://www.example.com/browser/browser/components/sessionstore/test/browser_1267910_page.html",
+ \"docIdentifier": 0,
+ "persist": true
+ }],
+ "lastAccessed": 1463893009321,
+ "hidden": false,
+ "attributes": {},
+ "userContextId": 0,
+ "index": 1,
+ "image": "http://www.example.com/favicon.ico"
+ }],
+ "selected": 1,
+ "_closedTabs": [],
+ "busy": false,
+ "width": 1024,
+ "height": 768,
+ "screenX": 4,
+ "screenY": 23,
+ "sizemode": "normal",
+ "cookies": [{
+ "host": "www.example.com",
+ "value": "yes1",
+ "path": "/browser/browser/components/sessionstore/test/",
+ "name": "test1"
+ }]
+ }],
+ "selectedWindow": 1,
+ "_closedWindows": [],
+ "session": {
+ "lastUpdate": 1463893009801,
+ "startTime": 1463893007134,
+ "recentCrashes": 0
+ },
+ "global": {}
+}`;
+const SESSION_DATA_OA = `
+{
+ "version": ["sessionrestore", 1],
+ "windows": [{
+ "tabs": [{
+ "entries": [],
+ "lastAccessed": 1463893009797,
+ "hidden": false,
+ "attributes": {},
+ "image": null
+ }, {
+ "entries": [{
+ "url": "http://www.example.com/browser/browser/components/sessionstore/test/browser_1267910_page.html",
+ \"charset": "UTF-8",
+ "ID": 0,
+ "docshellID": 2,
+ "originalURI": "http://www.example.com/browser/browser/components/sessionstore/test/browser_1267910_page.html",
+ \"docIdentifier": 0,
+ "persist": true
+ }],
+ "lastAccessed": 1463893009321,
+ "hidden": false,
+ "attributes": {},
+ "userContextId": 0,
+ "index": 1,
+ "image": "http://www.example.com/favicon.ico"
+ }],
+ "selected": 1,
+ "_closedTabs": [],
+ "busy": false,
+ "width": 1024,
+ "height": 768,
+ "screenX": 4,
+ "screenY": 23,
+ "sizemode": "normal",
+ "cookies": [{
+ "host": "www.example.com",
+ "value": "yes1",
+ "path": "/browser/browser/components/sessionstore/test/",
+ "name": "test1",
+ "originAttributes": {
+ "addonId": "",
+ "appId": 0,
+ "inIsolatedMozBrowser": false,
+ "userContextId": 0
+ }
+ }]
+ }],
+ "selectedWindow": 1,
+ "_closedWindows": [],
+ "session": {
+ "lastUpdate": 1463893009801,
+ "startTime": 1463893007134,
+ "recentCrashes": 0
+ },
+ "global": {}
+}`;
+
+add_task(function* run_test() {
+ // Wait until initialization is complete.
+ yield SessionStore.promiseInitialized;
+
+ // Clear cookies.
+ Services.cookies.removeAll();
+
+ // Open a new window.
+ let win = yield promiseNewWindowLoaded();
+
+ // Restore window with session cookies that have no originAttributes.
+ ss.setWindowState(win, SESSION_DATA, true);
+
+ let enumerator = Services.cookies.getCookiesFromHost(TEST_HOST, {});
+ let cookie;
+ let cookieCount = 0;
+ while (enumerator.hasMoreElements()) {
+ cookie = enumerator.getNext().QueryInterface(Ci.nsICookie);
+ cookieCount++;
+ }
+
+ // Check that the cookie is restored successfully.
+ is(cookieCount, 1, "expected one cookie");
+ is(cookie.name, COOKIE.name, "cookie name successfully restored");
+ is(cookie.value, COOKIE.value, "cookie value successfully restored");
+ is(cookie.path, COOKIE.path, "cookie path successfully restored");
+
+ // Clear cookies.
+ Services.cookies.removeAll();
+
+ // Restore window with session cookies that have originAttributes within.
+ ss.setWindowState(win, SESSION_DATA_OA, true);
+
+ enumerator = Services.cookies.getCookiesFromHost(TEST_HOST, {});
+ cookieCount = 0;
+ while (enumerator.hasMoreElements()) {
+ cookie = enumerator.getNext().QueryInterface(Ci.nsICookie);
+ cookieCount++;
+ }
+
+ // Check that the cookie is restored successfully.
+ is(cookieCount, 1, "expected one cookie");
+ is(cookie.name, COOKIE.name, "cookie name successfully restored");
+ is(cookie.value, COOKIE.value, "cookie value successfully restored");
+ is(cookie.path, COOKIE.path, "cookie path successfully restored");
+
+ // Close our window.
+ yield BrowserTestUtils.closeWindow(win);
+});