Blame view

bower_components/iron-list/test/basic.html 5.27 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
      test('defaults', function() {
a53fbbed   Renato De Donato   select-dataset ne...
42
43
44
45
46
47
48
        assert.equal(list.items, null, 'items');
        assert.equal(list.as, 'item', 'as');
        assert.equal(list.indexAs, 'index', 'indexAs');
        assert.equal(list.selectedAs, 'selected', 'selectedAs');
        assert.equal(list.scrollTarget, list, 'scrollTarget');
        assert.isFalse(list.selectionEnabled, 'selectionEnabled');
        assert.isFalse(list.multiSelection, 'multiSelection');
e619a3b0   Luigi Serra   Controllet cross ...
49
50
51
52
53
54
55
56
      });
  
      test('check items length', function(done) {
        container.data = buildDataSet(100);
  
        flush(function() {
          assert.equal(list.items.length, container.data.length);
          done();
73bcce88   luigser   COMPONENTS
57
        });
e619a3b0   Luigi Serra   Controllet cross ...
58
      });
73bcce88   luigser   COMPONENTS
59
  
e619a3b0   Luigi Serra   Controllet cross ...
60
61
      test('check physical item heights', function(done) {
        container.data = buildDataSet(100);
73bcce88   luigser   COMPONENTS
62
  
e619a3b0   Luigi Serra   Controllet cross ...
63
64
65
66
67
        flush(function() {
          var rowHeight = list._physicalItems[0].offsetHeight;
  
          list._physicalItems.forEach(function(item) {
            assert.equal(item.offsetHeight, rowHeight);
73bcce88   luigser   COMPONENTS
68
          });
e619a3b0   Luigi Serra   Controllet cross ...
69
70
  
          done();
73bcce88   luigser   COMPONENTS
71
        });
e619a3b0   Luigi Serra   Controllet cross ...
72
      });
73bcce88   luigser   COMPONENTS
73
  
e619a3b0   Luigi Serra   Controllet cross ...
74
75
76
      test('check physical item size', function(done) {
        var setSize = 10;
        container.data = buildDataSet(setSize);
73bcce88   luigser   COMPONENTS
77
  
e619a3b0   Luigi Serra   Controllet cross ...
78
79
80
81
82
83
84
85
86
87
88
        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;
a53fbbed   Renato De Donato   select-dataset ne...
89
          var rowHeight = container.itemHeight;
e619a3b0   Luigi Serra   Controllet cross ...
90
91
92
93
94
95
96
97
          var viewportHeight = list.offsetHeight;
          var scrollToItem;
  
          function checkFirstVisible() {
            assert.equal(list.firstVisibleIndex, scrollToItem);
            assert.equal(getFirstItemFromList(list).textContent, scrollToItem);
          }
  
a53fbbed   Renato De Donato   select-dataset ne...
98
99
100
101
102
103
          function checkLastVisible() {
            var visibleItemsCount = Math.floor(viewportHeight / rowHeight);
            assert.equal(list.lastVisibleIndex, scrollToItem + visibleItemsCount - 1);
            assert.equal(getLastItemFromList(list).textContent, scrollToItem + visibleItemsCount - 1);
          }
  
e619a3b0   Luigi Serra   Controllet cross ...
104
105
          function doneScrollDown() {
            checkFirstVisible();
a53fbbed   Renato De Donato   select-dataset ne...
106
            checkLastVisible();
e619a3b0   Luigi Serra   Controllet cross ...
107
            scrollToItem = 1;
e619a3b0   Luigi Serra   Controllet cross ...
108
109
110
111
            flush(function() {
              simulateScroll({
                list: list,
                contribution: rowHeight,
a53fbbed   Renato De Donato   select-dataset ne...
112
113
114
                target: scrollToItem*rowHeight,
                onScrollEnd: doneScrollUp
              });
73bcce88   luigser   COMPONENTS
115
            });
e619a3b0   Luigi Serra   Controllet cross ...
116
          }
73bcce88   luigser   COMPONENTS
117
  
e619a3b0   Luigi Serra   Controllet cross ...
118
119
          function doneScrollUp() {
            checkFirstVisible();
a53fbbed   Renato De Donato   select-dataset ne...
120
            checkLastVisible();
73bcce88   luigser   COMPONENTS
121
            done();
e619a3b0   Luigi Serra   Controllet cross ...
122
          }
e619a3b0   Luigi Serra   Controllet cross ...
123
          scrollToItem = 50;
a53fbbed   Renato De Donato   select-dataset ne...
124
  
e619a3b0   Luigi Serra   Controllet cross ...
125
126
127
          simulateScroll({
            list: list,
            contribution: 50,
a53fbbed   Renato De Donato   select-dataset ne...
128
129
130
            target: scrollToItem*rowHeight,
            onScrollEnd: doneScrollDown
          });
73bcce88   luigser   COMPONENTS
131
  
73bcce88   luigser   COMPONENTS
132
        });
e619a3b0   Luigi Serra   Controllet cross ...
133
      });
73bcce88   luigser   COMPONENTS
134
  
e619a3b0   Luigi Serra   Controllet cross ...
135
136
      test('scroll to index', function(done) {
        list.items = buildDataSet(100);
73bcce88   luigser   COMPONENTS
137
  
a53fbbed   Renato De Donato   select-dataset ne...
138
        setTimeout(function() {
e619a3b0   Luigi Serra   Controllet cross ...
139
140
          list.scrollToIndex(30);
          assert.equal(list.firstVisibleIndex, 30);
73bcce88   luigser   COMPONENTS
141
  
e619a3b0   Luigi Serra   Controllet cross ...
142
143
          list.scrollToIndex(0);
          assert.equal(list.firstVisibleIndex, 0);
73bcce88   luigser   COMPONENTS
144
  
e619a3b0   Luigi Serra   Controllet cross ...
145
146
147
          var rowHeight = getFirstItemFromList(list).offsetHeight;
          var viewportHeight = list.offsetHeight;
          var itemsPerViewport = Math.floor(viewportHeight/rowHeight);
73bcce88   luigser   COMPONENTS
148
  
e619a3b0   Luigi Serra   Controllet cross ...
149
150
          list.scrollToIndex(99);
          assert.equal(list.firstVisibleIndex, list.items.length - itemsPerViewport);
73bcce88   luigser   COMPONENTS
151
  
e619a3b0   Luigi Serra   Controllet cross ...
152
153
154
          // 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
155
  
e619a3b0   Luigi Serra   Controllet cross ...
156
157
158
159
160
          setTimeout(function() {
            list.scrollToIndex(99);
            assert.equal(list.firstVisibleIndex, 99);
            done();
          }, 100);
a53fbbed   Renato De Donato   select-dataset ne...
161
        }, 100);
e619a3b0   Luigi Serra   Controllet cross ...
162
      });
73bcce88   luigser   COMPONENTS
163
  
e619a3b0   Luigi Serra   Controllet cross ...
164
165
      test('reset items', function(done) {
        list.items = buildDataSet(100);
73bcce88   luigser   COMPONENTS
166
  
e619a3b0   Luigi Serra   Controllet cross ...
167
        flush(function() {
a53fbbed   Renato De Donato   select-dataset ne...
168
          assert.equal(getFirstItemFromList(list).textContent, '0');
73bcce88   luigser   COMPONENTS
169
  
e619a3b0   Luigi Serra   Controllet cross ...
170
171
172
          list.items = null;
  
          flush(function() {
a53fbbed   Renato De Donato   select-dataset ne...
173
            assert.notEqual(getFirstItemFromList(list).textContent, '0');
e619a3b0   Luigi Serra   Controllet cross ...
174
            list.items = buildDataSet(100);
73bcce88   luigser   COMPONENTS
175
  
e619a3b0   Luigi Serra   Controllet cross ...
176
            flush(function() {
a53fbbed   Renato De Donato   select-dataset ne...
177
              assert.equal(getFirstItemFromList(list).textContent, '0');
e619a3b0   Luigi Serra   Controllet cross ...
178
179
              done();
            });
73bcce88   luigser   COMPONENTS
180
181
182
          });
        });
      });
e619a3b0   Luigi Serra   Controllet cross ...
183
184
185
  
    });
  </script>
73bcce88   luigser   COMPONENTS
186
187
188
  
  </body>
  </html>