summaryrefslogtreecommitdiffstats
path: root/browser/components/preferences/tests/browser_warning_permanent_private_browsing.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/preferences/tests/browser_warning_permanent_private_browsing.js')
-rw-r--r--browser/components/preferences/tests/browser_warning_permanent_private_browsing.js57
1 files changed, 57 insertions, 0 deletions
diff --git a/browser/components/preferences/tests/browser_warning_permanent_private_browsing.js b/browser/components/preferences/tests/browser_warning_permanent_private_browsing.js
new file mode 100644
index 0000000000..8d1fa3c80b
--- /dev/null
+++ b/browser/components/preferences/tests/browser_warning_permanent_private_browsing.js
@@ -0,0 +1,57 @@
+/* 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));