browser/devtools/debugger/test/browser_dbg_source-maps-03.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:b2d30c90e430
1 /* Any copyright is dedicated to the Public Domain.
2 http://creativecommons.org/publicdomain/zero/1.0/ */
3
4 /**
5 * Test that we can debug minified javascript with source maps.
6 */
7
8 const TAB_URL = EXAMPLE_URL + "doc_minified.html";
9 const JS_URL = EXAMPLE_URL + "code_math.js";
10
11 let gDebuggee, gPanel, gDebugger;
12 let gEditor, gSources, gFrames;
13
14 function test() {
15 initDebugger(TAB_URL).then(([aTab, aDebuggee, aPanel]) => {
16 gDebuggee = aDebuggee;
17 gPanel = aPanel;
18 gDebugger = gPanel.panelWin;
19 gEditor = gDebugger.DebuggerView.editor;
20 gSources = gDebugger.DebuggerView.Sources;
21 gFrames = gDebugger.DebuggerView.StackFrames;
22
23 waitForSourceShown(gPanel, JS_URL)
24 .then(checkInitialSource)
25 .then(testSetBreakpoint)
26 .then(() => resumeDebuggerThenCloseAndFinish(gPanel))
27 .then(null, aError => {
28 ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
29 });
30 });
31 }
32
33 function checkInitialSource() {
34 isnot(gSources.selectedValue.indexOf(".js"), -1,
35 "The debugger should not show the minified js file.");
36 is(gSources.selectedValue.indexOf(".min.js"), -1,
37 "The debugger should show the original js file.");
38 is(gEditor.getText().split("\n").length, 46,
39 "The debugger's editor should have the original source displayed, " +
40 "not the whitespace stripped minified version.");
41 }
42
43 function testSetBreakpoint() {
44 let deferred = promise.defer();
45
46 gDebugger.gThreadClient.setBreakpoint({ url: JS_URL, line: 30, column: 21 }, aResponse => {
47 ok(!aResponse.error,
48 "Should be able to set a breakpoint in a js file.");
49 ok(!aResponse.actualLocation,
50 "Should be able to set a breakpoint on line 30 and column 10.");
51
52 gDebugger.gClient.addOneTimeListener("resumed", () => {
53 waitForCaretAndScopes(gPanel, 30).then(() => {
54 // Make sure that we have the right stack frames.
55 is(gFrames.itemCount, 9,
56 "Should have nine frames.");
57 is(gFrames.getItemAtIndex(0).attachment.url.indexOf(".min.js"), -1,
58 "First frame should not be a minified JS frame.");
59 isnot(gFrames.getItemAtIndex(0).attachment.url.indexOf(".js"), -1,
60 "First frame should be a JS frame.");
61
62 deferred.resolve();
63 });
64
65 // This will cause the breakpoint to be hit, and put us back in the
66 // paused state.
67 gDebuggee.arithmetic();
68 });
69 });
70
71 return deferred.promise;
72 }
73
74 registerCleanupFunction(function() {
75 gDebuggee = null;
76 gPanel = null;
77 gDebugger = null;
78 gEditor = null;
79 gSources = null;
80 gFrames = null;
81 });

mercurial