tor-browser

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

browser_console_nsiconsolemessage.js (2699B)


      1 /* Any copyright is dedicated to the Public Domain.
      2 * http://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 // Check that nsIConsoleMessages are displayed in the Browser Console.
      5 
      6 "use strict";
      7 
      8 const TEST_URI = `data:text/html;charset=utf8,<!DOCTYPE html>
      9 <title>browser_console_nsiconsolemessage.js</title>
     10 <p>hello world<p>
     11 nsIConsoleMessages ftw!`;
     12 
     13 add_task(async function () {
     14  // We don't use `openNewTabAndConsole()` here because we need to log a message
     15  // before opening the web console.
     16  await addTab(TEST_URI);
     17 
     18  // Test for cached nsIConsoleMessages.
     19  Services.console.logStringMessage("cachedBrowserConsoleMessage");
     20 
     21  info("open web console");
     22  let hud = await openConsole();
     23 
     24  ok(hud, "web console opened");
     25 
     26  // This "liveBrowserConsoleMessage" message should not be displayed.
     27  Services.console.logStringMessage("liveBrowserConsoleMessage");
     28 
     29  // Log a "foobarz" message so that we can be certain the previous message is
     30  // not displayed.
     31  let text = "foobarz";
     32  const onFooBarzMessage = waitForMessageByType(hud, text, ".console-api");
     33  SpecialPowers.spawn(gBrowser.selectedBrowser, [text], function (msg) {
     34    content.console.log(msg);
     35  });
     36  await onFooBarzMessage;
     37  ok(true, `"${text}" log is displayed in the Web Console as expected`);
     38 
     39  // Ensure the "liveBrowserConsoleMessage" and "cachedBrowserConsoleMessage"
     40  // messages are not displayed.
     41  text = hud.ui.outputNode.textContent;
     42  ok(
     43    !text.includes("cachedBrowserConsoleMessage"),
     44    "cached nsIConsoleMessages are not displayed"
     45  );
     46  ok(
     47    !text.includes("liveBrowserConsoleMessage"),
     48    "nsIConsoleMessages are not displayed"
     49  );
     50 
     51  await closeConsole();
     52 
     53  info("web console closed");
     54  hud = await BrowserConsoleManager.toggleBrowserConsole();
     55  ok(hud, "browser console opened");
     56 
     57  await waitFor(() =>
     58    findConsoleAPIMessage(hud, "cachedBrowserConsoleMessage")
     59  );
     60  Services.console.logStringMessage("liveBrowserConsoleMessage2");
     61  await waitFor(() => findConsoleAPIMessage(hud, "liveBrowserConsoleMessage2"));
     62 
     63  const msg = await waitFor(() =>
     64    findConsoleAPIMessage(hud, "liveBrowserConsoleMessage")
     65  );
     66  ok(msg, "message element for liveBrowserConsoleMessage (nsIConsoleMessage)");
     67 
     68  // Disable the log filter.
     69  await setFilterState(hud, {
     70    log: false,
     71  });
     72 
     73  // And then checking that the log messages are hidden.
     74  await waitFor(
     75    () =>
     76      findConsoleAPIMessages(hud, "cachedBrowserConsoleMessage").length === 0
     77  );
     78  await waitFor(
     79    () => findConsoleAPIMessages(hud, "liveBrowserConsoleMessage").length === 0
     80  );
     81  await waitFor(
     82    () => findConsoleAPIMessages(hud, "liveBrowserConsoleMessage2").length === 0
     83  );
     84 
     85  resetFilters(hud);
     86 });