summaryrefslogtreecommitdiffstats
path: root/toolkit/mozapps/extensions/test/xpcshell/test_remote_pref_telemetry.js
blob: aeeb368aa7ec4240dc4ac641794e4525ad37de66 (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
48
/* Any copyright is dedicated to the Public Domain.
 * http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";

AddonTestUtils.init(this);
AddonTestUtils.createAppInfo(
  "xpcshell@tests.mozilla.org",
  "XPCShell",
  "42",
  "42"
);

// Need a profile dir to initialize Glean.
add_setup(async () => {
  do_get_profile();
  Services.fog.initializeFOG();
});

add_task(async function test_remote_extensions_pref_telemetry() {
  let original = Services.prefs.getBoolPref("extensions.webextensions.remote");
  await AddonTestUtils.promiseStartupManager();

  equal(
    original,
    Glean.extensions.useRemotePref.testGetValue(),
    "useRemotePref flag in glean is correct."
  );
  equal(
    original,
    Glean.extensions.useRemotePolicy.testGetValue(),
    "useRemotePolicy flag in glean is correct."
  );

  // Change the pref to simulate nimbus doing so after startup.
  Services.prefs.setBoolPref("extensions.webextensions.remote", !original);

  equal(
    !original,
    Glean.extensions.useRemotePref.testGetValue(),
    "useRemotePref flag reflects the changed pref."
  );
  // EPS::UseRemoteExtensions() only reads the pref once, for consistency.
  equal(
    original,
    Glean.extensions.useRemotePolicy.testGetValue(),
    "useRemotePolicy flag still equal to original pref value."
  );
});