diff --git a/browser/components/privatebrowsing/test/browser/Makefile.in b/browser/components/privatebrowsing/test/browser/Makefile.in index 183493da63b4..02377ab8ddc4 100644 --- a/browser/components/privatebrowsing/test/browser/Makefile.in +++ b/browser/components/privatebrowsing/test/browser/Makefile.in @@ -14,6 +14,8 @@ MOCHITEST_BROWSER_FILES = \ head.js \ browser_console_clear.js \ browser_privatebrowsing_certexceptionsui.js \ + browser_privatebrowsing_clearplugindata.js \ + browser_privatebrowsing_clearplugindata.html \ browser_privatebrowsing_commandline_toggle.js \ browser_privatebrowsing_concurrent.js \ browser_privatebrowsing_concurrent_page.html \ @@ -34,6 +36,7 @@ MOCHITEST_BROWSER_FILES = \ browser_privatebrowsing_newwindow_stopcmd.js \ browser_privatebrowsing_opendir.js \ browser_privatebrowsing_openlocation.js \ + browser_privatebrowsing_openLocationLastURL.js \ browser_privatebrowsing_pageinfo.js \ browser_privatebrowsing_placestitle.js \ browser_privatebrowsing_popupblocker.js \ @@ -52,8 +55,6 @@ MOCHITEST_BROWSER_FILES = \ browser_privatebrowsing_windowtitle_page.html \ browser_privatebrowsing_zoom.js \ browser_privatebrowsing_zoomrestore.js \ - browser_privatebrowsing_clearplugindata.js \ - browser_privatebrowsing_clearplugindata.html \ ctxmenu.html \ ctxmenu-image.png \ popup.html \ diff --git a/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_openLocationLastURL.js b/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_openLocationLastURL.js new file mode 100644 index 000000000000..3b4ce94164d2 --- /dev/null +++ b/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_openLocationLastURL.js @@ -0,0 +1,63 @@ +/* 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/. */ + +function test() { + const URL_1 = "mozilla.org"; + const URL_2 = "mozilla.com"; + + let openLocationLastURL = getLocationModule(); + let privateBrowsingService = + Cc["@mozilla.org/privatebrowsing;1"]. + getService(Ci.nsIPrivateBrowsingService); + + function clearHistory() { + Services.obs.notifyObservers(null, "browser:purge-session-history", ""); + } + function testURL(aTestNumber, aValue) { + is(openLocationLastURL.value, aValue, + "Test: " + aTestNumber + ": Validate last url value."); + } + + // Clean to start testing. + is(typeof openLocationLastURL, "object", "Validate type of last url."); + openLocationLastURL.reset(); + testURL(1, ""); + + // Test without private browsing. + openLocationLastURL.value = URL_1; + testURL(2, URL_1); + openLocationLastURL.value = ""; + testURL(3, ""); + openLocationLastURL.value = URL_2; + testURL(4, URL_2); + clearHistory(); + testURL(5, ""); + + // Test changing private browsing. + openLocationLastURL.value = URL_2; + privateBrowsingService.privateBrowsingEnabled = true; + testURL(6, ""); + privateBrowsingService.privateBrowsingEnabled = false; + testURL(7, URL_2); + privateBrowsingService.privateBrowsingEnabled = true; + openLocationLastURL.value = URL_1; + testURL(8, URL_1); + privateBrowsingService.privateBrowsingEnabled = false; + testURL(9, URL_2); + privateBrowsingService.privateBrowsingEnabled = true; + openLocationLastURL.value = URL_1; + testURL(10, URL_1); + + // Test cleaning history. + clearHistory(); + testURL(11, ""); + privateBrowsingService.privateBrowsingEnabled = false; + testURL(12, ""); +} + +function getLocationModule() { + let openLocationModule = {}; + Cu.import("resource:///modules/openLocationLastURL.jsm", openLocationModule); + return new openLocationModule.OpenLocationLastURL(window); +} diff --git a/browser/components/privatebrowsing/test/unit/test_openLocationLastURL.js b/browser/components/privatebrowsing/test/unit/test_openLocationLastURL.js deleted file mode 100644 index dbcbb6946b59..000000000000 --- a/browser/components/privatebrowsing/test/unit/test_openLocationLastURL.js +++ /dev/null @@ -1,78 +0,0 @@ -/* 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/. */ - -// Test the correct behavior of the openLocationLastURL.jsm JS module. - -function run_test_on_service() -{ - let openLocationModule = {}; - // This variable fakes the window required for getting the PB flag - let window = { gPrivateBrowsingUI: { privateWindow: false } }; - Cu.import("resource:///modules/openLocationLastURL.jsm", openLocationModule); - let gOpenLocationLastURL = new openLocationModule.OpenLocationLastURL(window); - - function clearHistory() { - // simulate clearing the private data - Cc["@mozilla.org/observer-service;1"]. - getService(Ci.nsIObserverService). - notifyObservers(null, "browser:purge-session-history", ""); - } - - let pb = Cc[PRIVATEBROWSING_CONTRACT_ID]. - getService(Ci.nsIPrivateBrowsingService); - let pref = Cc["@mozilla.org/preferences-service;1"]. - getService(Ci.nsIPrefBranch); - gOpenLocationLastURL.reset(); - - do_check_eq(typeof gOpenLocationLastURL, "object"); - do_check_eq(gOpenLocationLastURL.value, ""); - - function switchPrivateBrowsing(flag) { - pb.privateBrowsingEnabled = flag; - window.gPrivateBrowsingUI.privateWindow = flag; - } - - const url1 = "mozilla.org"; - const url2 = "mozilla.com"; - - gOpenLocationLastURL.value = url1; - do_check_eq(gOpenLocationLastURL.value, url1); - - gOpenLocationLastURL.value = ""; - do_check_eq(gOpenLocationLastURL.value, ""); - - gOpenLocationLastURL.value = url2; - do_check_eq(gOpenLocationLastURL.value, url2); - - clearHistory(); - do_check_eq(gOpenLocationLastURL.value, ""); - gOpenLocationLastURL.value = url2; - - switchPrivateBrowsing(true); - do_check_eq(gOpenLocationLastURL.value, ""); - - switchPrivateBrowsing(false); - do_check_eq(gOpenLocationLastURL.value, url2); - switchPrivateBrowsing(true); - - gOpenLocationLastURL.value = url1; - do_check_eq(gOpenLocationLastURL.value, url1); - - switchPrivateBrowsing(false); - do_check_eq(gOpenLocationLastURL.value, url2); - - switchPrivateBrowsing(true); - gOpenLocationLastURL.value = url1; - do_check_neq(gOpenLocationLastURL.value, ""); - clearHistory(); - do_check_eq(gOpenLocationLastURL.value, ""); - - switchPrivateBrowsing(false); - do_check_eq(gOpenLocationLastURL.value, ""); -} - -// Support running tests on both the service itself and its wrapper -function run_test() { - run_test_on_all_services(); -} diff --git a/browser/components/privatebrowsing/test/unit/xpcshell.ini b/browser/components/privatebrowsing/test/unit/xpcshell.ini index 8a1381b99632..297c8438aefc 100644 --- a/browser/components/privatebrowsing/test/unit/xpcshell.ini +++ b/browser/components/privatebrowsing/test/unit/xpcshell.ini @@ -7,7 +7,6 @@ tail = tail_privatebrowsing.js [test_aboutprivatebrowsing.js] [test_geoClearCookie.js] [test_httpauth.js] -[test_openLocationLastURL.js] [test_placesTitleNoUpdate.js] [test_privatebrowsing_autostart.js] [test_privatebrowsing_commandline.js]