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.js48
1 files changed, 48 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 000000000..d7cc5c94d
--- /dev/null
+++ b/devtools/client/framework/test/browser_toolbox_selected_tool_unavailable.js
@@ -0,0 +1,48 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
+/* 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: "test-tool",
+ isTargetSupported: () => true,
+ visibilityswitch: "devtools.test-tool.enabled",
+ url: "about:blank",
+ label: "someLabel",
+ build: (iframeWindow, toolbox) => {
+ return {
+ target: toolbox.target,
+ toolbox: toolbox,
+ isReady: true,
+ destroy: () => {},
+ panelDoc: iframeWindow.document
+ };
+ }
+};
+
+add_task(function* () {
+ gDevTools.registerTool(testToolDefinition);
+ let tab = yield addTab("about:blank");
+ let target = TargetFactory.forTab(tab);
+
+ let toolbox = yield gDevTools.showToolbox(target, testToolDefinition.id);
+ is(toolbox.currentToolId, "test-tool", "test-tool was selected");
+ yield gDevTools.closeToolbox(target);
+
+ // Make the previously selected tool unavailable.
+ testToolDefinition.isTargetSupported = () => false;
+
+ target = TargetFactory.forTab(tab);
+ toolbox = yield gDevTools.showToolbox(target);
+ is(toolbox.currentToolId, "webconsole", "web console was selected");
+
+ yield gDevTools.closeToolbox(target);
+ gDevTools.unregisterTool(testToolDefinition.id);
+ tab = toolbox = target = null;
+ gBrowser.removeCurrentTab();
+});