summaryrefslogtreecommitdiffstats
path: root/toolkit/mozapps/extensions/test/xpcshell/test_hidden.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/mozapps/extensions/test/xpcshell/test_hidden.js')
-rw-r--r--toolkit/mozapps/extensions/test/xpcshell/test_hidden.js58
1 files changed, 58 insertions, 0 deletions
diff --git a/toolkit/mozapps/extensions/test/xpcshell/test_hidden.js b/toolkit/mozapps/extensions/test/xpcshell/test_hidden.js
new file mode 100644
index 0000000000..f9e8ddd295
--- /dev/null
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_hidden.js
@@ -0,0 +1,58 @@
+add_task(async function test_hidden() {
+ createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "2");
+ AddonTestUtils.usePrivilegedSignatures = id => id.startsWith("privileged");
+
+ await promiseStartupManager();
+
+ let xpi1 = createTempWebExtensionFile({
+ manifest: {
+ applications: {
+ gecko: {
+ id: "privileged@tests.mozilla.org",
+ },
+ },
+
+ name: "Hidden Extension",
+ hidden: true,
+ },
+ });
+
+ let xpi2 = createTempWebExtensionFile({
+ manifest: {
+ applications: {
+ gecko: {
+ id: "unprivileged@tests.mozilla.org",
+ },
+ },
+
+ name: "Non-Hidden Extension",
+ hidden: true,
+ },
+ });
+
+ await promiseInstallAllFiles([xpi1, xpi2]);
+
+ let [addon1, addon2] = await promiseAddonsByIDs([
+ "privileged@tests.mozilla.org",
+ "unprivileged@tests.mozilla.org",
+ ]);
+
+ ok(addon1.isPrivileged, "Privileged is privileged");
+ ok(addon1.hidden, "Privileged extension should be hidden");
+ ok(!addon2.isPrivileged, "Unprivileged extension is not privileged");
+ ok(!addon2.hidden, "Unprivileged extension should not be hidden");
+
+ await promiseRestartManager();
+
+ [addon1, addon2] = await promiseAddonsByIDs([
+ "privileged@tests.mozilla.org",
+ "unprivileged@tests.mozilla.org",
+ ]);
+
+ ok(addon1.isPrivileged, "Privileged is privileged");
+ ok(addon1.hidden, "Privileged extension should be hidden");
+ ok(!addon2.isPrivileged, "Unprivileged extension is not privileged");
+ ok(!addon2.hidden, "Unprivileged extension should not be hidden");
+
+ await promiseShutdownManager();
+});