summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/sanitize/browser_sanitizeOnShutdown_migration.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/base/content/test/sanitize/browser_sanitizeOnShutdown_migration.js')
-rw-r--r--browser/base/content/test/sanitize/browser_sanitizeOnShutdown_migration.js312
1 files changed, 312 insertions, 0 deletions
diff --git a/browser/base/content/test/sanitize/browser_sanitizeOnShutdown_migration.js b/browser/base/content/test/sanitize/browser_sanitizeOnShutdown_migration.js
new file mode 100644
index 0000000000..3c2af1d513
--- /dev/null
+++ b/browser/base/content/test/sanitize/browser_sanitizeOnShutdown_migration.js
@@ -0,0 +1,312 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim:set ts=2 sw=2 sts=2 et: */
+/* 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/. */
+
+add_setup(async function () {
+ await SpecialPowers.pushPrefEnv({
+ set: [["privacy.sanitize.useOldClearHistoryDialog", false]],
+ });
+});
+
+add_task(async function testMigrationOfCacheAndSiteSettings() {
+ await SpecialPowers.pushPrefEnv({
+ set: [
+ ["privacy.clearOnShutdown.cache", true],
+ ["privacy.clearOnShutdown.siteSettings", true],
+ ["privacy.clearOnShutdown_v2.cache", false],
+ ["privacy.clearOnShutdown_v2.siteSettings", false],
+ ["privacy.sanitize.sanitizeOnShutdown.hasMigratedToNewPrefs", false],
+ ],
+ });
+
+ Sanitizer.runSanitizeOnShutdown();
+
+ Assert.equal(
+ Services.prefs.getBoolPref("privacy.clearOnShutdown_v2.cache"),
+ true,
+ "Cache should be set to true"
+ );
+ Assert.equal(
+ Services.prefs.getBoolPref("privacy.clearOnShutdown_v2.siteSettings"),
+ true,
+ "siteSettings should be set to true"
+ );
+ Assert.equal(
+ Services.prefs.getBoolPref("privacy.clearOnShutdown.cache"),
+ true,
+ "old cache should remain true"
+ );
+ Assert.equal(
+ Services.prefs.getBoolPref("privacy.clearOnShutdown.siteSettings"),
+ true,
+ "old siteSettings should remain true"
+ );
+
+ Assert.equal(
+ Services.prefs.getBoolPref(
+ "privacy.sanitize.sanitizeOnShutdown.hasMigratedToNewPrefs"
+ ),
+ true,
+ "migration pref has been flipped"
+ );
+});
+
+add_task(async function testHistoryAndFormData_historyTrue() {
+ await SpecialPowers.pushPrefEnv({
+ set: [
+ ["privacy.clearOnShutdown.history", true],
+ ["privacy.clearOnShutdown.formdata", false],
+ ["privacy.clearOnShutdown_v2.historyFormDataAndDownloads", false],
+ ["privacy.sanitize.sanitizeOnShutdown.hasMigratedToNewPrefs", false],
+ ],
+ });
+
+ Sanitizer.runSanitizeOnShutdown();
+
+ Assert.equal(
+ Services.prefs.getBoolPref(
+ "privacy.clearOnShutdown_v2.historyFormDataAndDownloads"
+ ),
+ true,
+ "historyFormDataAndDownloads should be set to true"
+ );
+ Assert.equal(
+ Services.prefs.getBoolPref("privacy.clearOnShutdown.history"),
+ true,
+ "old history pref should remain true"
+ );
+ Assert.equal(
+ Services.prefs.getBoolPref("privacy.clearOnShutdown.formdata"),
+ false,
+ "old formdata pref should remain false"
+ );
+
+ Assert.equal(
+ Services.prefs.getBoolPref(
+ "privacy.sanitize.sanitizeOnShutdown.hasMigratedToNewPrefs"
+ ),
+ true,
+ "migration pref has been flipped"
+ );
+});
+
+add_task(async function testHistoryAndFormData_historyFalse() {
+ await SpecialPowers.pushPrefEnv({
+ set: [
+ ["privacy.clearOnShutdown.history", false],
+ ["privacy.clearOnShutdown.formdata", true],
+ ["privacy.clearOnShutdown_v2.historyFormDataAndDownloads", true],
+ ["privacy.sanitize.sanitizeOnShutdown.hasMigratedToNewPrefs", false],
+ ],
+ });
+
+ Sanitizer.runSanitizeOnShutdown();
+
+ Assert.equal(
+ Services.prefs.getBoolPref(
+ "privacy.clearOnShutdown_v2.historyFormDataAndDownloads"
+ ),
+ false,
+ "historyFormDataAndDownloads should be set to true"
+ );
+ Assert.equal(
+ Services.prefs.getBoolPref("privacy.clearOnShutdown.history"),
+ false,
+ "old history pref should remain false"
+ );
+ Assert.equal(
+ Services.prefs.getBoolPref("privacy.clearOnShutdown.formdata"),
+ true,
+ "old formdata pref should remain true"
+ );
+
+ Assert.equal(
+ Services.prefs.getBoolPref(
+ "privacy.sanitize.sanitizeOnShutdown.hasMigratedToNewPrefs"
+ ),
+ true,
+ "migration pref has been flipped"
+ );
+});
+
+add_task(async function testCookiesAndStorage_cookiesFalse() {
+ await SpecialPowers.pushPrefEnv({
+ set: [
+ ["privacy.clearOnShutdown.cookies", false],
+ ["privacy.clearOnShutdown.offlineApps", true],
+ ["privacy.clearOnShutdown.sessions", true],
+ ["privacy.clearOnShutdown_v2.cookiesAndStorage", true],
+ ["privacy.sanitize.sanitizeOnShutdown.hasMigratedToNewPrefs", false],
+ ],
+ });
+
+ // Simulate clearing on shutdown.
+ Sanitizer.runSanitizeOnShutdown();
+
+ Assert.equal(
+ Services.prefs.getBoolPref("privacy.clearOnShutdown_v2.cookiesAndStorage"),
+ false,
+ "cookiesAndStorage should be set to false"
+ );
+ Assert.equal(
+ Services.prefs.getBoolPref("privacy.clearOnShutdown.cookies"),
+ false,
+ "old cookies pref should remain false"
+ );
+ Assert.equal(
+ Services.prefs.getBoolPref("privacy.clearOnShutdown.offlineApps"),
+ true,
+ "old offlineApps pref should remain true"
+ );
+ Assert.equal(
+ Services.prefs.getBoolPref("privacy.clearOnShutdown.sessions"),
+ true,
+ "old sessions pref should remain true"
+ );
+
+ Assert.equal(
+ Services.prefs.getBoolPref(
+ "privacy.sanitize.sanitizeOnShutdown.hasMigratedToNewPrefs"
+ ),
+ true,
+ "migration pref has been flipped"
+ );
+});
+
+add_task(async function testCookiesAndStorage_cookiesTrue() {
+ await SpecialPowers.pushPrefEnv({
+ set: [
+ ["privacy.clearOnShutdown.cookies", true],
+ ["privacy.clearOnShutdown.offlineApps", false],
+ ["privacy.clearOnShutdown.sessions", false],
+ ["privacy.clearOnShutdown_v2.cookiesAndStorage", false],
+ ["privacy.sanitize.sanitizeOnShutdown.hasMigratedToNewPrefs", false],
+ ],
+ });
+
+ Sanitizer.runSanitizeOnShutdown();
+
+ Assert.equal(
+ Services.prefs.getBoolPref("privacy.clearOnShutdown_v2.cookiesAndStorage"),
+ true,
+ "cookiesAndStorage should be set to true"
+ );
+ Assert.equal(
+ Services.prefs.getBoolPref("privacy.clearOnShutdown.cookies"),
+ true,
+ "old cookies pref should remain true"
+ );
+ Assert.equal(
+ Services.prefs.getBoolPref("privacy.clearOnShutdown.offlineApps"),
+ false,
+ "old offlineApps pref should remain false"
+ );
+ Assert.equal(
+ Services.prefs.getBoolPref("privacy.clearOnShutdown.sessions"),
+ false,
+ "old sessions pref should remain false"
+ );
+
+ Assert.equal(
+ Services.prefs.getBoolPref(
+ "privacy.sanitize.sanitizeOnShutdown.hasMigratedToNewPrefs"
+ ),
+ true,
+ "migration pref has been flipped"
+ );
+});
+
+add_task(async function testMigrationDoesNotRepeat() {
+ await SpecialPowers.pushPrefEnv({
+ set: [
+ ["privacy.clearOnShutdown.cookies", true],
+ ["privacy.clearOnShutdown.offlineApps", false],
+ ["privacy.clearOnShutdown.sessions", false],
+ ["privacy.clearOnShutdown_v2.cookiesAndStorage", false],
+ ["privacy.sanitize.sanitizeOnShutdown.hasMigratedToNewPrefs", true],
+ ],
+ });
+
+ // Simulate clearing on shutdown.
+ Sanitizer.runSanitizeOnShutdown();
+
+ Assert.equal(
+ Services.prefs.getBoolPref("privacy.clearOnShutdown_v2.cookiesAndStorage"),
+ false,
+ "cookiesAndStorage should remain false"
+ );
+ Assert.equal(
+ Services.prefs.getBoolPref("privacy.clearOnShutdown.cookies"),
+ true,
+ "old cookies pref should remain true"
+ );
+ Assert.equal(
+ Services.prefs.getBoolPref("privacy.clearOnShutdown.offlineApps"),
+ false,
+ "old offlineApps pref should remain false"
+ );
+ Assert.equal(
+ Services.prefs.getBoolPref("privacy.clearOnShutdown.sessions"),
+ false,
+ "old sessions pref should remain false"
+ );
+
+ Assert.equal(
+ Services.prefs.getBoolPref(
+ "privacy.sanitize.sanitizeOnShutdown.hasMigratedToNewPrefs"
+ ),
+ true,
+ "migration pref has been flipped"
+ );
+});
+
+add_task(async function ensureNoOldPrefsAreEffectedByMigration() {
+ await SpecialPowers.pushPrefEnv({
+ set: [
+ ["privacy.clearOnShutdown.history", true],
+ ["privacy.clearOnShutdown.formdata", true],
+ ["privacy.clearOnShutdown.cookies", true],
+ ["privacy.clearOnShutdown.offlineApps", false],
+ ["privacy.clearOnShutdown.sessions", false],
+ ["privacy.clearOnShutdown.siteSettings", true],
+ ["privacy.clearOnShutdown.cache", true],
+ ["privacy.clearOnShutdown_v2.cookiesAndStorage", false],
+ ["privacy.sanitize.sanitizeOnShutdown.hasMigratedToNewPrefs", false],
+ ],
+ });
+
+ Sanitizer.runSanitizeOnShutdown();
+
+ Assert.equal(
+ Services.prefs.getBoolPref("privacy.clearOnShutdown_v2.cookiesAndStorage"),
+ true,
+ "cookiesAndStorage should become true"
+ );
+ Assert.equal(
+ Services.prefs.getBoolPref("privacy.clearOnShutdown.cookies"),
+ true,
+ "old cookies pref should remain true"
+ );
+ Assert.equal(
+ Services.prefs.getBoolPref("privacy.clearOnShutdown.offlineApps"),
+ false,
+ "old offlineApps pref should remain false"
+ );
+ Assert.equal(
+ Services.prefs.getBoolPref("privacy.clearOnShutdown.sessions"),
+ false,
+ "old sessions pref should remain false"
+ );
+ Assert.equal(
+ Services.prefs.getBoolPref("privacy.clearOnShutdown.history"),
+ true,
+ "old history pref should remain true"
+ );
+ Assert.equal(
+ Services.prefs.getBoolPref("privacy.clearOnShutdown.formdata"),
+ true,
+ "old formdata pref should remain true"
+ );
+});