| Index: lib/src/iron-list/test/dynamic-item-size.html
 | 
| diff --git a/lib/src/iron-list/test/dynamic-item-size.html b/lib/src/iron-list/test/dynamic-item-size.html
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..d7b431ca660e100230ea8f4c226444c5ce00a74a
 | 
| --- /dev/null
 | 
| +++ b/lib/src/iron-list/test/dynamic-item-size.html
 | 
| @@ -0,0 +1,124 @@
 | 
| +<!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
 | 
| +The complete set of authors may be found at http://polymer.github.io/AUTHORS
 | 
| +The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS
 | 
| +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
 | 
| +-->
 | 
| +<html>
 | 
| +<head>
 | 
| +  <meta charset="UTF-8">
 | 
| +  <title>iron-list test</title>
 | 
| +  <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>
 | 
| +  <script src="../../test-fixture/test-fixture-mocha.js"></script>
 | 
| +  <script src="../../iron-test-helpers/mock-interactions.js"></script>
 | 
| +
 | 
| +  <link rel="import" href="../../test-fixture/test-fixture.html">
 | 
| +  <link rel="import" href="../../paper-styles/paper-styles.html">
 | 
| +  <link rel="import" href="helpers.html">
 | 
| +  <link rel="import" href="x-list.html">
 | 
| +
 | 
| +</head>
 | 
| +<body>
 | 
| +
 | 
| +  <test-fixture id="trivialList">
 | 
| +    <template>
 | 
| +      <x-list item-height="0" pre></x-list>
 | 
| +    </template>
 | 
| +  </test-fixture>
 | 
| +
 | 
| +  <script>
 | 
| +
 | 
| +    suite('Dynamic item size', function() {
 | 
| +      var list, container;
 | 
| +
 | 
| +      setup(function() {
 | 
| +        container = fixture('trivialList');
 | 
| +        list = container.list;
 | 
| +      });
 | 
| +
 | 
| +      test('update size using item index', function(done) {
 | 
| +        list.items = buildDataSet(100);
 | 
| +
 | 
| +        flush(function() {
 | 
| +          var firstItem = getFirstItemFromList(list);
 | 
| +          var initHeight = firstItem.offsetHeight;
 | 
| +
 | 
| +          list.set('items.0.index', '1\n2\n3\n4');
 | 
| +          list.updateSizeForItem(0);
 | 
| +          assert.isAbove(firstItem.offsetHeight, initHeight*3);
 | 
| +
 | 
| +          list.set('items.0.index', '1');
 | 
| +          list.updateSizeForItem(0);
 | 
| +          assert.equal(firstItem.offsetHeight, initHeight);
 | 
| +
 | 
| +          done();
 | 
| +        });
 | 
| +      });
 | 
| +
 | 
| +      test('update size using item object', function(done) {
 | 
| +        list.items = buildDataSet(100);
 | 
| +
 | 
| +        flush(function() {
 | 
| +          var firstItem = getFirstItemFromList(list);
 | 
| +          var initHeight = firstItem.offsetHeight;
 | 
| +
 | 
| +          list.set('items.0.index', '1\n2\n3\n4');
 | 
| +          list.updateSizeForItem(list.items[0]);
 | 
| +          assert.isAbove(firstItem.offsetHeight, initHeight*3);
 | 
| +
 | 
| +          list.set('items.0.index', '1');
 | 
| +          list.updateSizeForItem(list.items[0]);
 | 
| +          assert.equal(firstItem.offsetHeight, initHeight);
 | 
| +
 | 
| +          done();
 | 
| +        });
 | 
| +      });
 | 
| +
 | 
| +      test('ignore items that are not rendered', function(done) {
 | 
| +        list.items = buildDataSet(100);
 | 
| +
 | 
| +        flush(function() {
 | 
| +          list.updateSizeForItem(list.items[list._physicalCount + 1]);
 | 
| +          done();
 | 
| +        });
 | 
| +      });
 | 
| +
 | 
| +
 | 
| +      test('throw if the item is invalid', function(done) {
 | 
| +        list.items = buildDataSet(100);
 | 
| +
 | 
| +        flush(function() {
 | 
| +          var firstItem = getFirstItemFromList(list);
 | 
| +          var initHeight = firstItem.offsetHeight;
 | 
| +          var throws = 0;
 | 
| +
 | 
| +          try {
 | 
| +            list.updateSizeForItem(100);
 | 
| +          } catch (error) {
 | 
| +            throws++;
 | 
| +          }
 | 
| +
 | 
| +          try {
 | 
| +            list.updateSizeForItem({});
 | 
| +          } catch (error) {
 | 
| +            throws++;
 | 
| +          }
 | 
| +
 | 
| +          assert.equal(throws, 2);
 | 
| +          done();
 | 
| +        });
 | 
| +      });
 | 
| +
 | 
| +    });
 | 
| +
 | 
| +  </script>
 | 
| +
 | 
| +</body>
 | 
| +</html>
 | 
| 
 |