summaryrefslogtreecommitdiffstats
path: root/browser/components/extensions/test/xpcshell/test_ext_distribution_popup.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/extensions/test/xpcshell/test_ext_distribution_popup.js')
-rw-r--r--browser/components/extensions/test/xpcshell/test_ext_distribution_popup.js56
1 files changed, 56 insertions, 0 deletions
diff --git a/browser/components/extensions/test/xpcshell/test_ext_distribution_popup.js b/browser/components/extensions/test/xpcshell/test_ext_distribution_popup.js
new file mode 100644
index 0000000000..030e0b27be
--- /dev/null
+++ b/browser/components/extensions/test/xpcshell/test_ext_distribution_popup.js
@@ -0,0 +1,56 @@
+/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set sts=2 sw=2 et tw=80: */
+
+"use strict";
+
+ChromeUtils.defineESModuleGetters(this, {
+ ExtensionControlledPopup:
+ "resource:///modules/ExtensionControlledPopup.sys.mjs",
+ ExtensionSettingsStore:
+ "resource://gre/modules/ExtensionSettingsStore.sys.mjs",
+});
+
+/*
+ * This function is a unit test for distributions disabling the ExtensionControlledPopup.
+ */
+add_task(async function testDistributionPopup() {
+ let distExtId = "ext-distribution@mochi.test";
+ Services.prefs.setCharPref(
+ `extensions.installedDistroAddon.${distExtId}`,
+ true
+ );
+ let extension = ExtensionTestUtils.loadExtension({
+ manifest: {
+ browser_specific_settings: { gecko: { id: distExtId } },
+ name: "Ext Distribution",
+ },
+ });
+
+ let userExtId = "ext-user@mochi.test";
+ let userExtension = ExtensionTestUtils.loadExtension({
+ manifest: {
+ browser_specific_settings: { gecko: { id: userExtId } },
+ name: "Ext User Installed",
+ },
+ });
+
+ await extension.startup();
+ await userExtension.startup();
+ await ExtensionSettingsStore.initialize();
+
+ let confirmedType = "extension-controlled-confirmed";
+ equal(
+ new ExtensionControlledPopup({ confirmedType }).userHasConfirmed(distExtId),
+ true,
+ "The popup has been disabled."
+ );
+
+ equal(
+ new ExtensionControlledPopup({ confirmedType }).userHasConfirmed(userExtId),
+ false,
+ "The popup has not been disabled."
+ );
+
+ await extension.unload();
+ await userExtension.unload();
+});