зеркало из https://github.com/mozilla/gecko-dev.git
Bug 769435 - Convert test_openLocationLastURL.js from a xpcshell test to a mochitest r=ehsan
This commit is contained in:
Родитель
76c82f3b74
Коммит
518aa785ee
|
@ -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 \
|
||||
|
|
|
@ -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);
|
||||
}
|
|
@ -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();
|
||||
}
|
|
@ -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]
|
||||
|
|
Загрузка…
Ссылка в новой задаче