summaryrefslogtreecommitdiffstats
path: root/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_hidden_addons.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_hidden_addons.js')
-rw-r--r--devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_hidden_addons.js66
1 files changed, 66 insertions, 0 deletions
diff --git a/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_hidden_addons.js b/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_hidden_addons.js
new file mode 100644
index 0000000000..5d28752c93
--- /dev/null
+++ b/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_hidden_addons.js
@@ -0,0 +1,66 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+// Test that system and hidden addons are only displayed when the showSystemAddons
+// preferences is true.
+
+const SYSTEM_ADDON = createAddonData({
+ id: "system",
+ name: "System Addon",
+ isSystem: true,
+ hidden: true,
+});
+const HIDDEN_ADDON = createAddonData({
+ id: "hidden",
+ name: "Hidden Addon",
+ isSystem: false,
+ hidden: true,
+});
+const NORMAL_ADDON = createAddonData({
+ id: "normal",
+ name: "Normal Addon",
+ isSystem: false,
+ hidden: false,
+});
+
+add_task(async function testShowSystemAddonsTrue() {
+ info("Test with showHiddenAddons set to true");
+ await testAddonsDisplay(true);
+
+ info("Test with showHiddenAddons set to false");
+ await testAddonsDisplay(false);
+});
+
+async function testAddonsDisplay(showHidden) {
+ const thisFirefoxClient = setupThisFirefoxMock();
+ thisFirefoxClient.listAddons = () => [
+ SYSTEM_ADDON,
+ HIDDEN_ADDON,
+ NORMAL_ADDON,
+ ];
+
+ info("Set showHiddenAddons to " + showHidden);
+ await pushPref("devtools.aboutdebugging.showHiddenAddons", showHidden);
+
+ const { document, tab, window } = await openAboutDebugging();
+ await selectThisFirefoxPage(document, window.AboutDebugging.store);
+
+ const hasSystemAddon = !!findDebugTargetByText("System Addon", document);
+ const hasHiddenAddon = !!findDebugTargetByText("Hidden Addon", document);
+ const hasInstalledAddon = !!findDebugTargetByText("Normal Addon", document);
+ is(
+ hasSystemAddon,
+ showHidden,
+ "System addon display is correct when showHiddenAddons is " + showHidden
+ );
+ is(
+ hasHiddenAddon,
+ showHidden,
+ "Hidden addon display is correct when showHiddenAddons is " + showHidden
+ );
+ ok(hasInstalledAddon, "Installed addon is always displayed");
+
+ await removeTab(tab);
+}