forked from mirrors/gecko-dev
MozReview-Commit-ID: FuVu8skcqOe --HG-- extra : rebase_source : 8ab34c4e46a7c3075b459bf44786ec184d10d203
70 lines
2.1 KiB
JavaScript
70 lines
2.1 KiB
JavaScript
/* 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/. */
|
|
"use strict";
|
|
|
|
/* globals
|
|
waitForExplicitFinish, whenNewWindowLoaded, whenNewTabLoaded,
|
|
executeSoon, registerCleanupFunction, finish, is
|
|
*/
|
|
/* exported test */
|
|
|
|
// This test makes sure that opening a new tab in private browsing mode opens about:privatebrowsing
|
|
function test() {
|
|
// initialization
|
|
waitForExplicitFinish();
|
|
|
|
let windowsToClose = [];
|
|
let newTabURL;
|
|
let mode;
|
|
|
|
function doTest(aIsPrivateMode, aWindow, aCallback) {
|
|
whenNewTabLoaded(aWindow, function() {
|
|
if (aIsPrivateMode) {
|
|
mode = "per window private browsing";
|
|
newTabURL = "about:privatebrowsing";
|
|
} else {
|
|
mode = "normal";
|
|
newTabURL = "about:newtab";
|
|
}
|
|
|
|
is(aWindow.gBrowser.currentURI.spec, newTabURL,
|
|
"URL of NewTab should be " + newTabURL + " in " + mode + " mode");
|
|
|
|
aWindow.gBrowser.removeTab(aWindow.gBrowser.selectedTab);
|
|
aCallback();
|
|
});
|
|
}
|
|
|
|
function testOnWindow(aOptions, aCallback) {
|
|
whenNewWindowLoaded(aOptions, function(aWin) {
|
|
windowsToClose.push(aWin);
|
|
// execute should only be called when need, like when you are opening
|
|
// web pages on the test. If calling executeSoon() is not necesary, then
|
|
// call whenNewWindowLoaded() instead of testOnWindow() on your test.
|
|
executeSoon(() => aCallback(aWin));
|
|
});
|
|
}
|
|
|
|
// this function is called after calling finish() on the test.
|
|
registerCleanupFunction(function() {
|
|
windowsToClose.forEach(function(aWin) {
|
|
aWin.close();
|
|
});
|
|
});
|
|
|
|
// test first when not on private mode
|
|
testOnWindow({}, function(aWin) {
|
|
doTest(false, aWin, function() {
|
|
// then test when on private mode
|
|
testOnWindow({private: true}, function(aWin2) {
|
|
doTest(true, aWin2, function() {
|
|
// then test again when not on private mode
|
|
testOnWindow({}, function(aWin3) {
|
|
doTest(false, aWin3, finish);
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
}
|