diff options
Diffstat (limited to 'catapult/third_party/polymer/components/iron-selector/test/template-repeat.html')
-rw-r--r-- | catapult/third_party/polymer/components/iron-selector/test/template-repeat.html | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/catapult/third_party/polymer/components/iron-selector/test/template-repeat.html b/catapult/third_party/polymer/components/iron-selector/test/template-repeat.html new file mode 100644 index 00000000..b1ab6a6f --- /dev/null +++ b/catapult/third_party/polymer/components/iron-selector/test/template-repeat.html @@ -0,0 +1,104 @@ +<!doctype html> +<!-- +@license +Copyright (c) 2015 The Polymer Project Authors. All rights reserved. +This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt +The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt +The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt +Code distributed by Google as part of the polymer project is also +subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt +--> + +<html> +<head> + + <title>iron-selector-template-repeat</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"> + + <script src="../../webcomponentsjs/webcomponents-lite.js"></script> + <script src="../../web-component-tester/browser.js"></script> + + <link rel="import" href="../iron-selector.html"> + + <style> + .iron-selected { + background: #ccc; + } + </style> + +</head> +<body> + + <template is="dom-bind"> + <iron-selector id="selector" selected="1"> + <template id="t" is="dom-repeat"> + <div id$="[[item.name]]">{{item.name}}</div> + </template> + </iron-selector> + </template> + + <script> + + suite('dom-repeat', function() { + + var scope, s, t; + + setup(function() { + scope = document.querySelector('template[is="dom-bind"]'); + s = scope.$.selector; + t = scope.$.t; + t.items = [{name:'item0'}, {name: 'item1'}, {name: 'item2'}, {name: 'item3'}]; + }); + + teardown(function() { + t.items = []; + }); + + test('supports repeated items', function() { + t.render(); + // check items + assert.equal(s.items.length, 4); + // check selected + assert.equal(s.selected, 1); + // check selected item + var item = s.selectedItem; + assert.equal(s.items[1], item); + // check selected class + assert.isTrue(item.classList.contains('iron-selected')); + }); + + test('update items', function() { + t.render(); + // check items + assert.equal(s.items.length, 4); + // check selected + assert.equal(s.selected, 1); + // update items + t.items = [{name:'foo'}, {name: 'bar'}]; + t.render(); + // check items + assert.equal(s.items.length, 2); + // check selected (should still honor the selected) + assert.equal(s.selected, 1); + // check selected class + assert.isTrue(s.querySelector('#bar').classList.contains('iron-selected')); + }); + + test('set selected to something else', function() { + t.render(); + // set selected to something else + s.selected = 3; + // check selected item + var item = s.selectedItem; + assert.equal(s.items[3], item); + // check selected class + assert.isTrue(item.classList.contains('iron-selected')); + }); + + }); + + </script> + +</body> +</html> |