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 });