diff options
Diffstat (limited to 'browser/components/enterprisepolicies/tests')
6 files changed, 133 insertions, 6 deletions
diff --git a/browser/components/enterprisepolicies/tests/browser/browser_policy_extensions.js b/browser/components/enterprisepolicies/tests/browser/browser_policy_extensions.js index 7d1313548b..6b8feb4d82 100644 --- a/browser/components/enterprisepolicies/tests/browser/browser_policy_extensions.js +++ b/browser/components/enterprisepolicies/tests/browser/browser_policy_extensions.js @@ -40,7 +40,7 @@ add_task(async function test_addon_install() { add_task(async function test_addon_locked() { let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser); - const win = await BrowserOpenAddonsMgr("addons://list/extension"); + const win = await BrowserAddonUI.openAddonsMgr("addons://list/extension"); await isExtensionLocked(win, ADDON_ID); diff --git a/browser/components/enterprisepolicies/tests/browser/browser_policy_extensionsettings2.js b/browser/components/enterprisepolicies/tests/browser/browser_policy_extensionsettings2.js index 612448ee4e..dd610ec7e5 100644 --- a/browser/components/enterprisepolicies/tests/browser/browser_policy_extensionsettings2.js +++ b/browser/components/enterprisepolicies/tests/browser/browser_policy_extensionsettings2.js @@ -45,7 +45,7 @@ add_task(async function test_addon_install() { add_task(async function test_addon_locked_update_disabled() { let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser); - const win = await BrowserOpenAddonsMgr( + const win = await BrowserAddonUI.openAddonsMgr( "addons://detail/" + encodeURIComponent(ADDON_ID) ); diff --git a/browser/components/enterprisepolicies/tests/browser/browser_policy_masterpassword.js b/browser/components/enterprisepolicies/tests/browser/browser_policy_masterpassword.js index 872eb5a652..87fb072971 100644 --- a/browser/components/enterprisepolicies/tests/browser/browser_policy_masterpassword.js +++ b/browser/components/enterprisepolicies/tests/browser/browser_policy_masterpassword.js @@ -7,6 +7,25 @@ let { LoginTestUtils } = ChromeUtils.importESModule( "resource://testing-common/LoginTestUtils.sys.mjs" ); +let { sinon } = ChromeUtils.importESModule( + "resource://testing-common/Sinon.sys.mjs" +); + +let { FormAutofillUtils } = ChromeUtils.importESModule( + "resource://gre/modules/shared/FormAutofillUtils.sys.mjs" +); + +add_setup(async function () { + // Stub these out so we don't end up invoking the MP dialog + // in order to decrypt prefs to find out if these are enabled or disabled. + sinon.stub(FormAutofillUtils, "getOSAuthEnabled").returns(false); + sinon.stub(LoginHelper, "getOSAuthEnabled").returns(false); + + registerCleanupFunction(async function () { + sinon.restore(); + }); +}); + // Test that once a password is set, you can't unset it add_task(async function test_policy_masterpassword_set() { await setupPolicyEngineWithJson({ diff --git a/browser/components/enterprisepolicies/tests/xpcshell/test_extensionsettings.js b/browser/components/enterprisepolicies/tests/xpcshell/test_extensionsettings.js index 22a6269cce..76157c7e97 100644 --- a/browser/components/enterprisepolicies/tests/xpcshell/test_extensionsettings.js +++ b/browser/components/enterprisepolicies/tests/xpcshell/test_extensionsettings.js @@ -8,10 +8,14 @@ const { AddonTestUtils } = ChromeUtils.importESModule( const { AddonManager } = ChromeUtils.importESModule( "resource://gre/modules/AddonManager.sys.mjs" ); +const { ExtensionTestUtils } = ChromeUtils.importESModule( + "resource://testing-common/ExtensionXPCShellUtils.sys.mjs" +); AddonTestUtils.init(this); AddonTestUtils.overrideCertDB(); AddonTestUtils.appInfo = getAppInfo(); +ExtensionTestUtils.init(this); const server = AddonTestUtils.createHttpServer({ hosts: ["example.com"] }); const BASE_URL = `http://example.com/data`; @@ -21,6 +25,34 @@ let themeID = "policytheme@mozilla.com"; let fileURL; +async function assertManagementAPIInstallType(addonId, expectedInstallType) { + const addon = await AddonManager.getAddonByID(addonId); + const expectInstalledByPolicy = expectedInstallType === "admin"; + equal( + addon.isInstalledByEnterprisePolicy, + expectInstalledByPolicy, + `Addon should ${ + expectInstalledByPolicy ? "be" : "NOT be" + } marked as installed by enterprise policy` + ); + const policy = WebExtensionPolicy.getByID(addonId); + const pageURL = policy.extension.baseURI.resolve( + "_generated_background_page.html" + ); + const page = await ExtensionTestUtils.loadContentPage(pageURL); + const { id, installType } = await page.spawn([], async () => { + const res = await this.content.wrappedJSObject.browser.management.getSelf(); + return { id: res.id, installType: res.installType }; + }); + await page.close(); + Assert.equal(id, addonId, "Got results for the expected addon id"); + Assert.equal( + installType, + expectedInstallType, + "Got the expected installType on policy installed extension" + ); +} + add_setup(async function setup() { await AddonTestUtils.promiseStartupManager(); @@ -115,7 +147,14 @@ add_task(async function test_addon_allowed() { ); await install.install(); notEqual(install.addon, null, "Addon should not be null"); + await assertManagementAPIInstallType(install.addon.id, "normal"); equal(install.addon.appDisabled, false, "Addon should not be disabled"); + equal( + install.addon.isInstalledByEnterprisePolicy, + false, + "Addon should NOT be marked as installed by enterprise policy" + ); + await install.addon.uninstall(); }); @@ -169,6 +208,8 @@ add_task(async function test_addon_forceinstalled() { 0, "Addon should not be able to be disabled." ); + await assertManagementAPIInstallType(addon.id, "admin"); + await addon.uninstall(); }); @@ -199,6 +240,8 @@ add_task(async function test_addon_normalinstalled() { 0, "Addon should be able to be disabled." ); + await assertManagementAPIInstallType(addon.id, "admin"); + await addon.uninstall(); }); @@ -290,6 +333,7 @@ add_task(async function test_addon_normalinstalled_file() { 0, "Addon should be able to be disabled." ); + await assertManagementAPIInstallType(addon.id, "admin"); await addon.uninstall(); }); diff --git a/browser/components/enterprisepolicies/tests/xpcshell/test_permissions.js b/browser/components/enterprisepolicies/tests/xpcshell/test_permissions.js index f4440e53f5..c9231132c8 100644 --- a/browser/components/enterprisepolicies/tests/xpcshell/test_permissions.js +++ b/browser/components/enterprisepolicies/tests/xpcshell/test_permissions.js @@ -315,7 +315,7 @@ add_task(async function test_cookie_allow_session() { ); }); -// This again seems out of places, but AutoLaunchProtocolsFromOrigins +// This again seems out of place, but AutoLaunchProtocolsFromOrigins // is all permissions. add_task(async function test_autolaunchprotocolsfromorigins() { await setupPolicyEngineWithJson({ @@ -337,7 +337,7 @@ add_task(async function test_autolaunchprotocolsfromorigins() { ); }); -// This again seems out of places, but PasswordManagerExceptions +// This again seems out of place, but PasswordManagerExceptions // is all permissions. add_task(async function test_passwordmanagerexceptions() { await setupPolicyEngineWithJson({ @@ -353,3 +353,20 @@ add_task(async function test_passwordmanagerexceptions() { Ci.nsIPermissionManager.DENY_ACTION ); }); + +// This again seems out of place, but HttpAllowlist +// is all permissions. +add_task(async function test_httpsonly_exceptions() { + await setupPolicyEngineWithJson({ + policies: { + HttpAllowlist: ["https://http.example.com"], + }, + }); + equal( + PermissionTestUtils.testPermission( + URI("https://http.example.com"), + "https-only-load-insecure" + ), + Ci.nsIPermissionManager.ALLOW_ACTION + ); +}); diff --git a/browser/components/enterprisepolicies/tests/xpcshell/test_simple_pref_policies.js b/browser/components/enterprisepolicies/tests/xpcshell/test_simple_pref_policies.js index c0952d0627..cfcb655777 100644 --- a/browser/components/enterprisepolicies/tests/xpcshell/test_simple_pref_policies.js +++ b/browser/components/enterprisepolicies/tests/xpcshell/test_simple_pref_policies.js @@ -657,13 +657,11 @@ const POLICIES_TESTS = [ { policies: { UserMessaging: { - WhatsNew: false, SkipOnboarding: true, Locked: true, }, }, lockedPrefs: { - "browser.messaging-system.whatsNewPanel.enabled": false, "browser.aboutwelcome.enabled": false, }, }, @@ -1099,6 +1097,55 @@ const POLICIES_TESTS = [ "network.proxy.type": 5, }, }, + + // POLICY: DisableEncryptedClientHello + { + policies: { + DisableEncryptedClientHello: true, + }, + lockedPrefs: { + "network.dns.echconfig.enabled": false, + "network.dns.http3_echconfig.enabled": false, + }, + }, + + // POLICY: PostQuantumKeyAgreementEnabled + { + policies: { + PostQuantumKeyAgreementEnabled: false, + }, + lockedPrefs: { + "security.tls.enable_kyber": false, + }, + }, + + // POLICY: HttpsOnlyMode + { + policies: { + HttpsOnlyMode: "enabled", + }, + unlockedPrefs: { + "dom.security.https_only_mode": true, + }, + }, + + { + policies: { + HttpsOnlyMode: "disallowed", + }, + lockedPrefs: { + "dom.security.https_only_mode": false, + }, + }, + + { + policies: { + HttpsOnlyMode: "force_enabled", + }, + lockedPrefs: { + "dom.security.https_only_mode": true, + }, + }, ]; add_task(async function test_policy_simple_prefs() { |