Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / trace-viewer / trace_viewer / tracing / tracks / async_slice_group_track_test.html
1 <!DOCTYPE html>
2 <!--
3 Copyright (c) 2013 The Chromium Authors. All rights reserved.
4 Use of this source code is governed by a BSD-style license that can be
5 found in the LICENSE file.
6 -->
7
8 <link rel="import" href="/tracing/test_utils.html">
9 <link rel="import" href="/tracing/timeline_track_view.html">
10 <link rel="import" href="/tracing/trace_model.html">
11
12 <script>
13 'use strict';
14
15 tvcm.unittest.testSuite(function() { // @suppress longLineCheck
16   var AsyncSliceGroup = tracing.trace_model.AsyncSliceGroup;
17   var AsyncSliceGroupTrack = tracing.tracks.AsyncSliceGroupTrack;
18   var Process = tracing.trace_model.Process;
19   var Thread = tracing.trace_model.Thread;
20   var newAsyncSlice = tracing.test_utils.newAsyncSlice;
21
22   test('filterSubRows', function() {
23     var model = new tracing.TraceModel();
24     var p1 = new Process(model, 1);
25     var t1 = new Thread(p1, 1);
26     var g = new AsyncSliceGroup(t1);
27     g.push(newAsyncSlice(0, 1, t1, t1));
28     var track = new AsyncSliceGroupTrack(new tracing.TimelineViewport());
29     track.group = g;
30
31     assertEquals(1, track.children.length);
32     assertTrue(track.hasVisibleContent);
33   });
34
35   test('rebuildSubRows_twoNonOverlappingSlices', function() {
36     var model = new tracing.TraceModel();
37     var p1 = new Process(model, 1);
38     var t1 = new Thread(p1, 1);
39     var g = new AsyncSliceGroup(t1);
40     g.push(newAsyncSlice(0, 1, t1, t1));
41     g.push(newAsyncSlice(1, 1, t1, t1));
42     var track = new AsyncSliceGroupTrack(new tracing.TimelineViewport());
43     track.group = g;
44     var subRows = track.subRows;
45     assertEquals(1, subRows.length);
46     assertEquals(2, subRows[0].length);
47     assertEquals(g.slices[0].subSlices[0], subRows[0][0]);
48     assertEquals(g.slices[1].subSlices[0], subRows[0][1]);
49   });
50
51   test('rebuildSubRows_twoOverlappingSlices', function() {
52     var model = new tracing.TraceModel();
53     var p1 = new Process(model, 1);
54     var t1 = new Thread(p1, 1);
55     var g = new AsyncSliceGroup(t1);
56
57     g.push(newAsyncSlice(0, 1, t1, t1));
58     g.push(newAsyncSlice(0, 1.5, t1, t1));
59     g.updateBounds();
60
61     var track = new AsyncSliceGroupTrack(new tracing.TimelineViewport());
62     track.group = g;
63
64     var subRows = track.subRows;
65
66     assertEquals(2, subRows.length);
67     assertEquals(1, subRows[0].length);
68     assertEquals(g.slices[0].subSlices[0], subRows[0][0]);
69
70     assertEquals(1, subRows[1].length);
71     assertEquals(g.slices[1].subSlices[0], subRows[1][0]);
72   });
73
74   test('rebuildSubRows_threePartlyOverlappingSlices', function() {
75     var model = new tracing.TraceModel();
76     var p1 = new Process(model, 1);
77     var t1 = new Thread(p1, 1);
78     var g = new AsyncSliceGroup(t1);
79     g.push(newAsyncSlice(0, 1, t1, t1));
80     g.push(newAsyncSlice(0, 1.5, t1, t1));
81     g.push(newAsyncSlice(1, 1.5, t1, t1));
82     g.updateBounds();
83     var track = new AsyncSliceGroupTrack(new tracing.TimelineViewport());
84     track.group = g;
85     var subRows = track.subRows;
86
87     assertEquals(2, subRows.length);
88     assertEquals(2, subRows[0].length);
89     assertEquals(g.slices[0].subSlices[0], subRows[0][0]);
90     assertEquals(g.slices[2].subSlices[0], subRows[0][1]);
91
92     assertEquals(1, subRows[1].length);
93     assertEquals(g.slices[1].subSlices[0], subRows[1][0]);
94   });
95
96   test('rebuildSubRows_threeOverlappingSlices', function() {
97     var model = new tracing.TraceModel();
98     var p1 = new Process(model, 1);
99     var t1 = new Thread(p1, 1);
100     var g = new AsyncSliceGroup(t1);
101
102     g.push(newAsyncSlice(0, 1, t1, t1));
103     g.push(newAsyncSlice(0, 1.5, t1, t1));
104     g.push(newAsyncSlice(2, 1, t1, t1));
105     g.updateBounds();
106
107     var track = new AsyncSliceGroupTrack(new tracing.TimelineViewport());
108     track.group = g;
109
110     var subRows = track.subRows;
111     assertEquals(2, subRows.length);
112     assertEquals(2, subRows[0].length);
113     assertEquals(g.slices[0].subSlices[0], subRows[0][0]);
114     assertEquals(g.slices[2].subSlices[0], subRows[0][1]);
115     assertEquals(1, subRows[1].length);
116     assertEquals(g.slices[1].subSlices[0], subRows[1][0]);
117   });
118 });
119 </script>
120