3 <script src="../../http/tests/inspector/inspector-test.js"></script>
4 <script src="../../http/tests/inspector/timeline-test.js"></script>
9 WebInspector.showPanel("timeline");
11 var data = ["Version",
12 {"startTime":13,"data":{},"endTime":19,"type":"Program","children":[
13 {"startTime":14,"data":{"type":"click"},"endTime":18,"type":"EventDispatch","frameId":"2","children":[
14 {"startTime":15,"data":{"scriptName":"foo.html","scriptLine":7},"endTime":17,"type":"FunctionCall","frameId":"2","children":[
15 {"startTime":16,"data":{"message":"hello"},"type":"Time","frameId":"2"}
19 {"startTime":25,"data":{},"endTime":35,"type":"Program","children":[
20 {"startTime":26,"data":{"type":"click"},"endTime":34,"type":"EventDispatch","frameId":"2","children":[
21 {"startTime":27,"data":{"scriptName":"foo.html","scriptLine":15},"endTime":33,"type":"FunctionCall","frameId":"2","children":[
22 {"startTime":28,"data":{"message":"boom"},"type":"Time","frameId":"2"},
23 {"startTime":29,"data":{},"type":"ScheduleStyleRecalculation","frameId":"2"},
24 {"startTime":30,"data":{},"children":[],"endTime":31,"type":"RecalculateStyles","frameId":"2"},
25 {"startTime":32,"data":{"message":"boom"},"type":"TimeEnd","frameId":"2"}
29 {"startTime":41,"data":{},"endTime":47,"type":"Program","children":[
30 {"startTime":42,"data":{"type":"click"},"endTime":46,"type":"EventDispatch","frameId":"2","children":[
31 {"startTime":43,"data":{"scriptName":"foo.html","scriptLine":11},"endTime":45,"type":"FunctionCall","frameId":"2","children":[
32 {"startTime":44,"data":{"message":"hello"},"type":"TimeEnd","frameId":"2"}
38 var input = JSON.stringify(data);
39 var model = WebInspector.panels.timeline._model;
40 var presentationModel = WebInspector.panels.timeline._presentationModel;
41 presentationModel.setGlueRecords(true);
43 function createFileReader(file, delegate)
45 return new InspectorTest.FakeFileReader(input, delegate, onDataLoaded);
48 function onDataLoaded()
50 var root = presentationModel.rootRecord();
51 InspectorTest.assertEquals(4, root.children.length);
53 var time1 = root.children[1];
54 InspectorTest.assertEquals("Time", time1.type);
55 InspectorTest.assertEquals(2, time1.children.length);
56 var timeEnd1 = time1.children[1];
57 InspectorTest.assertEquals("TimeEnd", timeEnd1.type);
58 InspectorTest.assertEquals(time1, timeEnd1.timeRecord);
59 InspectorTest.assertEquals(timeEnd1, time1.timeEndRecord);
61 var time2 = time1.children[0];
62 InspectorTest.assertEquals("Time", time2.type);
63 InspectorTest.assertEquals(1, time2.children.length);
64 var timeEnd2 = time2.children[0];
65 InspectorTest.assertEquals("TimeEnd", timeEnd2.type);
66 InspectorTest.assertEquals(time2, timeEnd2.timeRecord);
67 InspectorTest.assertEquals(timeEnd2, time2.timeEndRecord);
69 InspectorTest.completeTest();
72 InspectorTest.override(model, "_createFileReader", createFileReader);
73 model.loadFromFile({}, new WebInspector.Progress());
79 <body onload="runTest()">
81 Test time/timeEnd nesting <a href="https://bugs.webkit.org/show_bug.cgi?id=100936">(Bug 100936)</a>