diff options
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.js | 74 |
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` + ); +} |