mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-10-22 02:25:05 +00:00
83 lines
2.6 KiB
JavaScript
83 lines
2.6 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/. */
|
|
|
|
var FormHistory = (Components.utils.import("resource://gre/modules/FormHistory.jsm", {})).FormHistory;
|
|
|
|
/** Test for Bug 472396 **/
|
|
function test() {
|
|
// initialization
|
|
waitForExplicitFinish();
|
|
let windowsToClose = [];
|
|
let testURI =
|
|
"http://example.com/tests/toolkit/components/satchel/test/subtst_privbrowsing.html";
|
|
|
|
function doTest(aIsPrivateMode, aShouldValueExist, aWindow, aCallback) {
|
|
aWindow.gBrowser.selectedBrowser.addEventListener("load", function onLoad() {
|
|
if (aWindow.content.location != testURI) {
|
|
aWindow.gBrowser.selectedBrowser.loadURI(testURI);
|
|
return;
|
|
}
|
|
aWindow.gBrowser.selectedBrowser.removeEventListener("load", onLoad, true);
|
|
|
|
let checks = 0;
|
|
function doneCheck() {
|
|
checks++;
|
|
if (checks == 2) {
|
|
executeSoon(aCallback);
|
|
}
|
|
}
|
|
|
|
// Wait for the second load of the page to call the callback,
|
|
// because the first load submits the form and the page reloads after
|
|
// the form submission.
|
|
aWindow.gBrowser.selectedBrowser.addEventListener("load", function onLoad() {
|
|
aWindow.gBrowser.selectedBrowser.removeEventListener("load", onLoad, true);
|
|
doneCheck();
|
|
}, true);
|
|
|
|
let count = 0;
|
|
FormHistory.count({ fieldname: "field", value: "value" },
|
|
{ handleResult: function(result) {
|
|
count = result;
|
|
},
|
|
handleError: function (error) {
|
|
do_throw("Error occurred searching form history: " + error);
|
|
},
|
|
handleCompletion: function(num) {
|
|
is(count >= 1, aShouldValueExist, "Checking value exists in form history");
|
|
doneCheck();
|
|
}
|
|
});
|
|
}, true);
|
|
|
|
aWindow.gBrowser.selectedBrowser.loadURI(testURI);
|
|
}
|
|
|
|
function testOnWindow(aOptions, aCallback) {
|
|
whenNewWindowLoaded(aOptions, function(aWin) {
|
|
windowsToClose.push(aWin);
|
|
executeSoon(() => aCallback(aWin));
|
|
});
|
|
};
|
|
|
|
registerCleanupFunction(function() {
|
|
windowsToClose.forEach(function(aWin) {
|
|
aWin.close();
|
|
});
|
|
});
|
|
|
|
|
|
testOnWindow({private: true}, function(aWin) {
|
|
doTest(true, false, aWin, function() {
|
|
// Test when not on private mode after visiting a site on private
|
|
// mode. The form history should no exist.
|
|
testOnWindow({}, function(aWin) {
|
|
doTest(false, false, aWin, function() {
|
|
finish();
|
|
});
|
|
});
|
|
});
|
|
});
|
|
}
|