| 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 |