summaryrefslogtreecommitdiffstats
path: root/browser/components/sessionstore/test/browser_privatetabs.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/sessionstore/test/browser_privatetabs.js')
-rw-r--r--browser/components/sessionstore/test/browser_privatetabs.js133
1 files changed, 0 insertions, 133 deletions
diff --git a/browser/components/sessionstore/test/browser_privatetabs.js b/browser/components/sessionstore/test/browser_privatetabs.js
deleted file mode 100644
index cc02e56cf..000000000
--- a/browser/components/sessionstore/test/browser_privatetabs.js
+++ /dev/null
@@ -1,133 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-add_task(function cleanup() {
- info("Forgetting closed tabs");
- while (ss.getClosedTabCount(window)) {
- ss.forgetClosedTab(window, 0);
- }
-});
-
-add_task(function() {
- let URL_PUBLIC = "http://example.com/public/" + Math.random();
- let URL_PRIVATE = "http://example.com/private/" + Math.random();
- let tab1, tab2;
- try {
- // Setup a public tab and a private tab
- info("Setting up public tab");
- tab1 = gBrowser.addTab(URL_PUBLIC);
- yield promiseBrowserLoaded(tab1.linkedBrowser);
-
- info("Setting up private tab");
- tab2 = gBrowser.addTab();
- yield promiseBrowserLoaded(tab2.linkedBrowser);
- yield setUsePrivateBrowsing(tab2.linkedBrowser, true);
- tab2.linkedBrowser.loadURI(URL_PRIVATE);
- yield promiseBrowserLoaded(tab2.linkedBrowser);
-
- info("Flush to make sure chrome received all data.");
- yield TabStateFlusher.flush(tab1.linkedBrowser);
- yield TabStateFlusher.flush(tab2.linkedBrowser);
-
- info("Checking out state");
- let state = yield promiseRecoveryFileContents();
-
- info("State: " + state);
- // Ensure that sessionstore.js only knows about the public tab
- ok(state.indexOf(URL_PUBLIC) != -1, "State contains public tab");
- ok(state.indexOf(URL_PRIVATE) == -1, "State does not contain private tab");
-
- // Ensure that we can close and undo close the public tab but not the private tab
- gBrowser.removeTab(tab2);
- tab2 = null;
-
- gBrowser.removeTab(tab1);
- tab1 = null;
-
- tab1 = ss.undoCloseTab(window, 0);
- ok(true, "Public tab supports undo close");
-
- is(ss.getClosedTabCount(window), 0, "Private tab does not support undo close");
-
- } finally {
- if (tab1) {
- gBrowser.removeTab(tab1);
- }
- if (tab2) {
- gBrowser.removeTab(tab2);
- }
- }
-});
-
-add_task(function () {
- const FRAME_SCRIPT = "data:," +
- "docShell.QueryInterface%28Components.interfaces.nsILoadContext%29.usePrivateBrowsing%3Dtrue";
-
- // Clear the list of closed windows.
- forgetClosedWindows();
-
- // Create a new window to attach our frame script to.
- let win = yield promiseNewWindowLoaded();
- let mm = win.getGroupMessageManager("browsers");
- mm.loadFrameScript(FRAME_SCRIPT, true);
-
- // Create a new tab in the new window that will load the frame script.
- let tab = win.gBrowser.addTab("about:mozilla");
- let browser = tab.linkedBrowser;
- yield promiseBrowserLoaded(browser);
- yield TabStateFlusher.flush(browser);
-
- // Check that we consider the tab as private.
- let state = JSON.parse(ss.getTabState(tab));
- ok(state.isPrivate, "tab considered private");
-
- // Ensure we don't allow restoring closed private tabs in non-private windows.
- win.gBrowser.removeTab(tab);
- is(ss.getClosedTabCount(win), 0, "no tabs to restore");
-
- // Create a new tab in the new window that will load the frame script.
- tab = win.gBrowser.addTab("about:mozilla");
- browser = tab.linkedBrowser;
- yield promiseBrowserLoaded(browser);
- yield TabStateFlusher.flush(browser);
-
- // Check that we consider the tab as private.
- state = JSON.parse(ss.getTabState(tab));
- ok(state.isPrivate, "tab considered private");
-
- // Check that all private tabs are removed when the non-private
- // window is closed and we don't save windows without any tabs.
- yield BrowserTestUtils.closeWindow(win);
- is(ss.getClosedWindowCount(), 0, "no windows to restore");
-});
-
-add_task(function () {
- // Clear the list of closed windows.
- forgetClosedWindows();
-
- // Create a new window to attach our frame script to.
- let win = yield promiseNewWindowLoaded({private: true});
-
- // Create a new tab in the new window that will load the frame script.
- let tab = win.gBrowser.addTab("about:mozilla");
- let browser = tab.linkedBrowser;
- yield promiseBrowserLoaded(browser);
- yield TabStateFlusher.flush(browser);
-
- // Check that we consider the tab as private.
- let state = JSON.parse(ss.getTabState(tab));
- ok(state.isPrivate, "tab considered private");
-
- // Ensure that closed tabs in a private windows can be restored.
- win.gBrowser.removeTab(tab);
- is(ss.getClosedTabCount(win), 1, "there is a single tab to restore");
-
- // Ensure that closed private windows can never be restored.
- yield BrowserTestUtils.closeWindow(win);
- is(ss.getClosedWindowCount(), 0, "no windows to restore");
-});
-
-function setUsePrivateBrowsing(browser, val) {
- return sendMessage(browser, "ss-test:setUsePrivateBrowsing", val);
-}
-