3 <script src="../../http/tests/inspector/inspector-test.js"></script>
4 <script src="../../http/tests/inspector/timeline-test.js"></script>
5 <script src="resources/timeline-data.js"></script>
10 var timelineData = InspectorTest.timelineData();
12 WebInspector.inspectorView.showPanel("timeline");
13 var timeline = WebInspector.panels.timeline;
14 var overviewPane = timeline._overviewPane;
15 var model = timeline._model;
17 function createFileReader(file, delegate)
19 return new InspectorTest.FakeFileReader(timelineData, delegate, model.saveToFile.bind(model));
22 InspectorTest.override(model, "_createFileReader", createFileReader);
24 model.loadFromFile({}, new WebInspector.Progress());
25 timeline._currentViews[0]._refresh();
27 overviewPane.update();
28 InspectorTest.addResult("OverviewPane:");
29 dumpDividers(overviewPane._overviewCalculator);
30 InspectorTest.addResult("");
32 function dumpRecordsCountForRange(windowLeft, windowRight)
34 var view = timeline._currentViews[0];
35 overviewPane._overviewGrid.setWindow(windowLeft, windowRight);
37 InspectorTest.addResult("mode = " + timeline._overviewModeSetting.get());
38 InspectorTest.addResult("range = " + windowLeft + " - " + windowRight);
39 InspectorTest.addResult("time range = " + view._windowStartTime + " - " + view._windowEndTime);
40 InspectorTest.addResult("records count: " + view._presentationModel.filteredRecords().length);
41 dumpDividers(view._calculator);
42 InspectorTest.addResult("");
45 function dumpFlameChartRecordsCountForRange(windowLeft, windowRight)
47 var mainView = timeline._currentViews[0]._mainView;
48 overviewPane._overviewGrid.setWindow(windowLeft, windowRight);
50 InspectorTest.addResult("mode = " + timeline._overviewModeSetting.get());
51 InspectorTest.addResult("range = " + windowLeft + " - " + windowRight);
52 InspectorTest.addResult("time range = " + mainView._timeWindowLeft + " - " + mainView._timeWindowRight);
53 dumpDividers(mainView._calculator);
54 InspectorTest.addResult("");
57 function dumpDividers(calculator)
59 var dividers = WebInspector.TimelineGrid.calculateDividerOffsets(calculator, 450).offsets;
60 for (var i = 0; i < dividers.length; ++i)
61 dividers[i] -= calculator.zeroTime();
62 InspectorTest.addResult("divider offsets: [" + dividers.join(", ") + "]. We are expecting round numbers.");
65 timeline._overviewModeSetting.set(WebInspector.TimelinePanel.OverviewMode.Events);
66 timeline._onModeChanged();
67 dumpRecordsCountForRange(0, 1);
68 dumpRecordsCountForRange(0.25, 0.75);
69 dumpRecordsCountForRange(0.33, 0.66);
71 timeline._overviewModeSetting.set(WebInspector.TimelinePanel.OverviewMode.Frames);
72 timeline._onModeChanged();
73 dumpRecordsCountForRange(0, 1);
74 dumpRecordsCountForRange(0.25, 0.75);
75 dumpRecordsCountForRange(0.33, 0.66);
77 timeline._overviewModeSetting.set(WebInspector.TimelinePanel.OverviewMode.Frames);
78 timeline._flameChartEnabledSetting.set(true);
79 timeline._onModeChanged();
80 // FIXME(394762): uncomment once we support loading tracing events.
81 // dumpFlameChartRecordsCountForRange(0, 1);
82 // dumpFlameChartRecordsCountForRange(0.25, 0.5);
83 // dumpFlameChartRecordsCountForRange(0.33, 0.4);
85 overviewPane._overviewGrid.setWindow(0.1, 0.9);
87 InspectorTest.addResult("--------------------------------------------------------");
88 InspectorTest.addResult("mode = " + timeline._overviewModeSetting.get());
89 InspectorTest.addResult("time range = " + timeline._windowStartTime + " - " + timeline._windowEndTime);
91 timeline._overviewModeSetting.set(WebInspector.TimelinePanel.OverviewMode.Events);
92 timeline._flameChartEnabledSetting.set(false);
93 timeline._onModeChanged();
94 InspectorTest.addResult("");
96 InspectorTest.addResult("mode = " + timeline._overviewModeSetting.get());
97 InspectorTest.addResult("time range = " + timeline._windowStartTime + " - " + timeline._windowEndTime);
98 timeline._overviewModeSetting.set(WebInspector.TimelinePanel.OverviewMode.Frames);
99 timeline._onModeChanged();
100 InspectorTest.addResult("");
102 InspectorTest.addResult("mode = " + timeline._overviewModeSetting.get());
103 InspectorTest.addResult("time range = " + timeline._windowStartTime + " - " + timeline._windowEndTime);
104 timeline._overviewModeSetting.set(WebInspector.TimelinePanel.OverviewMode.Frames);
105 timeline._flameChartEnabledSetting.set(true);
106 timeline._onModeChanged();
108 InspectorTest.completeTest();
114 <body onload="runTest()">
116 Tests the Timeline window filter.
120 It applies different ranges to the OverviewGrid and expects that current view reflects the change.
123 Also it detects that after switching to another view it gets the proper time range.