Blame view

bower_components/iron-list/test/basic.html 4.62 KB
73bcce88   luigser   COMPONENTS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  <!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>
73bcce88   luigser   COMPONENTS
19
  
e619a3b0   Luigi Serra   Controllet cross ...
20
21
    <link rel="import" href="helpers.html">
    <link rel="import" href="x-list.html">
73bcce88   luigser   COMPONENTS
22
23
24
25
26
  </head>
  <body>
  
    <test-fixture id="trivialList">
      <template>
e619a3b0   Luigi Serra   Controllet cross ...
27
        <x-list></x-list>
73bcce88   luigser   COMPONENTS
28
29
30
      </template>
    </test-fixture>
  
e619a3b0   Luigi Serra   Controllet cross ...
31
32
33
34
35
36
37
38
39
  <script>
  
    suite('basic features', function() {
      var list, container;
  
      setup(function() {
        container = fixture('trivialList');
        list = container.list;
      });
73bcce88   luigser   COMPONENTS
40
  
e619a3b0   Luigi Serra   Controllet cross ...
41
42
43
44
45
46
47
48
49
50
51
52
      test('defaults', function() {
        assert.equal(list.items, null);
        assert.equal(list.as, 'item');
        assert.equal(list.indexAs, 'index');
      });
  
      test('check items length', function(done) {
        container.data = buildDataSet(100);
  
        flush(function() {
          assert.equal(list.items.length, container.data.length);
          done();
73bcce88   luigser   COMPONENTS
53
        });
e619a3b0   Luigi Serra   Controllet cross ...
54
      });
73bcce88   luigser   COMPONENTS
55
  
e619a3b0   Luigi Serra   Controllet cross ...
56
57
      test('check physical item heights', function(done) {
        container.data = buildDataSet(100);
73bcce88   luigser   COMPONENTS
58
  
e619a3b0   Luigi Serra   Controllet cross ...
59
60
61
62
63
        flush(function() {
          var rowHeight = list._physicalItems[0].offsetHeight;
  
          list._physicalItems.forEach(function(item) {
            assert.equal(item.offsetHeight, rowHeight);
73bcce88   luigser   COMPONENTS
64
          });
e619a3b0   Luigi Serra   Controllet cross ...
65
66
  
          done();
73bcce88   luigser   COMPONENTS
67
        });
e619a3b0   Luigi Serra   Controllet cross ...
68
      });
73bcce88   luigser   COMPONENTS
69
  
e619a3b0   Luigi Serra   Controllet cross ...
70
71
72
      test('check physical item size', function(done) {
        var setSize = 10;
        container.data = buildDataSet(setSize);
73bcce88   luigser   COMPONENTS
73
  
e619a3b0   Luigi Serra   Controllet cross ...
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
        flush(function() {
          assert.equal(list.items.length, setSize);
          done();
        });
      });
  
      test('first visible index', function(done) {
        container.data = buildDataSet(100);
  
        flush(function() {
          var setSize = list.items.length;
          var rowHeight = list._physicalItems[0].offsetHeight;
          var viewportHeight = list.offsetHeight;
          var scrollToItem;
  
          function checkFirstVisible() {
            assert.equal(list.firstVisibleIndex, scrollToItem);
            assert.equal(getFirstItemFromList(list).textContent, scrollToItem);
          }
  
          function doneScrollDown() {
            checkFirstVisible();
  
            scrollToItem = 1;
73bcce88   luigser   COMPONENTS
98
  
e619a3b0   Luigi Serra   Controllet cross ...
99
100
101
102
103
104
            flush(function() {
              simulateScroll({
                list: list,
                contribution: rowHeight,
                target: scrollToItem*rowHeight
              }, doneScrollUp);
73bcce88   luigser   COMPONENTS
105
            });
e619a3b0   Luigi Serra   Controllet cross ...
106
          }
73bcce88   luigser   COMPONENTS
107
  
e619a3b0   Luigi Serra   Controllet cross ...
108
109
          function doneScrollUp() {
            checkFirstVisible();
73bcce88   luigser   COMPONENTS
110
            done();
e619a3b0   Luigi Serra   Controllet cross ...
111
          }
73bcce88   luigser   COMPONENTS
112
  
e619a3b0   Luigi Serra   Controllet cross ...
113
114
115
116
117
118
          scrollToItem = 50;
          simulateScroll({
            list: list,
            contribution: 50,
            target: scrollToItem*rowHeight
          }, doneScrollDown);
73bcce88   luigser   COMPONENTS
119
  
73bcce88   luigser   COMPONENTS
120
        });
e619a3b0   Luigi Serra   Controllet cross ...
121
      });
73bcce88   luigser   COMPONENTS
122
  
e619a3b0   Luigi Serra   Controllet cross ...
123
124
      test('scroll to index', function(done) {
        list.items = buildDataSet(100);
73bcce88   luigser   COMPONENTS
125
  
e619a3b0   Luigi Serra   Controllet cross ...
126
127
128
        flush(function() {
          list.scrollToIndex(30);
          assert.equal(list.firstVisibleIndex, 30);
73bcce88   luigser   COMPONENTS
129
  
e619a3b0   Luigi Serra   Controllet cross ...
130
131
          list.scrollToIndex(0);
          assert.equal(list.firstVisibleIndex, 0);
73bcce88   luigser   COMPONENTS
132
  
e619a3b0   Luigi Serra   Controllet cross ...
133
134
135
          var rowHeight = getFirstItemFromList(list).offsetHeight;
          var viewportHeight = list.offsetHeight;
          var itemsPerViewport = Math.floor(viewportHeight/rowHeight);
73bcce88   luigser   COMPONENTS
136
  
e619a3b0   Luigi Serra   Controllet cross ...
137
138
          list.scrollToIndex(99);
          assert.equal(list.firstVisibleIndex, list.items.length - itemsPerViewport);
73bcce88   luigser   COMPONENTS
139
  
e619a3b0   Luigi Serra   Controllet cross ...
140
141
142
          // make the height of the viewport same as the height of the row
          // and scroll to the last item
          list.style.height = list._physicalItems[0].offsetHeight + 'px';
73bcce88   luigser   COMPONENTS
143
  
e619a3b0   Luigi Serra   Controllet cross ...
144
145
146
147
148
          setTimeout(function() {
            list.scrollToIndex(99);
            assert.equal(list.firstVisibleIndex, 99);
            done();
          }, 100);
73bcce88   luigser   COMPONENTS
149
  
e619a3b0   Luigi Serra   Controllet cross ...
150
151
        });
      });
73bcce88   luigser   COMPONENTS
152
  
e619a3b0   Luigi Serra   Controllet cross ...
153
154
      test('reset items', function(done) {
        list.items = buildDataSet(100);
73bcce88   luigser   COMPONENTS
155
  
e619a3b0   Luigi Serra   Controllet cross ...
156
157
158
        flush(function() {
          var firstItem = getFirstItemFromList(list);
          assert.equal(firstItem.textContent, '0');
73bcce88   luigser   COMPONENTS
159
  
e619a3b0   Luigi Serra   Controllet cross ...
160
161
162
163
164
          list.items = null;
  
          flush(function() {
            assert.notEqual(getFirstItemFromList(list), firstItem);
            list.items = buildDataSet(100);
73bcce88   luigser   COMPONENTS
165
  
e619a3b0   Luigi Serra   Controllet cross ...
166
167
168
169
            flush(function() {
              assert.equal(getFirstItemFromList(list), firstItem);
              done();
            });
73bcce88   luigser   COMPONENTS
170
171
172
          });
        });
      });
e619a3b0   Luigi Serra   Controllet cross ...
173
174
175
  
    });
  </script>
73bcce88   luigser   COMPONENTS
176
177
178
  
  </body>
  </html>