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 });