tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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 }