Bug 769435 - Convert test_openLocationLastURL.js from a xpcshell test to a mochitest r=ehsan

This commit is contained in:
Andres Hernandez 2012-07-18 10:44:51 -06:00
Родитель 76c82f3b74
Коммит 518aa785ee
4 изменённых файлов: 66 добавлений и 81 удалений

Просмотреть файл

@ -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]