summaryrefslogtreecommitdiffstats
path: root/browser/components/extensions/test/browser/browser_ext_menus_visible.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/extensions/test/browser/browser_ext_menus_visible.js')
-rw-r--r--browser/components/extensions/test/browser/browser_ext_menus_visible.js95
1 files changed, 95 insertions, 0 deletions
diff --git a/browser/components/extensions/test/browser/browser_ext_menus_visible.js b/browser/components/extensions/test/browser/browser_ext_menus_visible.js
new file mode 100644
index 0000000000..cf9718fddc
--- /dev/null
+++ b/browser/components/extensions/test/browser/browser_ext_menus_visible.js
@@ -0,0 +1,95 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+"use strict";
+
+const PAGE =
+ "http://mochi.test:8888/browser/browser/components/extensions/test/browser/context.html";
+
+add_task(async function visible_false() {
+ let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, PAGE);
+
+ async function background() {
+ browser.menus.onShown.addListener(info => {
+ browser.test.assertEq(
+ "[]",
+ JSON.stringify(info.menuIds),
+ "Expected no menu items"
+ );
+ browser.test.sendMessage("done");
+ });
+ browser.menus.create({
+ id: "create-visible-false",
+ title: "invisible menu item",
+ visible: false,
+ });
+ browser.menus.create({
+ id: "update-without-params",
+ title: "invisible menu item",
+ visible: false,
+ });
+ await browser.menus.update("update-without-params", {});
+ browser.menus.create({
+ id: "update-visible-to-false",
+ title: "initially visible menu item",
+ });
+ await browser.menus.update("update-visible-to-false", { visible: false });
+ browser.test.sendMessage("ready");
+ }
+
+ let extension = ExtensionTestUtils.loadExtension({
+ manifest: {
+ permissions: ["menus"],
+ },
+ background,
+ });
+
+ await extension.startup();
+ await extension.awaitMessage("ready");
+ await openContextMenu();
+ await extension.awaitMessage("done");
+ await closeContextMenu();
+
+ await extension.unload();
+
+ BrowserTestUtils.removeTab(tab);
+});
+
+add_task(async function visible_true() {
+ let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, PAGE);
+
+ async function background() {
+ browser.menus.onShown.addListener(info => {
+ browser.test.assertEq(
+ `["update-to-true"]`,
+ JSON.stringify(info.menuIds),
+ "Expected no menu items"
+ );
+ browser.test.sendMessage("done");
+ });
+ browser.menus.create({
+ id: "update-to-true",
+ title: "invisible menu item",
+ visible: false,
+ });
+ await browser.menus.update("update-to-true", { visible: true });
+ browser.test.sendMessage("ready");
+ }
+
+ let extension = ExtensionTestUtils.loadExtension({
+ manifest: {
+ permissions: ["menus"],
+ },
+ background,
+ });
+
+ await extension.startup();
+ await extension.awaitMessage("ready");
+ await openContextMenu();
+ await extension.awaitMessage("done");
+ await closeContextMenu();
+
+ await extension.unload();
+
+ BrowserTestUtils.removeTab(tab);
+});