browser_toolbox_selected_tool_unavailable.js (1272B)
1 /* Any copyright is dedicated to the Public Domain. 2 * http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 // Test that opening the toolbox doesn't throw when the previously selected 7 // tool is not supported. 8 9 const testToolDefinition = { 10 id: "testTool", 11 isToolSupported: () => true, 12 visibilityswitch: "devtools.test-tool.enabled", 13 url: "about:blank", 14 label: "someLabel", 15 build: (iframeWindow, toolbox) => { 16 return { 17 target: toolbox.target, 18 toolbox, 19 isReady: true, 20 destroy: () => {}, 21 panelDoc: iframeWindow.document, 22 }; 23 }, 24 }; 25 26 add_task(async function () { 27 gDevTools.registerTool(testToolDefinition); 28 let tab = await addTab("about:blank"); 29 30 let toolbox = await gDevTools.showToolboxForTab(tab, { 31 toolId: testToolDefinition.id, 32 }); 33 is(toolbox.currentToolId, "testTool", "test-tool was selected"); 34 await toolbox.destroy(); 35 36 // Make the previously selected tool unavailable. 37 testToolDefinition.isToolSupported = () => false; 38 39 toolbox = await gDevTools.showToolboxForTab(tab); 40 is(toolbox.currentToolId, "webconsole", "web console was selected"); 41 42 await toolbox.destroy(); 43 gDevTools.unregisterTool(testToolDefinition.id); 44 tab = toolbox = null; 45 gBrowser.removeCurrentTab(); 46 });