summaryrefslogtreecommitdiffstats
path: root/devtools/client/webconsole/test/browser/browser_console_open_or_focus.js
blob: 679d426dc3d5f511b9a94e914a1974d126b03239 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/* 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");
});