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

Side by Side Diff: LayoutTests/inspector-protocol/timeline/timeline-timer.html

Issue 391413003: DevTools: [Timeline] extract common infrastructure from tracing tests. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: comments addressed Created 6 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 | Annotate | Revision Log
« no previous file with comments | « LayoutTests/inspector-protocol/timeline/timeline-raf.html ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <html> 1 <html>
2 <head> 2 <head>
3 <script type="text/javascript" src="../../http/tests/inspector-protocol/inspecto r-protocol-test.js"></script> 3 <script type="text/javascript" src="../../http/tests/inspector-protocol/inspecto r-protocol-test.js"></script>
4 <script type="text/javascript" src="../../http/tests/inspector-protocol/tracing- test.js"></script>
4 <script> 5 <script>
5 6
6 function testFunction() 7 function performActions(callback)
7 { 8 {
8 var timerId = setTimeout(function() 9 var timerId = setTimeout(function()
9 { 10 {
10 evaluateInFrontend("InspectorTest.testFunctionTimerFired(" + timerId + " , " + timerId2 + ")"); 11 evaluateInFrontend("InspectorTest.testFunctionTimerFired(" + timerId + " , " + timerId2 + ")");
12 callback();
11 }, 0); 13 }, 0);
12 14
13 var timerId2 = setTimeout(function() { }, 0); 15 var timerId2 = setTimeout(function() { }, 0);
14 clearTimeout(timerId2); 16 clearTimeout(timerId2);
15 return timerId; 17 return timerId;
16 } 18 }
17 19
18 function test() 20 function test()
19 { 21 {
20 InspectorTest.eventHandler["Tracing.dataCollected"] = dataCollected; 22 InspectorTest.invokeAsyncWithTracing("performActions", finish);
21 InspectorTest.eventHandler["Tracing.tracingComplete"] = tracingComplete;
22 InspectorTest.sendCommand("Tracing.start", { "categories" : "disabled-by-def ault-devtools.timeline", "type": "" }, onStart);
23 23
24 var firedTimerId; 24 var firedTimerId;
25 var removedTimerId; 25 var removedTimerId;
26 InspectorTest.testFunctionTimerFired = function(timerId1, timerId2) 26 InspectorTest.testFunctionTimerFired = function(timerId1, timerId2)
27 { 27 {
28 firedTimerId = timerId1; 28 firedTimerId = timerId1;
29 removedTimerId = timerId2; 29 removedTimerId = timerId2;
30 InspectorTest.log("SUCCESS: testFunctionTimerFired"); 30 InspectorTest.log("SUCCESS: testFunctionTimerFired");
31 InspectorTest.sendCommand("Tracing.end", { }, onStop);
32 } 31 }
33 32
34 function onStart(response) 33 function finish(devtoolsEvents)
35 { 34 {
36 InspectorTest.log("Recording started");
37 InspectorTest.sendCommand("Runtime.evaluate", { "expression": "testFunct ion()" });
38 }
39
40 var devtoolsEvents = [];
41 function dataCollected(reply)
42 {
43 var allEvents = reply.params.value;
44 devtoolsEvents = devtoolsEvents.concat(allEvents.filter(function(e)
45 {
46 return e.cat === "disabled-by-default-devtools.timeline";
47 }));
48 }
49
50 function tracingComplete(event)
51 {
52 InspectorTest.log("Tracing complete");
53
54 function hasTimerId(id, e) { return e.args.data.timerId === id} 35 function hasTimerId(id, e) { return e.args.data.timerId === id}
55 36
56 var installTimer1 = findEvent("TimerInstall", "I", hasTimerId.bind(this, firedTimerId)); 37 var installTimer1 = InspectorTest.findEvent("TimerInstall", "I", hasTime rId.bind(this, firedTimerId));
57 var installTimer2 = findEvent("TimerInstall", "I", hasTimerId.bind(this, removedTimerId)); 38 var installTimer2 = InspectorTest.findEvent("TimerInstall", "I", hasTime rId.bind(this, removedTimerId));
58 39
59 InspectorTest.assert(!!installTimer1.args.data.frame, "TimerInstall fram e"); 40 InspectorTest.assert(!!installTimer1.args.data.frame, "TimerInstall fram e");
60 InspectorTest.assertEquals(installTimer1.args.data.frame, installTimer2. args.data.frame, "TimerInstall frame match"); 41 InspectorTest.assertEquals(installTimer1.args.data.frame, installTimer2. args.data.frame, "TimerInstall frame match");
61 42
62 findEvent("TimerRemove", "I", hasTimerId.bind(this, removedTimerId)); 43 InspectorTest.findEvent("TimerRemove", "I", hasTimerId.bind(this, remove dTimerId));
63 findEvent("TimerFire", "X", hasTimerId.bind(this, firedTimerId)); 44 InspectorTest.findEvent("TimerFire", "X", hasTimerId.bind(this, firedTim erId));
64 45
65 InspectorTest.log("SUCCESS: found all expected events."); 46 InspectorTest.log("SUCCESS: found all expected events.");
66 InspectorTest.completeTest(); 47 InspectorTest.completeTest();
67 } 48 }
68
69 function findEvent(name, ph, condition)
70 {
71 for (var i = 0; i < devtoolsEvents.length; i++) {
72 var e = devtoolsEvents[i];
73 if (e.name === name && e.ph === ph && (!condition || condition(e)))
74 return e;
75 }
76 throw new Error("Couldn't find event " + name + " / " + ph + "\n\n in " + JSON.stringify(devtoolsEvents, null, 2));
77 }
78
79 function onStop(response)
80 {
81 InspectorTest.log("Recording stopped");
82 }
83 } 49 }
84 </script> 50 </script>
85 </head> 51 </head>
86 <body onLoad="runTest();"> 52 <body onLoad="runTest();">
87 <div id="myDiv">DIV</div> 53 <div id="myDiv">DIV</div>
88 </body> 54 </body>
89 </html> 55 </html>
OLDNEW
« no previous file with comments | « LayoutTests/inspector-protocol/timeline/timeline-raf.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698