summaryrefslogtreecommitdiffstats
path: root/testing/xpcshell/example/unit/prefs_test_common.js
blob: e12d3d529825a36e2f1261640068fbe068582d7e (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
38
39
40
41
42
43
44
45
46
47
/* 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/. */

function isValidPref(prefName) {
  return Services.prefs.getPrefType(prefName) !== Services.prefs.PREF_INVALID;
}

// Check a pref that appears in testing/profiles/xpcshell/user.js
// but NOT in StaticPrefList.yaml, modules/libpref/init/all.js
function has_pref_from_xpcshell_user_js() {
  return isValidPref("extensions.webextensions.warnings-as-errors");
}

// Test pref from xpcshell-with-prefs.ini
function has_pref_from_manifest_defaults() {
  return isValidPref("dummy.pref.from.test.manifest");
}

// Test pref set in xpcshell.ini and xpcshell-with-prefs.ini
function has_pref_from_manifest_file_section() {
  return isValidPref("dummy.pref.from.test.file");
}

function check_common_xpcshell_with_prefs() {
  Assert.ok(
    has_pref_from_xpcshell_user_js(),
    "Should have pref from xpcshell's user.js"
  );

  Assert.ok(
    has_pref_from_manifest_defaults(),
    "Should have pref from DEFAULTS in xpcshell-with-prefs.ini"
  );
}

function check_common_xpcshell_without_prefs() {
  Assert.ok(
    has_pref_from_xpcshell_user_js(),
    "Should have pref from xpcshell's user.js"
  );

  Assert.ok(
    !has_pref_from_manifest_defaults(),
    "xpcshell.ini did not set any prefs in DEFAULTS"
  );
}