OLD | NEW |
| (Empty) |
1 <html> | |
2 <head> | |
3 <script src="../../http/tests/inspector/inspector-test.js"></script> | |
4 <script src="../../http/tests/inspector/timeline-test.js"></script> | |
5 <script> | |
6 function test() | |
7 { | |
8 function checkStringContains(string, contains) | |
9 { | |
10 var doesContain = string.indexOf(contains) >= 0; | |
11 InspectorTest.check(doesContain, contains + " should be present in " + s
tring); | |
12 InspectorTest.addResult("PASS - record contained " + contains); | |
13 } | |
14 | |
15 InspectorTest.runTestSuite([ | |
16 function testTimerInstall(next) | |
17 { | |
18 function setTimeoutFunction(callback) | |
19 { | |
20 setTimeout(callback, 0); | |
21 } | |
22 | |
23 var source = setTimeoutFunction.toString(); | |
24 source += "\n//# sourceURL=setTimeoutFunction.js"; | |
25 InspectorTest.evaluateInPage(source); | |
26 | |
27 InspectorTest.invokeAsyncWithTimeline("setTimeoutFunction", finishAn
dRunNextTest); | |
28 function finishAndRunNextTest() | |
29 { | |
30 var linkifier = new WebInspector.Linkifier(); | |
31 var record = InspectorTest.findFirstTimelineRecord("TimerFire"); | |
32 InspectorTest.check(record, "Should receive a TimerFire record."
); | |
33 var contentHelper = new WebInspector.TimelineDetailsContentHelpe
r(InspectorTest.timelineModel().target(), linkifier, true); | |
34 WebInspector.TimelineUIUtils._generateCauses(record.traceEvent()
, InspectorTest.timelineModel().target(), null, contentHelper); | |
35 var causes = contentHelper.element.deepTextContent(); | |
36 InspectorTest.check(causes, "Should generate causes"); | |
37 checkStringContains(causes, "Timer InstalledsetTimeoutFunction @
setTimeoutFunction.js:"); | |
38 next(); | |
39 } | |
40 }, | |
41 | |
42 function testRequestAnimationFrame(next) | |
43 { | |
44 function requestAnimationFrameFunction(callback) | |
45 { | |
46 requestAnimationFrame(callback); | |
47 } | |
48 | |
49 var source = requestAnimationFrameFunction.toString(); | |
50 source += "\n//# sourceURL=requestAnimationFrameFunction.js"; | |
51 InspectorTest.evaluateInPage(source); | |
52 | |
53 InspectorTest.invokeAsyncWithTimeline("requestAnimationFrameFunction
", finishAndRunNextTest); | |
54 function finishAndRunNextTest() | |
55 { | |
56 var linkifier = new WebInspector.Linkifier(); | |
57 var record = InspectorTest.findFirstTimelineRecord("FireAnimatio
nFrame"); | |
58 InspectorTest.check(record, "Should receive a FireAnimationFrame
record."); | |
59 var contentHelper = new WebInspector.TimelineDetailsContentHelpe
r(InspectorTest.timelineModel().target(), linkifier, true); | |
60 WebInspector.TimelineUIUtils._generateCauses(record.traceEvent()
, InspectorTest.timelineModel().target(), null, contentHelper); | |
61 var causes = contentHelper.element.deepTextContent(); | |
62 InspectorTest.check(causes, "Should generate causes"); | |
63 checkStringContains(causes, "Animation Frame RequestedrequestAni
mationFrameFunction @ requestAnimationFrameFunction.js:"); | |
64 next(); | |
65 } | |
66 }, | |
67 | |
68 function testStyleRecalc(next) | |
69 { | |
70 function styleRecalcFunction() | |
71 { | |
72 var element = document.getElementById("testElement"); | |
73 element.style.backgroundColor = "papayawhip"; | |
74 var forceLayout = element.offsetWidth; | |
75 } | |
76 | |
77 var source = styleRecalcFunction.toString(); | |
78 source += "\n//# sourceURL=styleRecalcFunction.js"; | |
79 InspectorTest.evaluateInPage(source); | |
80 | |
81 InspectorTest.evaluateWithTimeline("styleRecalcFunction()", finishAn
dRunNextTest); | |
82 function finishAndRunNextTest() | |
83 { | |
84 var linkifier = new WebInspector.Linkifier(); | |
85 var record = InspectorTest.findFirstTimelineRecord("UpdateLayout
Tree"); | |
86 InspectorTest.check(record, "Should receive a UpdateLayoutTree r
ecord."); | |
87 var contentHelper = new WebInspector.TimelineDetailsContentHelpe
r(InspectorTest.timelineModel().target(), linkifier, true); | |
88 WebInspector.TimelineUIUtils._generateCauses(record.traceEvent()
, InspectorTest.timelineModel().target(), null, contentHelper); | |
89 var causes = contentHelper.element.deepTextContent(); | |
90 InspectorTest.check(causes, "Should generate causes"); | |
91 checkStringContains(causes, "First InvalidatedstyleRecalcFunctio
n @ styleRecalcFunction.js:"); | |
92 next(); | |
93 } | |
94 }, | |
95 | |
96 function testLayout(next) | |
97 { | |
98 function layoutFunction() | |
99 { | |
100 var element = document.getElementById("testElement"); | |
101 element.style.width = "200px"; | |
102 var forceLayout = element.offsetWidth; | |
103 } | |
104 | |
105 var source = layoutFunction.toString(); | |
106 source += "\n//# sourceURL=layoutFunction.js"; | |
107 InspectorTest.evaluateInPage(source); | |
108 | |
109 InspectorTest.evaluateWithTimeline("layoutFunction()", finishAndRunN
extTest); | |
110 function finishAndRunNextTest() | |
111 { | |
112 var linkifier = new WebInspector.Linkifier(); | |
113 var record = InspectorTest.findFirstTimelineRecord("Layout"); | |
114 InspectorTest.check(record, "Should receive a Layout record."); | |
115 var contentHelper = new WebInspector.TimelineDetailsContentHelpe
r(InspectorTest.timelineModel().target(), linkifier, true); | |
116 WebInspector.TimelineUIUtils._generateCauses(record.traceEvent()
, InspectorTest.timelineModel().target(), null, contentHelper); | |
117 var causes = contentHelper.element.deepTextContent(); | |
118 InspectorTest.check(causes, "Should generate causes"); | |
119 checkStringContains(causes, "Layout ForcedlayoutFunction @ layou
tFunction.js:"); | |
120 checkStringContains(causes, "First Layout InvalidationlayoutFunc
tion @ layoutFunction.js:"); | |
121 next(); | |
122 } | |
123 } | |
124 ]); | |
125 } | |
126 </script> | |
127 </head> | |
128 | |
129 <body onload="runTest()"> | |
130 <p> | |
131 Test that causes are correctly generated for various types of events. | |
132 </p> | |
133 <div id="testElement"></div> | |
134 </body> | |
135 </html> | |
OLD | NEW |