summaryrefslogtreecommitdiffstats
path: root/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_devtoolstoolbox_reload.js
diff options
context:
space:
mode:
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.js74
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);
+}