summaryrefslogtreecommitdiffstats
path: root/browser/components/extensions/test/browser/browser_ext_sidebarAction.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/extensions/test/browser/browser_ext_sidebarAction.js')
-rw-r--r--browser/components/extensions/test/browser/browser_ext_sidebarAction.js60
1 files changed, 53 insertions, 7 deletions
diff --git a/browser/components/extensions/test/browser/browser_ext_sidebarAction.js b/browser/components/extensions/test/browser/browser_ext_sidebarAction.js
index 8498f73071..ac2d19cf23 100644
--- a/browser/components/extensions/test/browser/browser_ext_sidebarAction.js
+++ b/browser/components/extensions/test/browser/browser_ext_sidebarAction.js
@@ -7,6 +7,7 @@ requestLongerTimeout(2);
let extData = {
manifest: {
sidebar_action: {
+ default_icon: "default.png",
default_panel: "sidebar.html",
},
},
@@ -29,6 +30,9 @@ let extData = {
browser.test.sendMessage("sidebar");
};
},
+
+ "default.png": imageBuffer,
+ "1.png": imageBuffer,
},
background: function () {
@@ -44,6 +48,8 @@ let extData = {
let { arg = {}, result } = data;
let isOpen = await browser.sidebarAction.isOpen(arg);
browser.test.assertEq(result, isOpen, "expected value from isOpen");
+ } else if (msg === "set-icon") {
+ await browser.sidebarAction.setIcon({ path: data });
}
browser.test.sendMessage("done");
});
@@ -148,7 +154,7 @@ add_task(async function sidebar_isOpen() {
info("Test extension1's sidebar is opened on install");
await extension1.awaitMessage("sidebar");
await sendMessage(extension1, "isOpen", { result: true });
- let sidebar1ID = SidebarUI.currentID;
+ let sidebar1ID = SidebarController.currentID;
info("Load extension2");
let extension2 = ExtensionTestUtils.loadExtension(getExtData());
@@ -160,7 +166,7 @@ add_task(async function sidebar_isOpen() {
await sendMessage(extension2, "isOpen", { result: true });
info("Switch back to extension1's sidebar");
- SidebarUI.show(sidebar1ID);
+ SidebarController.show(sidebar1ID);
await extension1.awaitMessage("sidebar");
await sendMessage(extension1, "isOpen", { result: true });
await sendMessage(extension2, "isOpen", { result: false });
@@ -195,7 +201,7 @@ add_task(async function sidebar_isOpen() {
newWin.close();
info("Close the sidebar in the original window");
- SidebarUI.hide();
+ SidebarController.hide();
await sendMessage(extension1, "isOpen", { result: false });
await sendMessage(extension2, "isOpen", { result: false });
@@ -223,11 +229,15 @@ add_task(async function testShortcuts() {
async function toggleSwitcherPanel(win = window) {
// Open and close the switcher panel to trigger shortcut content rendering.
- let switcherPanelShown = promisePopupShown(win.SidebarUI._switcherPanel);
- win.SidebarUI.showSwitcherPanel();
+ let switcherPanelShown = promisePopupShown(
+ win.SidebarController._switcherPanel
+ );
+ win.SidebarController.showSwitcherPanel();
await switcherPanelShown;
- let switcherPanelHidden = promisePopupHidden(win.SidebarUI._switcherPanel);
- win.SidebarUI.hideSwitcherPanel();
+ let switcherPanelHidden = promisePopupHidden(
+ win.SidebarController._switcherPanel
+ );
+ win.SidebarController.hideSwitcherPanel();
await switcherPanelHidden;
}
@@ -301,3 +311,39 @@ add_task(async function testShortcuts() {
await BrowserTestUtils.closeWindow(win);
});
+
+add_task(async function sidebar_switcher_panel_icon_update() {
+ info("Load extension");
+ const extension = ExtensionTestUtils.loadExtension(getExtData());
+ await extension.startup();
+
+ info("Test extension's sidebar is opened on install");
+ await extension.awaitMessage("sidebar");
+ await sendMessage(extension, "isOpen", { result: true });
+ const sidebarID = SidebarController.currentID;
+
+ const item = SidebarController._switcherPanel.querySelector(
+ ".webextension-menuitem"
+ );
+ let iconUrl = `moz-extension://${extension.uuid}/default.png`;
+ is(
+ item.style.getPropertyValue("--webextension-menuitem-image"),
+ `image-set(url("${iconUrl}"), url("${iconUrl}") 2x)`,
+ "Extension has the correct icon."
+ );
+ SidebarController.hide();
+ await sendMessage(extension, "isOpen", { result: false });
+
+ await sendMessage(extension, "set-icon", "1.png");
+ await SidebarController.show(sidebarID);
+ await extension.awaitMessage("sidebar");
+ await sendMessage(extension, "isOpen", { result: true });
+ iconUrl = `moz-extension://${extension.uuid}/1.png`;
+ is(
+ item.style.getPropertyValue("--webextension-menuitem-image"),
+ `image-set(url("${iconUrl}"), url("${iconUrl}") 2x)`,
+ "Extension has updated icon."
+ );
+
+ await extension.unload();
+});