summaryrefslogtreecommitdiffstats
path: root/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_devtoolstoolbox_menubar.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_devtoolstoolbox_menubar.js')
-rw-r--r--devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_devtoolstoolbox_menubar.js74
1 files changed, 74 insertions, 0 deletions
diff --git a/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_devtoolstoolbox_menubar.js b/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_devtoolstoolbox_menubar.js
new file mode 100644
index 0000000000..c2f0c5e362
--- /dev/null
+++ b/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_devtoolstoolbox_menubar.js
@@ -0,0 +1,74 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+/* import-globals-from helper-collapsibilities.js */
+Services.scriptloader.loadSubScript(
+ CHROME_URL_ROOT + "helper-collapsibilities.js",
+ this
+);
+
+/**
+ * Test the status of menu items when open about:devtools-toolbox.
+ */
+add_task(async function () {
+ info("Force all debug target panes to be expanded");
+ prepareCollapsibilitiesTest();
+
+ const { document, tab, window } = await openAboutDebugging();
+ await selectThisFirefoxPage(document, window.AboutDebugging.store);
+ const { devtoolsTab, devtoolsWindow } = await openAboutDevtoolsToolbox(
+ document,
+ tab,
+ window
+ );
+
+ info("Check whether the menu items are disabled");
+ const rootDocument = devtoolsTab.ownerDocument;
+ await assertMenusItems(rootDocument, false);
+
+ info("Select the inspector");
+ const toolbox = getToolbox(devtoolsWindow);
+ await toolbox.selectTool("inspector");
+
+ info("Force to select about:debugging page");
+ await updateSelectedTab(gBrowser, tab, window.AboutDebugging.store);
+
+ info("Check whether the menu items are enabled");
+ await assertMenusItems(rootDocument, true);
+
+ await closeAboutDevtoolsToolbox(document, devtoolsTab, window);
+ await removeTab(tab);
+});
+
+async function assertMenusItems(rootDocument, shouldBeEnabled) {
+ info("Wait for the Toggle Tools menu-item hidden attribute to change");
+ const menuItem = rootDocument.getElementById("menu_devToolbox");
+ await waitUntil(() => menuItem.hidden === !shouldBeEnabled);
+
+ info(
+ "Check that the state of the Toggle Tools menu-item depends on the page"
+ );
+ assertMenuItem(rootDocument, "menu_devToolbox", shouldBeEnabled);
+
+ info(
+ "Check that the tools menu-items are always enabled regardless of the page"
+ );
+ for (const toolDefinition of gDevTools.getToolDefinitionArray()) {
+ if (!toolDefinition.inMenu) {
+ continue;
+ }
+
+ assertMenuItem(rootDocument, "menuitem_" + toolDefinition.id, true);
+ }
+}
+
+function assertMenuItem(rootDocument, menuItemId, shouldBeEnabled) {
+ const menuItem = rootDocument.getElementById(menuItemId);
+ is(
+ menuItem.hidden,
+ !shouldBeEnabled,
+ `"hidden" attribute of menu item(${menuItemId}) should be correct`
+ );
+}