From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- .../browser_ext_sidebarAction_contextMenu.js | 133 +++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 browser/components/extensions/test/browser/browser_ext_sidebarAction_contextMenu.js (limited to 'browser/components/extensions/test/browser/browser_ext_sidebarAction_contextMenu.js') diff --git a/browser/components/extensions/test/browser/browser_ext_sidebarAction_contextMenu.js b/browser/components/extensions/test/browser/browser_ext_sidebarAction_contextMenu.js new file mode 100644 index 0000000000..3317e6b7e0 --- /dev/null +++ b/browser/components/extensions/test/browser/browser_ext_sidebarAction_contextMenu.js @@ -0,0 +1,133 @@ +/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* vim: set sts=2 sw=2 et tw=80: */ +"use strict"; + +let extData = { + manifest: { + permissions: ["contextMenus"], + sidebar_action: { + default_panel: "sidebar.html", + }, + }, + useAddonManager: "temporary", + + files: { + "sidebar.html": ` + + + + + + + A Test Sidebar + + + `, + + "sidebar.js": function () { + window.onload = () => { + browser.test.sendMessage("sidebar"); + }; + }, + }, + + background: function () { + browser.contextMenus.create({ + id: "clickme-page", + title: "Click me!", + contexts: ["all"], + onclick(info, tab) { + browser.test.sendMessage("menu-click", tab); + }, + }); + }, +}; + +let contextMenuItems = { + "context-sep-navigation": "hidden", + "context-viewsource": "", + "inspect-separator": "hidden", + "context-inspect": "hidden", + "context-inspect-a11y": "hidden", + "context-bookmarkpage": "hidden", +}; +if (AppConstants.platform == "macosx") { + contextMenuItems["context-back"] = "hidden"; + contextMenuItems["context-forward"] = "hidden"; + contextMenuItems["context-reload"] = "hidden"; + contextMenuItems["context-stop"] = "hidden"; +} else { + contextMenuItems["context-navigation"] = "hidden"; +} + +add_task(async function sidebar_contextmenu() { + let extension = ExtensionTestUtils.loadExtension(extData); + await extension.startup(); + // Test sidebar is opened on install + await extension.awaitMessage("sidebar"); + + let contentAreaContextMenu = await openContextMenuInSidebar(); + let item = contentAreaContextMenu.getElementsByAttribute( + "label", + "Click me!" + ); + is(item.length, 1, "contextMenu item for page was found"); + + item[0].click(); + await closeContextMenu(contentAreaContextMenu); + let tab = await extension.awaitMessage("menu-click"); + is( + tab, + null, + "tab argument is optional, and missing in clicks from sidebars" + ); + + await extension.unload(); +}); + +add_task(async function sidebar_contextmenu_hidden_items() { + let extension = ExtensionTestUtils.loadExtension(extData); + await extension.startup(); + // Test sidebar is opened on install + await extension.awaitMessage("sidebar"); + + let contentAreaContextMenu = await openContextMenuInSidebar("#text"); + + let item, state; + for (const itemID in contextMenuItems) { + item = contentAreaContextMenu.querySelector(`#${itemID}`); + state = contextMenuItems[itemID]; + + if (state !== "") { + ok(item[state], `${itemID} is ${state}`); + + if (state !== "hidden") { + ok(!item.hidden, `Disabled ${itemID} is not hidden`); + } + } else { + ok(!item.hidden, `${itemID} is not hidden`); + ok(!item.disabled, `${itemID} is not disabled`); + } + } + + await closeContextMenu(contentAreaContextMenu); + + await extension.unload(); +}); + +add_task(async function sidebar_image_contextmenu() { + let extension = ExtensionTestUtils.loadExtension(extData); + await extension.startup(); + // Test sidebar is opened on install + await extension.awaitMessage("sidebar"); + + let contentAreaContextMenu = await openContextMenuInSidebar("#testimg"); + + let item = contentAreaContextMenu.querySelector("#context-copyimage"); + ok(!item.hidden); + ok(!item.disabled); + + await closeContextMenu(contentAreaContextMenu); + + await extension.unload(); +}); -- cgit v1.2.3