mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-02 15:15:23 +00:00
90 lines
2.6 KiB
JavaScript
90 lines
2.6 KiB
JavaScript
const POLARIS_ENABLED = "browser.polaris.enabled";
|
|
const PREF_DNT = "privacy.donottrackheader.enabled";
|
|
const PREF_TP = "privacy.trackingprotection.enabled";
|
|
const PREF_TPUI = "privacy.trackingprotection.ui.enabled";
|
|
|
|
var prefs = [PREF_DNT, PREF_TP, PREF_TPUI];
|
|
|
|
function spinEventLoop() {
|
|
return new Promise((resolve) => executeSoon(resolve));
|
|
};
|
|
|
|
// Spin event loop before checking so that polaris pref observer can set
|
|
// dependent prefs.
|
|
function* assertPref(pref, enabled) {
|
|
yield spinEventLoop();
|
|
let prefEnabled = Services.prefs.getBoolPref(pref);
|
|
Assert.equal(prefEnabled, enabled, "Checking state of pref " + pref + ".");
|
|
};
|
|
|
|
function* testPrefs(test) {
|
|
for (let pref of prefs) {
|
|
yield test(pref);
|
|
}
|
|
}
|
|
|
|
function isNightly() {
|
|
return Services.appinfo.version.includes("a1");
|
|
}
|
|
|
|
add_task(function* test_default_values() {
|
|
if (!isNightly()) {
|
|
ok(true, "Skipping test, not Nightly")
|
|
return;
|
|
}
|
|
Assert.ok(!Services.prefs.getBoolPref(POLARIS_ENABLED), POLARIS_ENABLED + " is disabled by default.");
|
|
Assert.ok(!Services.prefs.getBoolPref(PREF_TPUI), PREF_TPUI + "is disabled by default.");
|
|
});
|
|
|
|
add_task(function* test_changing_pref_changes_tracking() {
|
|
if (!isNightly()) {
|
|
ok(true, "Skipping test, not Nightly")
|
|
return;
|
|
}
|
|
|
|
// Register a cleanup function for all the prefs affected by this entire test file.
|
|
registerCleanupFunction(function () {
|
|
Services.prefs.clearUserPref(POLARIS_ENABLED);
|
|
for (let pref of prefs) {
|
|
Services.prefs.clearUserPref(pref);
|
|
}
|
|
});
|
|
|
|
function* testPref(pref) {
|
|
Services.prefs.setBoolPref(POLARIS_ENABLED, true);
|
|
yield assertPref(pref, true);
|
|
Services.prefs.setBoolPref(POLARIS_ENABLED, false);
|
|
// We don't clear the DNT pref if Polaris is disabled.
|
|
if (pref != PREF_DNT) {
|
|
yield assertPref(pref, false);
|
|
} else {
|
|
yield assertPref(pref, true);
|
|
}
|
|
Services.prefs.setBoolPref(POLARIS_ENABLED, true);
|
|
yield assertPref(pref, true);
|
|
}
|
|
yield testPrefs(testPref);
|
|
});
|
|
|
|
add_task(function* test_prefs_can_be_changed_individually() {
|
|
if (!isNightly()) {
|
|
ok(true, "Skipping test, not Nightly")
|
|
return;
|
|
}
|
|
function* testPref(pref) {
|
|
Services.prefs.setBoolPref(POLARIS_ENABLED, true);
|
|
yield assertPref(pref, true);
|
|
Services.prefs.setBoolPref(pref, false);
|
|
yield assertPref(pref, false);
|
|
yield assertPref(POLARIS_ENABLED, true);
|
|
|
|
Services.prefs.setBoolPref(POLARIS_ENABLED, false);
|
|
yield assertPref(pref, false);
|
|
|
|
Services.prefs.setBoolPref(pref, true);
|
|
yield assertPref(pref, true);
|
|
yield assertPref(POLARIS_ENABLED, false);
|
|
}
|
|
yield testPrefs(testPref);
|
|
});
|