forked from mirrors/gecko-dev
57 lines
1.6 KiB
JavaScript
57 lines
1.6 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
function checkForPrompt(prefVal) {
|
|
return async function() {
|
|
await SpecialPowers.pushPrefEnv({
|
|
set: [
|
|
["privacy.history.custom", true],
|
|
["browser.privatebrowsing.autostart", !prefVal],
|
|
],
|
|
});
|
|
|
|
await openPreferencesViaOpenPreferencesAPI("panePrivacy", {
|
|
leaveOpen: true,
|
|
});
|
|
let doc = gBrowser.contentDocument;
|
|
is(
|
|
doc.getElementById("historyMode").value,
|
|
"custom",
|
|
"Expect custom history mode"
|
|
);
|
|
|
|
// Stub out the prompt method as an easy way to check it was shown. We throw away
|
|
// the tab straight after so don't need to bother restoring it.
|
|
let promptFired = false;
|
|
doc.defaultView.confirmRestartPrompt = () => {
|
|
promptFired = true;
|
|
return doc.defaultView.CONFIRM_RESTART_PROMPT_RESTART_NOW;
|
|
};
|
|
// Tick the checkbox and pretend the user did it:
|
|
let checkbox = doc.getElementById("privateBrowsingAutoStart");
|
|
checkbox.checked = prefVal;
|
|
checkbox.doCommand();
|
|
|
|
// Now the prompt should have shown.
|
|
ok(
|
|
promptFired,
|
|
`Expect a prompt when turning permanent private browsing ${
|
|
prefVal ? "on" : "off"
|
|
}!`
|
|
);
|
|
BrowserTestUtils.removeTab(gBrowser.selectedTab);
|
|
};
|
|
}
|
|
|
|
/**
|
|
* Check we show the prompt if the permanent private browsing pref is false
|
|
* and we flip the checkbox to true.
|
|
*/
|
|
add_task(checkForPrompt(true));
|
|
|
|
/**
|
|
* Check it works in the other direction:
|
|
*/
|
|
add_task(checkForPrompt(false));
|