OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <!-- | 2 <!-- |
3 Copyright (c) 2013 The Chromium Authors. All rights reserved. | 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 | 4 Use of this source code is governed by a BSD-style license that can be |
5 found in the LICENSE file. | 5 found in the LICENSE file. |
6 --> | 6 --> |
7 | 7 |
8 <link rel="import" href="/tracing/core/test_utils.html"> | 8 <link rel="import" href="/tracing/core/test_utils.html"> |
9 <link rel="import" href="/tracing/model/event_set.html"> | 9 <link rel="import" href="/tracing/model/event_set.html"> |
10 <link rel="import" href="/tracing/model/slice.html"> | 10 <link rel="import" href="/tracing/model/slice.html"> |
11 <link rel="import" href="/tracing/ui/timeline_track_view.html"> | 11 <link rel="import" href="/tracing/ui/timeline_track_view.html"> |
12 <link rel="import" href="/tracing/ui/base/draw_helpers.html"> | 12 <link rel="import" href="/tracing/ui/base/draw_helpers.html"> |
13 <link rel="import" href="/tracing/ui/base/dom_helpers.html"> | 13 <link rel="import" href="/tracing/ui/base/dom_helpers.html"> |
14 | 14 |
15 <script> | 15 <script> |
16 'use strict'; | 16 'use strict'; |
17 | 17 |
18 tr.b.unittest.testSuite(function() { | 18 tr.b.unittest.testSuite(function() { |
19 var EventSet = tr.model.EventSet; | 19 var EventSet = tr.model.EventSet; |
20 var RectTrack = tr.ui.tracks.RectTrack; | 20 var RectTrack = tr.ui.tracks.RectTrack; |
21 var Rect = tr.ui.tracks.Rect; | 21 var Rect = tr.ui.tracks.Rect; |
22 var Slice = tr.model.Slice; | 22 var Slice = tr.model.Slice; |
23 var Viewport = tr.ui.TimelineViewport; | 23 var Viewport = tr.ui.TimelineViewport; |
24 | 24 |
25 test('instantiate_withRects', function() { | 25 test('instantiate_withRects', function() { |
26 var div = document.createElement('div'); | 26 var div = document.createElement('div'); |
27 | 27 |
28 var viewport = new Viewport(div); | 28 var viewport = new Viewport(div); |
29 var drawingContainer = new tr.ui.tracks.DrawingContainer(viewport); | 29 var drawingContainer = new tr.ui.tracks.DrawingContainer(viewport); |
30 div.appendChild(drawingContainer); | 30 Polymer.dom(div).appendChild(drawingContainer); |
31 | 31 |
32 var track = RectTrack(viewport); | 32 var track = RectTrack(viewport); |
33 drawingContainer.appendChild(track); | 33 Polymer.dom(drawingContainer).appendChild(track); |
34 | 34 |
35 this.addHTMLOutput(div); | 35 this.addHTMLOutput(div); |
36 drawingContainer.invalidate(); | 36 drawingContainer.invalidate(); |
37 | 37 |
38 track.heading = 'testBasicRects'; | 38 track.heading = 'testBasicRects'; |
39 track.rects = [ | 39 track.rects = [ |
40 new Rect(undefined, 'a', 0, 1, 1), | 40 new Rect(undefined, 'a', 0, 1, 1), |
41 new Rect(undefined, 'b', 1, 2.1, 4.8), | 41 new Rect(undefined, 'b', 1, 2.1, 4.8), |
42 new Rect(undefined, 'b', 1, 7, 0.5), | 42 new Rect(undefined, 'b', 1, 7, 0.5), |
43 new Rect(undefined, 'c', 2, 7.6, 0.4) | 43 new Rect(undefined, 'c', 2, 7.6, 0.4) |
44 ]; | 44 ]; |
45 | 45 |
46 var dt = new tr.ui.TimelineDisplayTransform(); | 46 var dt = new tr.ui.TimelineDisplayTransform(); |
47 dt.xSetWorldBounds(0, 8.8, track.clientWidth); | 47 dt.xSetWorldBounds(0, 8.8, track.clientWidth); |
48 track.viewport.setDisplayTransformImmediately(dt); | 48 track.viewport.setDisplayTransformImmediately(dt); |
49 }); | 49 }); |
50 | 50 |
51 test('instantiate_withSlices', function() { | 51 test('instantiate_withSlices', function() { |
52 var div = document.createElement('div'); | 52 var div = document.createElement('div'); |
53 | 53 |
54 var viewport = new Viewport(div); | 54 var viewport = new Viewport(div); |
55 var drawingContainer = new tr.ui.tracks.DrawingContainer(viewport); | 55 var drawingContainer = new tr.ui.tracks.DrawingContainer(viewport); |
56 div.appendChild(drawingContainer); | 56 Polymer.dom(div).appendChild(drawingContainer); |
57 | 57 |
58 var track = RectTrack(viewport); | 58 var track = RectTrack(viewport); |
59 drawingContainer.appendChild(track); | 59 Polymer.dom(drawingContainer).appendChild(track); |
60 | 60 |
61 this.addHTMLOutput(div); | 61 this.addHTMLOutput(div); |
62 drawingContainer.invalidate(); | 62 drawingContainer.invalidate(); |
63 | 63 |
64 track.heading = 'testBasicSlices'; | 64 track.heading = 'testBasicSlices'; |
65 track.rects = [ | 65 track.rects = [ |
66 new Slice('', 'a', 0, 1, {}, 1), | 66 new Slice('', 'a', 0, 1, {}, 1), |
67 new Slice('', 'b', 1, 2.1, {}, 4.8), | 67 new Slice('', 'b', 1, 2.1, {}, 4.8), |
68 new Slice('', 'b', 1, 7, {}, 0.5), | 68 new Slice('', 'b', 1, 7, {}, 0.5), |
69 new Slice('', 'c', 2, 7.6, {}, 0.4) | 69 new Slice('', 'c', 2, 7.6, {}, 0.4) |
70 ]; | 70 ]; |
71 | 71 |
72 var dt = new tr.ui.TimelineDisplayTransform(); | 72 var dt = new tr.ui.TimelineDisplayTransform(); |
73 dt.xSetWorldBounds(0, 8.8, track.clientWidth); | 73 dt.xSetWorldBounds(0, 8.8, track.clientWidth); |
74 track.viewport.setDisplayTransformImmediately(dt); | 74 track.viewport.setDisplayTransformImmediately(dt); |
75 }); | 75 }); |
76 | 76 |
77 test('instantiate_shrinkingRectSize', function() { | 77 test('instantiate_shrinkingRectSize', function() { |
78 var div = document.createElement('div'); | 78 var div = document.createElement('div'); |
79 | 79 |
80 var viewport = new Viewport(div); | 80 var viewport = new Viewport(div); |
81 var drawingContainer = new tr.ui.tracks.DrawingContainer(viewport); | 81 var drawingContainer = new tr.ui.tracks.DrawingContainer(viewport); |
82 div.appendChild(drawingContainer); | 82 Polymer.dom(div).appendChild(drawingContainer); |
83 | 83 |
84 var track = RectTrack(viewport); | 84 var track = RectTrack(viewport); |
85 drawingContainer.appendChild(track); | 85 Polymer.dom(drawingContainer).appendChild(track); |
86 | 86 |
87 this.addHTMLOutput(div); | 87 this.addHTMLOutput(div); |
88 drawingContainer.invalidate(); | 88 drawingContainer.invalidate(); |
89 | 89 |
90 track.heading = 'testShrinkingRectSizes'; | 90 track.heading = 'testShrinkingRectSizes'; |
91 var x = 0; | 91 var x = 0; |
92 var widths = [10, 5, 4, 3, 2, 1, 0.5, 0.4, 0.3, 0.2, 0.1, 0.05]; | 92 var widths = [10, 5, 4, 3, 2, 1, 0.5, 0.4, 0.3, 0.2, 0.1, 0.05]; |
93 var slices = []; | 93 var slices = []; |
94 for (var i = 0; i < widths.length; i++) { | 94 for (var i = 0; i < widths.length; i++) { |
95 var s = new Rect(undefined, 'a', 1, x, widths[i]); | 95 var s = new Rect(undefined, 'a', 1, x, widths[i]); |
(...skipping 11 matching lines...) Expand all Loading... |
107 { trackName: 'elideOn', elide: true }]; | 107 { trackName: 'elideOn', elide: true }]; |
108 | 108 |
109 var tooLongTitle = 'Unless eliding this SHOULD NOT BE DISPLAYED. '; | 109 var tooLongTitle = 'Unless eliding this SHOULD NOT BE DISPLAYED. '; |
110 var bigTitle = 'Very big title name that goes on longer ' + | 110 var bigTitle = 'Very big title name that goes on longer ' + |
111 'than you may expect'; | 111 'than you may expect'; |
112 | 112 |
113 for (var dictIndex in optDicts) { | 113 for (var dictIndex in optDicts) { |
114 var dict = optDicts[dictIndex]; | 114 var dict = optDicts[dictIndex]; |
115 | 115 |
116 var div = document.createElement('div'); | 116 var div = document.createElement('div'); |
117 div.appendChild(document.createTextNode(dict.trackName)); | 117 Polymer.dom(div).appendChild(document.createTextNode(dict.trackName)); |
118 | 118 |
119 var viewport = new Viewport(div); | 119 var viewport = new Viewport(div); |
120 var drawingContainer = new tr.ui.tracks.DrawingContainer(viewport); | 120 var drawingContainer = new tr.ui.tracks.DrawingContainer(viewport); |
121 div.appendChild(drawingContainer); | 121 Polymer.dom(div).appendChild(drawingContainer); |
122 | 122 |
123 var track = new RectTrack(viewport); | 123 var track = new RectTrack(viewport); |
124 drawingContainer.appendChild(track); | 124 Polymer.dom(drawingContainer).appendChild(track); |
125 | 125 |
126 this.addHTMLOutput(div); | 126 this.addHTMLOutput(div); |
127 drawingContainer.invalidate(); | 127 drawingContainer.invalidate(); |
128 | 128 |
129 track.SHOULD_ELIDE_TEXT = dict.elide; | 129 track.SHOULD_ELIDE_TEXT = dict.elide; |
130 track.heading = 'Visual: ' + dict.trackName; | 130 track.heading = 'Visual: ' + dict.trackName; |
131 track.rects = [ | 131 track.rects = [ |
132 // title, colorId, start, args, opt_duration | 132 // title, colorId, start, args, opt_duration |
133 new Rect(undefined, 'a ' + tooLongTitle + bigTitle, 0, 1, 1), | 133 new Rect(undefined, 'a ' + tooLongTitle + bigTitle, 0, 1, 1), |
134 new Rect(undefined, bigTitle, 1, 2.1, 4.8), | 134 new Rect(undefined, bigTitle, 1, 2.1, 4.8), |
(...skipping 18 matching lines...) Expand all Loading... |
153 track.addAllEventsMatchingFilterToSelection( | 153 track.addAllEventsMatchingFilterToSelection( |
154 new tr.c.TitleOrCategoryFilter('b'), selection); | 154 new tr.c.TitleOrCategoryFilter('b'), selection); |
155 | 155 |
156 assert.equal(2, selection.length); | 156 assert.equal(2, selection.length); |
157 assert.equal(track.rects[1].modelItem, selection[0]); | 157 assert.equal(track.rects[1].modelItem, selection[0]); |
158 assert.equal(track.rects[2].modelItem, selection[1]); | 158 assert.equal(track.rects[2].modelItem, selection[1]); |
159 }); | 159 }); |
160 | 160 |
161 test('selectionHitTesting', function() { | 161 test('selectionHitTesting', function() { |
162 var testEl = document.createElement('div'); | 162 var testEl = document.createElement('div'); |
163 testEl.appendChild(tr.ui.b.createScopedStyle('heading { width: 100px; }')); | 163 Polymer.dom(testEl).appendChild( |
| 164 tr.ui.b.createScopedStyle('heading { width: 100px; }')); |
164 testEl.style.width = '600px'; | 165 testEl.style.width = '600px'; |
165 | 166 |
166 var viewport = new Viewport(testEl); | 167 var viewport = new Viewport(testEl); |
167 var drawingContainer = new tr.ui.tracks.DrawingContainer(viewport); | 168 var drawingContainer = new tr.ui.tracks.DrawingContainer(viewport); |
168 testEl.appendChild(drawingContainer); | 169 Polymer.dom(testEl).appendChild(drawingContainer); |
169 | 170 |
170 var track = new RectTrack(viewport); | 171 var track = new RectTrack(viewport); |
171 drawingContainer.appendChild(track); | 172 Polymer.dom(drawingContainer).appendChild(track); |
172 this.addHTMLOutput(testEl); | 173 this.addHTMLOutput(testEl); |
173 | 174 |
174 drawingContainer.updateCanvasSizeIfNeeded_(); | 175 drawingContainer.updateCanvasSizeIfNeeded_(); |
175 | 176 |
176 track.heading = 'testSelectionHitTesting'; | 177 track.heading = 'testSelectionHitTesting'; |
177 track.rects = [ | 178 track.rects = [ |
178 new Slice('', 'a', 0, 1, {}, 1), | 179 new Slice('', 'a', 0, 1, {}, 1), |
179 new Slice('', 'b', 1, 5, {}, 4.8) | 180 new Slice('', 'b', 1, 5, {}, 4.8) |
180 ]; | 181 ]; |
181 var y = track.getBoundingClientRect().top + 5; | 182 var y = track.getBoundingClientRect().top + 5; |
(...skipping 28 matching lines...) Expand all Loading... |
210 track.addIntersectingEventsInRangeToSelection( | 211 track.addIntersectingEventsInRangeToSelection( |
211 x, x + 1, y, y + 1, selection); | 212 x, x + 1, y, y + 1, selection); |
212 assert.equal(0, selection.length); | 213 assert.equal(0, selection.length); |
213 }); | 214 }); |
214 | 215 |
215 test('elide', function() { | 216 test('elide', function() { |
216 var testEl = document.createElement('div'); | 217 var testEl = document.createElement('div'); |
217 | 218 |
218 var viewport = new Viewport(testEl); | 219 var viewport = new Viewport(testEl); |
219 var drawingContainer = new tr.ui.tracks.DrawingContainer(viewport); | 220 var drawingContainer = new tr.ui.tracks.DrawingContainer(viewport); |
220 testEl.appendChild(drawingContainer); | 221 Polymer.dom(testEl).appendChild(drawingContainer); |
221 | 222 |
222 var track = new RectTrack(viewport); | 223 var track = new RectTrack(viewport); |
223 drawingContainer.appendChild(track); | 224 Polymer.dom(drawingContainer).appendChild(track); |
224 this.addHTMLOutput(testEl); | 225 this.addHTMLOutput(testEl); |
225 | 226 |
226 drawingContainer.updateCanvasSizeIfNeeded_(); | 227 drawingContainer.updateCanvasSizeIfNeeded_(); |
227 | 228 |
228 var bigtitle = 'Super duper long long title ' + | 229 var bigtitle = 'Super duper long long title ' + |
229 'holy moly when did you get so verbose?'; | 230 'holy moly when did you get so verbose?'; |
230 var smalltitle = 'small'; | 231 var smalltitle = 'small'; |
231 track.heading = 'testElide'; | 232 track.heading = 'testElide'; |
232 track.rects = [ | 233 track.rects = [ |
233 // title, colorId, start, args, opt_duration | 234 // title, colorId, start, args, opt_duration |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
399 track.addClosestEventToSelection(8.5, 1, 0, 0, sel); | 400 track.addClosestEventToSelection(8.5, 1, 0, 0, sel); |
400 assert.equal(track.rects[3].modelItem, sel[0]); | 401 assert.equal(track.rects[3].modelItem, sel[0]); |
401 | 402 |
402 // After last slice with bad range. | 403 // After last slice with bad range. |
403 var sel = new EventSet(); | 404 var sel = new EventSet(); |
404 track.addClosestEventToSelection(10, 1, 0, 0, sel); | 405 track.addClosestEventToSelection(10, 1, 0, 0, sel); |
405 assert.equal(0, sel.length); | 406 assert.equal(0, sel.length); |
406 }); | 407 }); |
407 }); | 408 }); |
408 </script> | 409 </script> |
OLD | NEW |