| <!DOCTYPE html> |
| <!-- |
| Copyright (c) 2014 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="/base/ui/list_view.html"> |
| <script> |
| 'use strict'; |
| |
| tv.b.unittest.testSuite(function() { |
| var ListView = tv.b.ui.ListView; |
| |
| test('instantiate', function() { |
| var view = new ListView(); |
| var i1 = view.addItem('item 1'); |
| var i2 = view.addItem('item 2'); |
| var i3 = view.addItem('item 3'); |
| this.addHTMLOutput(view); |
| }); |
| |
| test('programmaticSelection', function() { |
| var view = new ListView(); |
| var i1 = view.addItem('item 1'); |
| var i2 = view.addItem('item 2'); |
| var i3 = view.addItem('item 3'); |
| |
| i2.selected = true; |
| assert.isTrue(i2.hasAttribute('selected')); |
| i3.selected = true; |
| assert.isFalse(i2.hasAttribute('selected')); |
| assert.isTrue(i3.hasAttribute('selected')); |
| }); |
| |
| test('clickSelection', function() { |
| var view = new ListView(); |
| var didFireSelectionChange = false; |
| view.addEventListener('selection-changed', function() { |
| didFireSelectionChange = true; |
| }); |
| var i1 = view.addItem('item 1'); |
| var i2 = view.addItem('item 2'); |
| var i3 = view.addItem('item 3'); |
| |
| didFireSelectionChange = false; |
| i2.click(); |
| assert.isTrue(didFireSelectionChange); |
| assert.equal(view.selectedElement, i2); |
| |
| didFireSelectionChange = false; |
| i3.click(); |
| assert.isTrue(didFireSelectionChange); |
| assert.equal(view.selectedElement, i3); |
| |
| // Click the same target again. |
| didFireSelectionChange = false; |
| i3.click(); |
| assert.isTrue(didFireSelectionChange); |
| assert.isUndefined(view.selectedElement); |
| |
| didFireSelectionChange = false; |
| i1.click(); |
| assert.isTrue(didFireSelectionChange); |
| assert.equal(view.selectedElement, i1); |
| }); |
| }); |
| </script> |