summaryrefslogtreecommitdiffstats
path: root/browser/components/preferences/in-content/tests/browser_sanitizeOnShutdown_prefLocked.js
blob: 6b587e036680c6ee94c560a7b760522b4448efa8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
"use strict";

function switchToCustomHistoryMode(doc) {
  // Select the last item in the menulist.
  let menulist = doc.getElementById("historyMode");
  menulist.focus();
  EventUtils.sendKey("UP");
}

function testPrefStateMatchesLockedState() {
  let win = gBrowser.contentWindow;
  let doc = win.document;
  switchToCustomHistoryMode(doc);

  let checkbox = doc.getElementById("alwaysClear");
  let preference = doc.getElementById("privacy.sanitize.sanitizeOnShutdown");
  is(checkbox.disabled, preference.locked, "Always Clear checkbox should be enabled when preference is not locked.");

  gBrowser.removeCurrentTab();
}

add_task(function setup() {
  registerCleanupFunction(function resetPreferences() {
    Services.prefs.unlockPref("privacy.sanitize.sanitizeOnShutdown");
  });
});

add_task(function* test_preference_enabled_when_unlocked() {
  yield openPreferencesViaOpenPreferencesAPI("panePrivacy", undefined, {leaveOpen: true});
  testPrefStateMatchesLockedState();
});

add_task(function* test_preference_disabled_when_locked() {
  Services.prefs.lockPref("privacy.sanitize.sanitizeOnShutdown");
  yield openPreferencesViaOpenPreferencesAPI("panePrivacy", undefined, {leaveOpen: true});
  testPrefStateMatchesLockedState();
});