fune/browser/base/content/test/urlbar/browser_URLBarSetURI.js
Jonathan Kingston 2f0987a202 Bug 1362034 - Tests for addTab() to provide the correct triggering principal. r=ckerschb r?=gijs
Summary: Depends on D2046

Reviewers: ckerschb!, Gijs!

Tags: #secure-revision

Bug #: 1362034

Differential Revision: https://phabricator.services.mozilla.com/D2047

--HG--
extra : source : 33884d05cc94463950b31fab1fd2f37ada9becef
extra : intermediate-source : 72471adb75d5ec3dc2b0c8f972a6f1f26bfd3ae2
extra : histedit_source : f384cbab58401575afc3443c9a431b73cff806d4
2018-07-06 21:16:29 +01:00

98 lines
2.9 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/. */
function test() {
waitForExplicitFinish();
// avoid prompting about phishing
Services.prefs.setIntPref(phishyUserPassPref, 32);
registerCleanupFunction(function() {
Services.prefs.clearUserPref(phishyUserPassPref);
});
nextTest();
}
const phishyUserPassPref = "network.http.phishy-userpass-length";
function nextTest() {
let testCase = tests.shift();
if (testCase) {
testCase(function() {
executeSoon(nextTest);
});
} else {
executeSoon(finish);
}
}
var tests = [
function revert(next) {
loadTabInWindow(window, function(tab) {
gURLBar.handleRevert();
is(gURLBar.textValue, "example.com", "URL bar had user/pass stripped after reverting");
gBrowser.removeTab(tab);
next();
});
},
function customize(next) {
// Need to wait for delayedStartup for the customization part of the test,
// since that's where BrowserToolboxCustomizeDone is set.
BrowserTestUtils.openNewBrowserWindow().then(function(win) {
loadTabInWindow(win, function() {
openToolbarCustomizationUI(function() {
closeToolbarCustomizationUI(function() {
is(win.gURLBar.textValue, "example.com", "URL bar had user/pass stripped after customize");
win.close();
next();
}, win);
}, win);
});
});
},
function pageloaderror(next) {
loadTabInWindow(window, function(tab) {
// Load a new URL and then immediately stop it, to simulate a page load
// error.
tab.linkedBrowser.loadURI("http://test1.example.com");
tab.linkedBrowser.stop();
is(gURLBar.textValue, "example.com", "URL bar had user/pass stripped after load error");
gBrowser.removeTab(tab);
next();
});
}
];
function loadTabInWindow(win, callback) {
info("Loading tab");
let url = "http://user:pass@example.com/";
let tab = win.gBrowser.selectedTab = BrowserTestUtils.addTab(win.gBrowser, url);
BrowserTestUtils.browserLoaded(tab.linkedBrowser, false, url).then(() => {
info("Tab loaded");
is(win.gURLBar.textValue, "example.com", "URL bar had user/pass stripped initially");
callback(tab);
}, true);
}
function openToolbarCustomizationUI(aCallback, aBrowserWin) {
if (!aBrowserWin)
aBrowserWin = window;
aBrowserWin.gCustomizeMode.enter();
aBrowserWin.gNavToolbox.addEventListener("customizationready", function() {
executeSoon(function() {
aCallback(aBrowserWin);
});
}, {once: true});
}
function closeToolbarCustomizationUI(aCallback, aBrowserWin) {
aBrowserWin.gNavToolbox.addEventListener("aftercustomization", function() {
executeSoon(aCallback);
}, {once: true});
aBrowserWin.gCustomizeMode.exit();
}