Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / inspector / timeline / timeline-window-filter.html
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 src="resources/timeline-data.js"></script>
6 <script>
7
8 function test()
9 {
10     var timelineData = InspectorTest.timelineData();
11
12     WebInspector.inspectorView.showPanel("timeline");
13     var timeline = WebInspector.panels.timeline;
14     var overviewPane = timeline._overviewPane;
15     var model = timeline._model;
16
17     function createFileReader(file, delegate)
18     {
19         return new InspectorTest.FakeFileReader(timelineData, delegate, model.saveToFile.bind(model));
20     }
21
22     InspectorTest.override(model, "_createFileReader", createFileReader);
23
24     model.loadFromFile({}, new WebInspector.Progress());
25     timeline._currentViews[0]._refresh();
26
27     overviewPane.update();
28     InspectorTest.addResult("OverviewPane:");
29     dumpDividers(overviewPane._overviewCalculator);
30     InspectorTest.addResult("");
31
32     function dumpRecordsCountForRange(windowLeft, windowRight)
33     {
34         var view = timeline._currentViews[0];
35         overviewPane._overviewGrid.setWindow(windowLeft, windowRight);
36         view._refresh();
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("");
43     }
44
45     function dumpFlameChartRecordsCountForRange(windowLeft, windowRight)
46     {
47         var mainView = timeline._currentViews[0]._mainView;
48         overviewPane._overviewGrid.setWindow(windowLeft, windowRight);
49         mainView.update();
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("");
55     }
56
57     function dumpDividers(calculator)
58     {
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.");
63     }
64
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);
70
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);
76
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);
84
85     overviewPane._overviewGrid.setWindow(0.1, 0.9);
86
87     InspectorTest.addResult("--------------------------------------------------------");
88     InspectorTest.addResult("mode = " + timeline._overviewModeSetting.get());
89     InspectorTest.addResult("time range = " + timeline._windowStartTime + " - " + timeline._windowEndTime);
90
91     timeline._overviewModeSetting.set(WebInspector.TimelinePanel.OverviewMode.Events);
92     timeline._flameChartEnabledSetting.set(false);
93     timeline._onModeChanged();
94     InspectorTest.addResult("");
95
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("");
101
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();
107
108     InspectorTest.completeTest();
109 }
110
111 </script>
112 </head>
113
114 <body onload="runTest()">
115 <p>
116 Tests the Timeline window filter.
117 </p>
118
119 <p>
120 It applies different ranges to the OverviewGrid and expects that current view reflects the change.
121 </p>
122 <p>
123 Also it detects that after switching to another view it gets the proper time range.
124 </p>
125
126 </body>
127 </html>