browser_inspector_menu-04-use-in-console.js (2505B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 "use strict"; 4 5 // Tests "Use in Console" menu item 6 7 const TEST_URL = URL_ROOT + "doc_inspector_menu.html"; 8 9 add_task(async function () { 10 // Disable eager evaluation to avoid intermittent failures due to pending 11 // requests to evaluateJSAsync. 12 await pushPref("devtools.webconsole.input.eagerEvaluation", false); 13 14 info("Testing 'Use in Console' menu item with enabled split console."); 15 await pushPref("devtools.toolbox.splitconsole.enabled", true); 16 await testConsoleFunctionality({ isSplitConsoleEnabled: true }); 17 18 info("Testing 'Use in Console' menu item with disabled split console."); 19 await pushPref("devtools.toolbox.splitconsole.enabled", false); 20 await testConsoleFunctionality({ isSplitConsoleEnabled: false }); 21 }); 22 23 async function testConsoleFunctionality({ isSplitConsoleEnabled }) { 24 const { inspector, toolbox } = await openInspectorForURL(TEST_URL); 25 26 await selectNode("#console-var", inspector); 27 const container = await getContainerForSelector("#console-var", inspector); 28 const allMenuItems = openContextMenuAndGetAllItems(inspector, { 29 target: container.tagLine, 30 }); 31 const menuItem = allMenuItems.find(i => i.id === "node-menu-useinconsole"); 32 menuItem.click(); 33 34 await inspector.once("console-var-ready"); 35 36 const hud = toolbox.getPanel("webconsole").hud; 37 38 if (isSplitConsoleEnabled) { 39 ok(toolbox.splitConsole, "The console is split console."); 40 } else { 41 ok(!toolbox.splitConsole, "The console is Web Console tab."); 42 } 43 44 const getConsoleResults = () => hud.ui.outputNode.querySelectorAll(".result"); 45 46 is(hud.getInputValue(), "temp0", "first console variable is named temp0"); 47 hud.ui.wrapper.dispatchEvaluateExpression(); 48 49 await waitUntil(() => getConsoleResults().length === 1); 50 let result = getConsoleResults()[0]; 51 ok( 52 result.textContent.includes('<p id="console-var">'), 53 "variable temp0 references correct node" 54 ); 55 56 await selectNode("#console-var-multi", inspector); 57 menuItem.click(); 58 await inspector.once("console-var-ready"); 59 60 is(hud.getInputValue(), "temp1", "second console variable is named temp1"); 61 hud.ui.wrapper.dispatchEvaluateExpression(); 62 63 await waitUntil(() => getConsoleResults().length === 2); 64 result = getConsoleResults()[1]; 65 ok( 66 result.textContent.includes('<p id="console-var-multi">'), 67 "variable temp1 references correct node" 68 ); 69 70 hud.ui.wrapper.dispatchClearHistory(); 71 }