| 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 |