/* Any copyright is dedicated to the Public Domain. * http://creativecommons.org/publicdomain/zero/1.0/ */ // Test that the "browser console" menu item opens or focuses (if already open) // the console window instead of toggling it open/close. "use strict"; requestLongerTimeout(2); const TEST_MESSAGE = "testmessage"; const { Tools } = require("resource://devtools/client/definitions.js"); add_task(async function () { info("Get main browser window"); const mainWindow = Services.wm.getMostRecentWindow(null); info("Open the Browser Console"); await BrowserConsoleManager.openBrowserConsoleOrFocus(); let hud = BrowserConsoleManager.getBrowserConsole(); await waitFor(() => hud.ui.document.hasFocus()); ok(true, "Focus is in the Browser Console"); info("Emit a log message to display it in the Browser Console"); console.log(TEST_MESSAGE); await waitFor(() => findConsoleAPIMessage(hud, TEST_MESSAGE)); let currWindow = Services.wm.getMostRecentWindow(null); is( currWindow.document.documentURI, Tools.webConsole.url, "The Browser Console is open and has focus" ); info("Focus the main browser window"); mainWindow.focus(); info("Focus the Browser Console window"); await BrowserConsoleManager.openBrowserConsoleOrFocus(); currWindow = Services.wm.getMostRecentWindow(null); is( currWindow.document.documentURI, Tools.webConsole.url, "The Browser Console is open and has focus" ); info("Close the Browser Console"); await safeCloseBrowserConsole(); hud = BrowserConsoleManager.getBrowserConsole(); ok(!hud, "Browser Console has been closed"); });