Blame view

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