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 --- .../test/browser/browser_ext_browserAction_area.js | 126 +++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 browser/components/extensions/test/browser/browser_ext_browserAction_area.js (limited to 'browser/components/extensions/test/browser/browser_ext_browserAction_area.js') diff --git a/browser/components/extensions/test/browser/browser_ext_browserAction_area.js b/browser/components/extensions/test/browser/browser_ext_browserAction_area.js new file mode 100644 index 0000000000..90ed744a78 --- /dev/null +++ b/browser/components/extensions/test/browser/browser_ext_browserAction_area.js @@ -0,0 +1,126 @@ +/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* vim: set sts=2 sw=2 et tw=80: */ +"use strict"; + +var browserAreas = { + navbar: CustomizableUI.AREA_NAVBAR, + menupanel: getCustomizableUIPanelID(), + tabstrip: CustomizableUI.AREA_TABSTRIP, + personaltoolbar: CustomizableUI.AREA_BOOKMARKS, +}; + +async function testInArea(area) { + let manifest = { + browser_action: { + browser_style: true, + }, + }; + if (area) { + manifest.browser_action.default_area = area; + } + let extension = ExtensionTestUtils.loadExtension({ + manifest, + }); + await extension.startup(); + let widget = getBrowserActionWidget(extension); + let placement = CustomizableUI.getPlacementOfWidget(widget.id); + let fallbackDefaultArea = CustomizableUI.AREA_ADDONS; + is( + placement && placement.area, + browserAreas[area] || fallbackDefaultArea, + `widget located in correct area` + ); + await extension.unload(); +} + +add_task(async function testBrowserActionDefaultArea() { + await testInArea(); +}); + +add_task(async function testBrowserActionInToolbar() { + await testInArea("navbar"); +}); + +add_task(async function testBrowserActionInMenuPanel() { + await testInArea("menupanel"); +}); + +add_task(async function testBrowserActionInTabStrip() { + await testInArea("tabstrip"); +}); + +add_task(async function testBrowserActionInPersonalToolbar() { + await testInArea("personaltoolbar"); +}); + +add_task(async function testPolicyOverridesBrowserActionToNavbar() { + const { EnterprisePolicyTesting } = ChromeUtils.importESModule( + "resource://testing-common/EnterprisePolicyTesting.sys.mjs" + ); + await EnterprisePolicyTesting.setupPolicyEngineWithJson({ + policies: { + ExtensionSettings: { + "policyBrowserActionAreaNavBarTest@mozilla.com": { + default_area: "navbar", + }, + }, + }, + }); + let manifest = { + browser_action: {}, + browser_specific_settings: { + gecko: { + id: "policyBrowserActionAreaNavBarTest@mozilla.com", + }, + }, + }; + let extension = ExtensionTestUtils.loadExtension({ + manifest, + }); + await extension.startup(); + let widget = getBrowserActionWidget(extension); + let placement = CustomizableUI.getPlacementOfWidget(widget.id); + is( + placement && placement.area, + CustomizableUI.AREA_NAVBAR, + `widget located in nav bar` + ); + await extension.unload(); +}); + +add_task(async function testPolicyOverridesBrowserActionToMenuPanel() { + const { EnterprisePolicyTesting } = ChromeUtils.importESModule( + "resource://testing-common/EnterprisePolicyTesting.sys.mjs" + ); + await EnterprisePolicyTesting.setupPolicyEngineWithJson({ + policies: { + ExtensionSettings: { + "policyBrowserActionAreaMenuPanelTest@mozilla.com": { + default_area: "menupanel", + }, + }, + }, + }); + let manifest = { + browser_action: { + default_area: "navbar", + }, + browser_specific_settings: { + gecko: { + id: "policyBrowserActionAreaMenuPanelTest@mozilla.com", + }, + }, + }; + let extension = ExtensionTestUtils.loadExtension({ + manifest, + }); + await extension.startup(); + let widget = getBrowserActionWidget(extension); + let placement = CustomizableUI.getPlacementOfWidget(widget.id); + is( + placement && placement.area, + getCustomizableUIPanelID(), + `widget located in extensions menu` + ); + await extension.unload(); +}); -- cgit v1.2.3