Revision control
Copy as Markdown
Other Tools
/* 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
function test() {
waitForExplicitFinish();
let fieldValues = {
username: "User " + Math.random(),
passwd: "pwd" + Date.now()
};
// make sure we do save form data
Services.prefs.setIntPref("browser.sessionstore.privacy_level", 0);
let rootDir = getRootDirectory(gTestPath);
let testURL = rootDir + "browser_454908_sample.html";
let tab = getBrowser().addTab(testURL);
tab.linkedBrowser.addEventListener("load", function testTabLBLoad(aEvent) {
tab.linkedBrowser.removeEventListener("load", testTabLBLoad, true);
let doc = tab.linkedBrowser.contentDocument;
for (let id in fieldValues)
doc.getElementById(id).value = fieldValues[id];
getBrowser().removeTab(tab);
tab = getBrowser().undoCloseTab();
tab.linkedBrowser.addEventListener("load", function testTabLBLoad2(aEvent) {
tab.linkedBrowser.removeEventListener("load", testTabLBLoad2, true);
let doc = tab.linkedBrowser.contentDocument;
for (let id in fieldValues) {
let node = doc.getElementById(id);
if (node.type == "password")
is(node.value, "", "password wasn't saved/restored");
else
is(node.value, fieldValues[id], "username was saved/restored");
}
// clean up
if (Services.prefs.prefHasUserValue("browser.sessionstore.privacy_level"))
Services.prefs.clearUserPref("browser.sessionstore.privacy_level");
// undoCloseTab can reuse a single blank tab, so we have to
// make sure not to close the window when closing our last tab
if (gBrowser.tabContainer.childNodes.length == 1)
gBrowser.addTab();
gBrowser.removeTab(tab);
finish();
}, true);
}, true);
}