diff options
Diffstat (limited to 'browser/components/extensions/test/browser/browser_ext_sidebarAction_windows.js')
-rw-r--r-- | browser/components/extensions/test/browser/browser_ext_sidebarAction_windows.js | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/browser/components/extensions/test/browser/browser_ext_sidebarAction_windows.js b/browser/components/extensions/test/browser/browser_ext_sidebarAction_windows.js new file mode 100644 index 0000000000..58f2b07797 --- /dev/null +++ b/browser/components/extensions/test/browser/browser_ext_sidebarAction_windows.js @@ -0,0 +1,69 @@ +/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* vim: set sts=2 sw=2 et tw=80: */ +"use strict"; + +let extData = { + manifest: { + sidebar_action: { + default_panel: "sidebar.html", + }, + }, + useAddonManager: "temporary", + + files: { + "sidebar.html": ` + <!DOCTYPE html> + <html> + <head><meta charset="utf-8"/> + <script src="sidebar.js"></script> + </head> + <body> + A Test Sidebar + </body></html> + `, + + "sidebar.js": function () { + window.onload = () => { + browser.test.sendMessage("sidebar"); + }; + }, + }, +}; + +add_task(async function sidebar_windows() { + let extension = ExtensionTestUtils.loadExtension(extData); + await extension.startup(); + // Test sidebar is opened on install + await extension.awaitMessage("sidebar"); + ok( + !document.getElementById("sidebar-box").hidden, + "sidebar box is visible in first window" + ); + // Check that the menuitem has our image styling. + let elements = document.getElementsByClassName("webextension-menuitem"); + // ui is in flux, at time of writing we potentially have 3 menuitems, later + // it may be two or one, just make sure one is there. + ok(!!elements.length, "have a menuitem"); + let style = elements[0].getAttribute("style"); + ok(style.includes("webextension-menuitem-image"), "this menu has style"); + + let secondSidebar = extension.awaitMessage("sidebar"); + + // SidebarUI relies on window.opener being set, which is normal behavior when + // using menu or key commands to open a new browser window. + let win = await BrowserTestUtils.openNewBrowserWindow(); + + await secondSidebar; + ok( + !win.document.getElementById("sidebar-box").hidden, + "sidebar box is visible in second window" + ); + // Check that the menuitem has our image styling. + elements = win.document.getElementsByClassName("webextension-menuitem"); + ok(!!elements.length, "have a menuitem"); + style = elements[0].getAttribute("style"); + ok(style.includes("webextension-menuitem-image"), "this menu has style"); + + await extension.unload(); + await BrowserTestUtils.closeWindow(win); +}); |