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.
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">
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;
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());
31 assertEquals(1, track.children.length);
32 assertTrue(track.hasVisibleContent);
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());
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]);
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);
57 g.push(newAsyncSlice(0, 1, t1, t1));
58 g.push(newAsyncSlice(0, 1.5, t1, t1));
61 var track = new AsyncSliceGroupTrack(new tracing.TimelineViewport());
64 var subRows = track.subRows;
66 assertEquals(2, subRows.length);
67 assertEquals(1, subRows[0].length);
68 assertEquals(g.slices[0].subSlices[0], subRows[0][0]);
70 assertEquals(1, subRows[1].length);
71 assertEquals(g.slices[1].subSlices[0], subRows[1][0]);
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));
83 var track = new AsyncSliceGroupTrack(new tracing.TimelineViewport());
85 var subRows = track.subRows;
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]);
92 assertEquals(1, subRows[1].length);
93 assertEquals(g.slices[1].subSlices[0], subRows[1][0]);
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);
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));
107 var track = new AsyncSliceGroupTrack(new tracing.TimelineViewport());
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]);