summaryrefslogtreecommitdiffstats
path: root/devtools/client/framework/test/browser_toolbox_selected_tool_unavailable.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/framework/test/browser_toolbox_selected_tool_unavailable.js')
-rw-r--r--devtools/client/framework/test/browser_toolbox_selected_tool_unavailable.js46
1 files changed, 46 insertions, 0 deletions
diff --git a/devtools/client/framework/test/browser_toolbox_selected_tool_unavailable.js b/devtools/client/framework/test/browser_toolbox_selected_tool_unavailable.js
new file mode 100644
index 0000000000..c55ad5867c
--- /dev/null
+++ b/devtools/client/framework/test/browser_toolbox_selected_tool_unavailable.js
@@ -0,0 +1,46 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+// Test that opening the toolbox doesn't throw when the previously selected
+// tool is not supported.
+
+const testToolDefinition = {
+ id: "testTool",
+ isToolSupported: () => true,
+ visibilityswitch: "devtools.test-tool.enabled",
+ url: "about:blank",
+ label: "someLabel",
+ build: (iframeWindow, toolbox) => {
+ return {
+ target: toolbox.target,
+ toolbox,
+ isReady: true,
+ destroy: () => {},
+ panelDoc: iframeWindow.document,
+ };
+ },
+};
+
+add_task(async function () {
+ gDevTools.registerTool(testToolDefinition);
+ let tab = await addTab("about:blank");
+
+ let toolbox = await gDevTools.showToolboxForTab(tab, {
+ toolId: testToolDefinition.id,
+ });
+ is(toolbox.currentToolId, "testTool", "test-tool was selected");
+ await toolbox.destroy();
+
+ // Make the previously selected tool unavailable.
+ testToolDefinition.isToolSupported = () => false;
+
+ toolbox = await gDevTools.showToolboxForTab(tab);
+ is(toolbox.currentToolId, "webconsole", "web console was selected");
+
+ await toolbox.destroy();
+ gDevTools.unregisterTool(testToolDefinition.id);
+ tab = toolbox = null;
+ gBrowser.removeCurrentTab();
+});