tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_trr_enterprise_policy.js (3153B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 
      5 "use strict";
      6 
      7 trr_test_setup();
      8 registerCleanupFunction(async () => {
      9  trr_clear_prefs();
     10 });
     11 
     12 const { updateAppInfo } = ChromeUtils.importESModule(
     13  "resource://testing-common/AppInfo.sys.mjs"
     14 );
     15 
     16 updateAppInfo({
     17  name: "XPCShell",
     18  ID: "xpcshell@tests.mozilla.org",
     19  version: "48",
     20  platformVersion: "48",
     21 });
     22 
     23 const { EnterprisePolicyTesting } = ChromeUtils.importESModule(
     24  "resource://testing-common/EnterprisePolicyTesting.sys.mjs"
     25 );
     26 
     27 // This initializes the policy engine for xpcshell tests
     28 let policies = Cc["@mozilla.org/enterprisepolicies;1"].getService(
     29  Ci.nsIObserver
     30 );
     31 policies.observe(null, "policies-startup", null);
     32 
     33 add_task(async function test_enterprise_policy_unlocked() {
     34  await EnterprisePolicyTesting.setupPolicyEngineWithJson({
     35    policies: {
     36      DNSOverHTTPS: {
     37        Enabled: false,
     38        ProviderURL: "https://example.org/provider",
     39        ExcludedDomains: ["example.com", "example.org"],
     40      },
     41    },
     42  });
     43 
     44  equal(Services.prefs.getIntPref("network.trr.mode"), 5);
     45  equal(Services.prefs.prefIsLocked("network.trr.mode"), false);
     46  equal(
     47    Services.prefs.getStringPref("network.trr.uri"),
     48    "https://example.org/provider"
     49  );
     50  equal(Services.prefs.prefIsLocked("network.trr.uri"), false);
     51  equal(
     52    Services.prefs.getStringPref("network.trr.excluded-domains"),
     53    "example.com,example.org"
     54  );
     55  equal(Services.prefs.prefIsLocked("network.trr.excluded-domains"), false);
     56  equal(Services.dns.currentTrrMode, 5);
     57  equal(Services.dns.currentTrrURI, "https://example.org/provider");
     58  Services.dns.setDetectedTrrURI("https://autodetect.example.com/provider");
     59  equal(Services.dns.currentTrrMode, 5);
     60  equal(Services.dns.currentTrrURI, "https://example.org/provider");
     61 });
     62 
     63 add_task(async function test_enterprise_policy_locked() {
     64  // Read dns.currentTrrMode to make DNS service initialized earlier.
     65  info("Services.dns.currentTrrMode:" + Services.dns.currentTrrMode);
     66  await EnterprisePolicyTesting.setupPolicyEngineWithJson({
     67    policies: {
     68      DNSOverHTTPS: {
     69        Enabled: true,
     70        ProviderURL: "https://example.com/provider",
     71        ExcludedDomains: ["example.com", "example.org"],
     72        Locked: true,
     73      },
     74    },
     75  });
     76 
     77  equal(Services.prefs.getIntPref("network.trr.mode"), 2);
     78  equal(Services.prefs.prefIsLocked("network.trr.mode"), true);
     79  equal(
     80    Services.prefs.getStringPref("network.trr.uri"),
     81    "https://example.com/provider"
     82  );
     83  equal(Services.prefs.prefIsLocked("network.trr.uri"), true);
     84  equal(
     85    Services.prefs.getStringPref("network.trr.excluded-domains"),
     86    "example.com,example.org"
     87  );
     88  equal(Services.prefs.prefIsLocked("network.trr.excluded-domains"), true);
     89  equal(Services.dns.currentTrrMode, 2);
     90  equal(Services.dns.currentTrrURI, "https://example.com/provider");
     91  Services.dns.setDetectedTrrURI("https://autodetect.example.com/provider");
     92  equal(Services.dns.currentTrrURI, "https://example.com/provider");
     93 });