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
|
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
/**
* Test breaking in code and jumping to the debugger before
* the debugger UI has been initialized.
*/
const TAB_URL = EXAMPLE_URL + "doc_inline-debugger-statement.html";
function test() {
Task.spawn(function* () {
const tab = yield getTab(TAB_URL);
const target = TargetFactory.forTab(tab);
const toolbox = yield gDevTools.showToolbox(target, "webconsole");
is(toolbox.currentToolId, "webconsole", "Console is the current panel");
toolbox.target.on("thread-paused", Task.async(function* () {
// Wait for the toolbox to handle the event and switch tools
yield waitForTick();
is(toolbox.currentToolId, "jsdebugger", "Debugger is the current panel");
// Wait until it's actually fully loaded
yield toolbox.loadTool("jsdebugger");
const panel = toolbox.getCurrentPanel();
const queries = panel.panelWin.require("./content/queries");
const getState = panel.panelWin.DebuggerController.getState;
is(panel.panelWin.gThreadClient.state, "paused",
"Thread is still paused");
yield waitForSourceAndCaret(panel, "debugger-statement.html", 16);
is(queries.getSelectedSource(getState()).url, TAB_URL,
"Selected source is the current tab url");
is(queries.getSelectedSourceOpts(getState()).line, 16,
"Line 16 is highlighted in the editor");
resumeDebuggerThenCloseAndFinish(panel);
}));
callInTab(tab, "runDebuggerStatement");
});
}
|