fune/browser/base/content/test/urlbar/browser_URLBarSetURI.js

98 lines
2.8 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 = win.gBrowser.addTab(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();
}