blob: 6cebe56bb4f074dec02c0ef185ef83a53473fed4 [file] [log] [blame]
<!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';
tr.b.unittest.testSuite(function() {
var ListView = tr.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>