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

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

Issue 391413003: DevTools: [Timeline] extract common infrastructure from tracing tests. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: syntax error was fixed 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
OLDNEW
1 <html> 1 <html>
2 <head> 2 <head>
3 <style> 3 <style>
4 .my-class { 4 .my-class {
5 min-width: 100px; 5 min-width: 100px;
6 background-color: red; 6 background-color: red;
7 } 7 }
8 </style> 8 </style>
9 <script type="text/javascript" src="../../http/tests/inspector-protocol/inspecto r-protocol-test.js"></script> 9 <script type="text/javascript" src="../../http/tests/inspector-protocol/inspecto r-protocol-test.js"></script>
10 <script type="text/javascript" src="../../http/tests/inspector-protocol/tracing- test.js"></script>
10 <script> 11 <script>
11 12
12 function testFunction() 13 function performActions(callback)
13 { 14 {
14 var div = document.querySelector("#myDiv"); 15 var div = document.querySelector("#myDiv");
15 div.classList.add("my-class"); 16 div.classList.add("my-class");
16 div.offsetWidth; 17 div.offsetWidth;
18 callback();
17 } 19 }
18 20
19 function test() 21 function test()
20 { 22 {
21 InspectorTest.eventHandler["Tracing.dataCollected"] = dataCollected; 23 InspectorTest.invokeAsyncWithTracing("performActions", finish);
22 InspectorTest.eventHandler["Tracing.tracingComplete"] = tracingComplete;
23 InspectorTest.sendCommand("Tracing.start", { "categories" : "disabled-by-def ault-devtools.timeline", "type": "" }, onStart);
24 24
25 function onStart(response) 25 function finish(devtoolsEvents)
26 { 26 {
27 InspectorTest.log("Recording started"); 27 var schedRecalc = InspectorTest.findEvent("ScheduleStyleRecalculation", "I");
28 InspectorTest.sendCommand("Runtime.evaluate", { "expression": "testFunct ion()" }, didEvaluate); 28 var recalcBegin = InspectorTest.findEvent("RecalculateStyles", "B");
29 } 29 var recalcEnd = InspectorTest.findEvent("RecalculateStyles", "E");
30
31 function didEvaluate(response)
32 {
33 InspectorTest.sendCommand("Tracing.end", { }, onStop);
34 }
35
36 var devtoolsEvents = [];
37 function dataCollected(reply)
38 {
39 var allEvents = reply.params.value;
40 devtoolsEvents = devtoolsEvents.concat(allEvents.filter(function(e)
41 {
42 return e.cat === "disabled-by-default-devtools.timeline";
43 }));
44 }
45
46 function tracingComplete(event)
47 {
48 InspectorTest.log("Tracing complete");
49
50 var schedRecalc = findEvent("ScheduleStyleRecalculation", "I");
51 var recalcBegin = findEvent("RecalculateStyles", "B");
52 var recalcEnd = findEvent("RecalculateStyles", "E");
53 InspectorTest.assertEquals(schedRecalc.args.frame, recalcBegin.args.fram e, "RecalculateStyles frame"); 30 InspectorTest.assertEquals(schedRecalc.args.frame, recalcBegin.args.fram e, "RecalculateStyles frame");
54 InspectorTest.assert(recalcEnd.args.elementCount > 0, "RecalculateStyles elementCount"); 31 InspectorTest.assert(recalcEnd.args.elementCount > 0, "RecalculateStyles elementCount");
55 32
56 var invalidate = findEvent("InvalidateLayout", "I"); 33 var invalidate = InspectorTest.findEvent("InvalidateLayout", "I");
57 var layoutBegin = findEvent("Layout", "B"); 34 var layoutBegin = InspectorTest.findEvent("Layout", "B");
58 var layoutEnd = findEvent("Layout", "E"); 35 var layoutEnd = InspectorTest.findEvent("Layout", "E");
59 36
60 InspectorTest.assertEquals(recalcBegin.args.frame, invalidate.args.frame , "InvalidateLayout frame"); 37 InspectorTest.assertEquals(recalcBegin.args.frame, invalidate.args.frame , "InvalidateLayout frame");
61 38
62 var beginData = layoutBegin.args.beginData; 39 var beginData = layoutBegin.args.beginData;
63 InspectorTest.assertEquals(invalidate.args.frame, beginData.frame, "Layo ut frame"); 40 InspectorTest.assertEquals(invalidate.args.frame, beginData.frame, "Layo ut frame");
64 InspectorTest.assert(beginData.dirtyObjects > 0, "dirtyObjects"); 41 InspectorTest.assert(beginData.dirtyObjects > 0, "dirtyObjects");
65 InspectorTest.assert(beginData.totalObjects > 0, "totalObjects"); 42 InspectorTest.assert(beginData.totalObjects > 0, "totalObjects");
66 43
67 var endData = layoutEnd.args.endData; 44 var endData = layoutEnd.args.endData;
68 InspectorTest.assert(endData.rootNode > 0, "rootNode id"); 45 InspectorTest.assert(endData.rootNode > 0, "rootNode id");
69 InspectorTest.assert(!!endData.root , "root quad"); 46 InspectorTest.assert(!!endData.root , "root quad");
70 47
71 InspectorTest.log("SUCCESS: found all expected events."); 48 InspectorTest.log("SUCCESS: found all expected events.");
72 InspectorTest.completeTest(); 49 InspectorTest.completeTest();
73 } 50 }
74 51
75 function findEvent(name, ph)
76 {
77 for (var i = 0; i < devtoolsEvents.length; i++) {
78 var e = devtoolsEvents[i];
79 if (e.name === name && e.ph === ph)
80 return e;
81 }
82 throw new Error("Couldn't find event " + name + " / " + ph + "\n\n in " + JSON.stringify(devtoolsEvents, null, 2));
83 }
84
85 function onStop(response)
86 {
87 InspectorTest.log("Recording stopped");
88 }
89 } 52 }
90 </script> 53 </script>
91 </head> 54 </head>
92 <body onLoad="runTest();"> 55 <body onLoad="runTest();">
93 <div id="myDiv">DIV</div> 56 <div id="myDiv">DIV</div>
94 </body> 57 </body>
95 </html> 58 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698