summaryrefslogtreecommitdiffstats
path: root/browser/components/extensions/test/browser/browser_ext_sidebarAction_windows.js
diff options
context:
space:
mode:
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.js69
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);
+});