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/browser_ext_pageAction_activeTab.js | 107 +++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 browser/components/extensions/test/browser/browser_ext_pageAction_activeTab.js (limited to 'browser/components/extensions/test/browser/browser_ext_pageAction_activeTab.js') diff --git a/browser/components/extensions/test/browser/browser_ext_pageAction_activeTab.js b/browser/components/extensions/test/browser/browser_ext_pageAction_activeTab.js new file mode 100644 index 0000000000..4ce6b247bf --- /dev/null +++ b/browser/components/extensions/test/browser/browser_ext_pageAction_activeTab.js @@ -0,0 +1,107 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +add_task(async function test_middle_click_with_activeTab() { + let tab = await BrowserTestUtils.openNewForegroundTab( + gBrowser, + "https://example.com/" + ); + + let extension = ExtensionTestUtils.loadExtension({ + manifest: { + page_action: {}, + permissions: ["activeTab"], + }, + + async background() { + browser.pageAction.onClicked.addListener(async (tab, info) => { + browser.test.assertEq(1, info.button, "Expected button value"); + browser.test.assertEq( + "https://example.com/", + tab.url, + "tab.url has the expected url" + ); + await browser.tabs.insertCSS(tab.id, { + code: "body { border: 20px solid red; }", + }); + browser.test.sendMessage("onClick"); + }); + + let [tab] = await browser.tabs.query({ + active: true, + currentWindow: true, + }); + await browser.pageAction.show(tab.id); + browser.test.sendMessage("ready"); + }, + }); + + await extension.startup(); + await extension.awaitMessage("ready"); + + let ext = WebExtensionPolicy.getByID(extension.id).extension; + is( + ext.tabManager.hasActiveTabPermission(tab), + false, + "Active tab was not granted permission" + ); + + await clickPageAction(extension, window, { button: 1 }); + await extension.awaitMessage("onClick"); + + is( + ext.tabManager.hasActiveTabPermission(tab), + true, + "Active tab was granted permission" + ); + await extension.unload(); + + BrowserTestUtils.removeTab(tab); +}); + +add_task(async function test_middle_click_without_activeTab() { + let tab = await BrowserTestUtils.openNewForegroundTab( + gBrowser, + "https://example.com/" + ); + + let extension = ExtensionTestUtils.loadExtension({ + manifest: { + page_action: {}, + }, + + async background() { + browser.pageAction.onClicked.addListener(async (tab, info) => { + browser.test.assertEq(1, info.button, "Expected button value"); + browser.test.assertEq(tab.url, undefined, "tab.url is undefined"); + await browser.test.assertRejects( + browser.tabs.insertCSS(tab.id, { + code: "body { border: 20px solid red; }", + }), + "Missing host permission for the tab", + "expected failure of tabs.insertCSS without permission" + ); + browser.test.sendMessage("onClick"); + }); + + let [tab] = await browser.tabs.query({ + active: true, + currentWindow: true, + }); + await browser.pageAction.show(tab.id); + browser.test.sendMessage("ready"); + }, + }); + + await extension.startup(); + await extension.awaitMessage("ready"); + + await clickPageAction(extension, window, { button: 1 }); + await extension.awaitMessage("onClick"); + + await extension.unload(); + + BrowserTestUtils.removeTab(tab); +}); -- cgit v1.2.3