Bug 806701 - Port browser_privatebrowsing_windowtitle.js to the new per-window PB APIs; r=ehsan
authorBellindira Castillo [:bellindira] <bellindira@appcoast.com>
Thu, 15 Nov 2012 19:07:55 -0600
changeset 113446 19e0634007b3d299a4e44f35c98ceb3bd5c10727
parent 113445 09fa9bbbfb022192bf757ca92828773a7004ebdd
child 113447 b7c7be527638eb90e30e46f757582cb77924afbc
push id23872
push useremorley@mozilla.com
push dateFri, 16 Nov 2012 17:06:27 +0000
treeherdermozilla-central@a7ed19f7d21a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersehsan
bugs806701
milestone19.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 806701 - Port browser_privatebrowsing_windowtitle.js to the new per-window PB APIs; r=ehsan
browser/components/privatebrowsing/test/browser/perwindow/Makefile.in
browser/components/privatebrowsing/test/browser/perwindow/browser_privatebrowsing_windowtitle.js
browser/components/privatebrowsing/test/browser/perwindow/browser_privatebrowsing_windowtitle_page.html
--- a/browser/components/privatebrowsing/test/browser/perwindow/Makefile.in
+++ b/browser/components/privatebrowsing/test/browser/perwindow/Makefile.in
@@ -30,13 +30,15 @@ MOCHITEST_BROWSER_FILES =  \
 		browser_privatebrowsing_opendir.js \
 		browser_privatebrowsing_openlocation.js \
 		browser_privatebrowsing_openLocationLastURL.js \
 		browser_privatebrowsing_popupblocker.js \
 		browser_privatebrowsing_protocolhandler.js \
 		browser_privatebrowsing_protocolhandler_page.html \
 		browser_privatebrowsing_theming.js \
 		browser_privatebrowsing_urlbarfocus.js \
+		browser_privatebrowsing_windowtitle.js \
+		browser_privatebrowsing_windowtitle_page.html \
 		browser_privatebrowsing_zoomrestore.js \
 		popup.html \
 		$(NULL)
 
 include $(topsrcdir)/config/rules.mk
copy from browser/components/privatebrowsing/test/browser/global/browser_privatebrowsing_windowtitle.js
copy to browser/components/privatebrowsing/test/browser/perwindow/browser_privatebrowsing_windowtitle.js
--- a/browser/components/privatebrowsing/test/browser/global/browser_privatebrowsing_windowtitle.js
+++ b/browser/components/privatebrowsing/test/browser/perwindow/browser_privatebrowsing_windowtitle.js
@@ -1,23 +1,18 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 // This test makes sure that the window title changes correctly while switching
 // from and to private browsing mode.
 
 function test() {
-  // initialization
-  gPrefService.setBoolPref("browser.privatebrowsing.keep_current_session", true);
-  let pb = Cc["@mozilla.org/privatebrowsing;1"].
-           getService(Ci.nsIPrivateBrowsingService);
-
   const testPageURL = "http://mochi.test:8888/browser/" +
-    "browser/components/privatebrowsing/test/browser/global/browser_privatebrowsing_windowtitle_page.html";
+    "browser/components/privatebrowsing/test/browser/perwindow/browser_privatebrowsing_windowtitle_page.html";
   waitForExplicitFinish();
   requestLongerTimeout(2);
 
   // initialization of expected titles
   let test_title = "Test title";
   let app_name = document.documentElement.getAttribute("title");
   const isOSX = ("nsILocalFileMac" in Ci);
   let page_with_title;
@@ -38,60 +33,67 @@ function test() {
     page_with_title = test_title + " - " + app_name;
     page_without_title = app_name;
     about_pb_title = "Would you like to start Private Browsing?" + " - " + app_name;
     pb_page_with_title = test_title + " - " + app_name + " (Private Browsing)";
     pb_page_without_title = app_name + " (Private Browsing)";
     pb_about_pb_title = "Private Browsing - " + app_name + " (Private Browsing)";
   }
 
-  function testTabTitle(url, insidePB, expected_title, funcNext) {
-    pb.privateBrowsingEnabled = insidePB;
-
-    let tab = gBrowser.selectedTab = gBrowser.addTab();
-    let browser = gBrowser.selectedBrowser;
-    browser.stop();
-    // ensure that the test is run after the titlebar has been updated
-    browser.addEventListener("pageshow", function () {
-      browser.removeEventListener("pageshow", arguments.callee, false);
-      executeSoon(function () {
-        is(document.title, expected_title, "The window title for " + url +
-           " is correct (" + (insidePB ? "inside" : "outside") +
-           " private browsing mode)");
+  function testTabTitle(aWindow, url, insidePB, expected_title, funcNext) {
+    executeSoon(function () {
+      let tab = aWindow.gBrowser.selectedTab = aWindow.gBrowser.addTab();
+      let browser = aWindow.gBrowser.selectedBrowser;
+      browser.stop();
+      // ensure that the test is run after the titlebar has been updated
+      browser.addEventListener("pageshow", function () {
+        browser.removeEventListener("pageshow", arguments.callee, false);
+        executeSoon(function () {
+          is(aWindow.document.title, expected_title, "The window title for " + url +
+             " is correct (" + (insidePB ? "inside" : "outside") +
+             " private browsing mode)");
 
-        let win = gBrowser.replaceTabWithWindow(tab);
-        win.addEventListener("load", function() {
-          win.removeEventListener("load", arguments.callee, false);
+          let win = aWindow.gBrowser.replaceTabWithWindow(tab);
+          win.addEventListener("load", function() {
+            win.removeEventListener("load", arguments.callee, false);
 
-          executeSoon(function() {
-            is(win.document.title, expected_title, "The window title for " + url +
-               " detached tab is correct (" + (insidePB ? "inside" : "outside") +
-               " private browsing mode)");
-            win.close();
+            executeSoon(function() {
+              is(win.document.title, expected_title, "The window title for " + url +
+                 " detached tab is correct (" + (insidePB ? "inside" : "outside") +
+                 " private browsing mode)");
+              win.close();
+              aWindow.close();
 
-            setTimeout(funcNext, 0);
-          });
-        }, false);
-      });
-    }, false);
+              setTimeout(funcNext, 0);
+            });
+          }, false);
+        });
+      }, false);
 
-    browser.loadURI(url);
+      browser.loadURI(url);
+    });
   }
 
-  function cleanup() {
-    pb.privateBrowsingEnabled = false;
-    gPrefService.clearUserPref("browser.privatebrowsing.keep_current_session");
-    finish();
-  }
-
-  testTabTitle("about:blank", false, page_without_title, function() {
-    testTabTitle(testPageURL, false, page_with_title, function() {
-      testTabTitle("about:privatebrowsing", false, about_pb_title, function() {
-        testTabTitle("about:blank", true, pb_page_without_title, function() {
-          testTabTitle(testPageURL, true, pb_page_with_title, function() {
-            testTabTitle("about:privatebrowsing", true, pb_about_pb_title, cleanup);
+  whenNewWindowLoaded({private: false}, function(win) {
+    testTabTitle(win, "about:blank", false, page_without_title, function() {
+      whenNewWindowLoaded({private: false}, function(win) {
+        testTabTitle(win, testPageURL, false, page_with_title, function() {
+          whenNewWindowLoaded({private: false}, function(win) {
+            testTabTitle(win, "about:privatebrowsing", false, about_pb_title, function() {
+              whenNewWindowLoaded({private: true}, function(win) {
+                testTabTitle(win, "about:blank", true, pb_page_without_title, function() {
+                  whenNewWindowLoaded({private: true}, function(win) {
+                    testTabTitle(win, testPageURL, true, pb_page_with_title, function() {
+                      whenNewWindowLoaded({private: true}, function(win) {
+                        testTabTitle(win, "about:privatebrowsing", true, pb_about_pb_title, finish);
+                      });
+                    });
+                  });
+                });
+              });
+            });
           });
         });
       });
     });
   });
   return;
 }
copy from browser/components/privatebrowsing/test/browser/global/browser_privatebrowsing_windowtitle_page.html
copy to browser/components/privatebrowsing/test/browser/perwindow/browser_privatebrowsing_windowtitle_page.html