diff options
Diffstat (limited to 'devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_devtoolstoolbox_reload.js')
-rw-r--r-- | devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_devtoolstoolbox_reload.js | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_devtoolstoolbox_reload.js b/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_devtoolstoolbox_reload.js new file mode 100644 index 0000000000..3eba6bcd7e --- /dev/null +++ b/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_devtoolstoolbox_reload.js @@ -0,0 +1,74 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +// Test can run for a long time on debug platforms. +requestLongerTimeout(5); + +/* import-globals-from helper-collapsibilities.js */ +Services.scriptloader.loadSubScript( + CHROME_URL_ROOT + "helper-collapsibilities.js", + this +); + +const TOOLS = [ + "inspector", + "webconsole", + "jsdebugger", + "styleeditor", + "memory", + "netmonitor", + "storage", + "accessibility", +]; + +/** + * Test whether about:devtools-toolbox display correctly after reloading. + */ +add_task(async function () { + info("Force all debug target panes to be expanded"); + prepareCollapsibilitiesTest(); + + for (const toolId of TOOLS) { + await testReloadAboutDevToolsToolbox(toolId); + } +}); + +async function testReloadAboutDevToolsToolbox(toolId) { + const { document, tab, window } = await openAboutDebugging(); + await selectThisFirefoxPage(document, window.AboutDebugging.store); + // We set the options panel to be the default one because slower panels might lead to + // race conditions which create leaks in debug mode. + await pushPref("devtools.toolbox.selectedTool", "options"); + const { devtoolsBrowser, devtoolsTab, devtoolsWindow } = + await openAboutDevtoolsToolbox(document, tab, window); + + info(`Select tool: ${toolId}`); + const toolbox = getToolbox(devtoolsWindow); + await toolbox.selectTool(toolId); + + info("Wait for requests to settle before reloading"); + await toolbox.commands.client.waitForRequestsToSettle(); + + info("Reload about:devtools-toolbox page"); + devtoolsBrowser.reload(); + await gDevTools.once("toolbox-ready"); + ok(true, "Toolbox is re-created again"); + + // Check that about:devtools-toolbox is still selected tab. See Bug 1570692. + is( + devtoolsBrowser, + gBrowser.selectedBrowser, + "about:devtools-toolbox is still selected" + ); + + info("Check whether about:devtools-toolbox page displays correctly"); + ok( + devtoolsBrowser.contentDocument.querySelector(".debug-target-info"), + "about:devtools-toolbox page displays correctly" + ); + + await closeAboutDevtoolsToolbox(document, devtoolsTab, window); + await removeTab(tab); +} |