| <!DOCTYPE html> |
| <!-- |
| Copyright (c) 2015 The Chromium Authors. All rights reserved. |
| Use of this source code is governed by a BSD-style license that can be |
| found in the LICENSE file. |
| --> |
| |
| <link rel="import" href="/core/test_utils.html"> |
| <link rel="import" href="/core/trace_model/event.html"> |
| <link rel="import" href="/core/trace_model/selectable_item.html"> |
| <link rel="import" href="/core/trace_model/selection_state.html"> |
| |
| <script> |
| 'use strict'; |
| |
| tv.b.unittest.testSuite(function() { |
| var SelectableItem = tv.c.trace_model.SelectableItem; |
| var SelectionState = tv.c.trace_model.SelectionState; |
| var Event = tv.c.trace_model.Event; |
| |
| function buildEventToTrackMap() { |
| var eventToTrackMap = { |
| map: {}, |
| addEvent: function(event, track) { |
| this.map[event.guid] = track; |
| } |
| }; |
| return eventToTrackMap; |
| }; |
| |
| test('checkModelItem', function() { |
| var selectableItem1 = new SelectableItem(undefined); |
| assert.isUndefined(selectableItem1.modelItem); |
| |
| var event = new Event(); |
| var selectableItem2 = new SelectableItem(event); |
| assert.equal(selectableItem2.modelItem, event); |
| }); |
| |
| test('checkSelected', function() { |
| var selectableItem = new SelectableItem(undefined); |
| |
| selectableItem.selectionState = SelectionState.NONE; |
| assert.isFalse(selectableItem.selected); |
| |
| selectableItem.selectionState = SelectionState.SELECTED; |
| assert.isTrue(selectableItem.selected); |
| |
| selectableItem.selectionState = SelectionState.HIGHLIGHTED; |
| assert.isFalse(selectableItem.selected); |
| }); |
| |
| test('checkAddToSelection_undefinedModelItem', function() { |
| var selectableItem = new SelectableItem(undefined); |
| var selection = []; |
| selectableItem.addToSelection(selection); |
| assert.lengthOf(selection, 0); |
| }); |
| |
| test('checkAddToSelection_definedModelItem', function() { |
| var event = new Event(); |
| var selectableItem = new SelectableItem(event); |
| var selection = []; |
| selectableItem.addToSelection(selection); |
| assert.lengthOf(selection, 1); |
| assert.equal(selection[0], event); |
| }); |
| |
| test('checkAddToTrackMap_undefinedModelItem', function() { |
| var selectableItem = new SelectableItem(undefined); |
| var eventToTrackMap = buildEventToTrackMap(); |
| var track = {}; |
| selectableItem.addToTrackMap(eventToTrackMap, track); |
| assert.lengthOf(Object.keys(eventToTrackMap.map), 0); |
| }); |
| |
| test('checkAddToTrackMap_definedModelItem', function() { |
| var event = new Event(); |
| var selectableItem = new SelectableItem(event); |
| var eventToTrackMap = buildEventToTrackMap(); |
| var track = {}; |
| selectableItem.addToTrackMap(eventToTrackMap, track); |
| assert.lengthOf(Object.keys(eventToTrackMap.map), 1); |
| assert.equal(eventToTrackMap.map[event.guid], track); |
| }); |
| }); |
| </script> |
| |