Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(146)

Side by Side Diff: third_party/WebKit/LayoutTests/inspector-protocol/debugger/continueToLocation.js

Issue 2968523003: [DevTools] Migrate inspector-protocol/debugger tests to new harness (Closed)
Patch Set: all tests Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 (async function(testRunner) {
2 let {page, session, dp} = await testRunner.startBlank('');
3
4 function statementsExample()
chenwilliam 2017/06/30 20:23:27 should we standardize on whether to have inspected
5 {
6 var self = arguments.callee;
7
8 debugger;
9
10 self.step = 1;
11
12 self.step = 2;
13
14 void [
15 self.step = 3,
16 self.step = 4,
17 self.step = 5,
18 self.step = 6
19 ];
20
21 self.step = 7;
22 }
23
24 var scenarios = [
25 // requested line number, expected control parameter 'step', expected line number
26 [ 8, 1, 8 ],
27 [ 8, 1, 8 ],
28 [ 12, 6, 17 ],
29 [ 13, 6, 17 ],
30 [ 17, 6, 17 ],
31 [ 17, 6, 17 ],
32 ];
33
34 dp.Debugger.enable();
35 var functionResponse = await dp.Runtime.evaluate({expression: statementsExampl e.toString() + '; statementsExample'});
36 var functionObjectId = functionResponse.result.result.objectId;
37
38 var detailsResponse = await dp.Runtime.getProperties({objectId: functionObject Id});
39 var scriptId;
40 for (var prop of detailsResponse.result.internalProperties) {
41 if (prop.name === '[[FunctionLocation]]')
42 scriptId = prop.value.value.scriptId;
43 }
44
45 for (var scenario of scenarios) {
46 var lineNumber = scenario[0];
47 var expectedResult = scenario[1];
48 var expectedLineNumber = scenario[2];
49 dp.Runtime.evaluate({expression: 'setTimeout(statementsExample, 0)' });
50 await dp.Debugger.oncePaused();
51 testRunner.log('Paused on debugger statement');
52
53 var continueToLocationResponse = await dp.Debugger.continueToLocation({locat ion: {scriptId, lineNumber, columnNumber: 0}});
54 if (continueToLocationResponse.error) {
55 testRunner.log('Failed to execute continueToLocation ' + JSON.stringify(co ntinueToLocationResponse.error));
56 testRunner.completeTest();
57 return;
58 }
59
60 var messageObject = await dp.Debugger.oncePaused();
61 testRunner.log('Paused after continueToLocation');
62 var actualLineNumber = messageObject.params.callFrames[0].location.lineNumbe r;
63 testRunner.log('Stopped on line ' + actualLineNumber + ', expected ' + expec tedLineNumber + ', requested ' + lineNumber + ', (0-based numbers).');
64
65 dp.Debugger.onPaused(handleDebuggerPausedUnexpected);
66 var resultValue = (await dp.Runtime.evaluate({expression: 'statementsExample .step' })).result.result.value;
67 testRunner.log(`Control parameter 'step' calculation result: ${resultValue}, expected: ${expectedResult}`);
68 testRunner.log(resultValue == expectedResult ? 'SUCCESS' : 'FAIL');
69 dp.Debugger.resume();
70 dp.Debugger.offPaused(handleDebuggerPausedUnexpected);
71
72 function handleDebuggerPausedUnexpected() {
73 testRunner.log('Unexpected debugger pause');
74 testRunner.completeTest();
75 }
76 }
77
78 testRunner.completeTest();
79 })
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698