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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
/* -*- 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/ */
/**
* Hitting ESC to open the split console when paused on reload should not stop
* the pending navigation.
*/
function test() {
Task.spawn(runTests);
}
function* runTests() {
let TAB_URL = EXAMPLE_URL + "doc_split-console-paused-reload.html";
let options = {
source: TAB_URL,
line: 1
};
let [,, panel] = yield initDebugger(TAB_URL, options);
let dbgWin = panel.panelWin;
let sources = dbgWin.DebuggerView.Sources;
let frames = dbgWin.DebuggerView.StackFrames;
let toolbox = gDevTools.getToolbox(panel.target);
yield panel.addBreakpoint({ actor: getSourceActor(sources, TAB_URL), line: 16 });
info("Breakpoint was set.");
dbgWin.DebuggerController._target.activeTab.reload();
info("Page reloaded.");
yield waitForSourceAndCaretAndScopes(panel, ".html", 16);
yield ensureThreadClientState(panel, "paused");
info("Breakpoint was hit.");
EventUtils.sendMouseEvent({ type: "mousedown" },
frames.selectedItem.target,
dbgWin);
info("The breadcrumb received focus.");
// This is the meat of the test.
let jsterm = yield getSplitConsole(toolbox);
is(dbgWin.gThreadClient.state, "paused", "Execution is still paused.");
let dbgFrameConsoleEvalResult = yield jsterm.execute("privateVar");
is(
dbgFrameConsoleEvalResult.querySelector(".console-string").textContent,
'"privateVarValue"',
"Got the expected split console result on paused debugger"
);
yield dbgWin.gThreadClient.resume();
is(dbgWin.gThreadClient.state, "attached", "Execution is resumed.");
// Get the last evaluation result adopted by the new debugger.
let mainTargetConsoleEvalResult = yield jsterm.execute("$_");
is(
mainTargetConsoleEvalResult.querySelector(".console-string").textContent,
'"privateVarValue"',
"Got the expected split console log on $_ executed on resumed debugger"
);
Services.prefs.clearUserPref("devtools.toolbox.splitconsoleEnabled");
yield closeDebuggerAndFinish(panel);
}
|