• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!doctype html>
2<!--
3@license
4Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
5This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
6The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
7The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
8Code distributed by Google as part of the polymer project is also
9subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
10-->
11
12<html>
13  <head>
14    <title>iron-collapse-horizontal</title>
15    <meta charset="utf-8">
16    <meta name="viewport" content="width=device-width, initial-scale=1.0">
17
18    <script src="../../webcomponentsjs/webcomponents-lite.js"></script>
19    <script src="../../web-component-tester/browser.js"></script>
20    <script src="../../test-fixture/test-fixture-mocha.js"></script>
21
22    <link rel="import" href="../../test-fixture/test-fixture.html">
23    <link rel="import" href="../iron-collapse.html">
24  </head>
25  <body>
26
27    <test-fixture id="test">
28      <template>
29        <iron-collapse id="collapse" opened horizontal>
30          <div style="width:100px;">
31            Lorem ipsum
32          </div>
33        </iron-collapse>
34      </template>
35    </test-fixture>
36
37    <script>
38
39      suite('horizontal', function() {
40
41        var collapse;
42        var collapseWidth;
43
44        setup(function () {
45          collapse = fixture('test');
46          collapseWidth = getComputedStyle(collapse).width;
47        });
48
49        test('opened attribute', function() {
50          assert.equal(collapse.opened, true);
51        });
52
53        test('horizontal attribute', function() {
54          assert.equal(collapse.horizontal, true);
55        });
56
57        test('default opened width', function() {
58          assert.equal(collapse.style.width, '');
59        });
60
61        test('set opened to false, then to true', function(done) {
62          // This listener will be triggered twice (every time `opened` changes).
63          collapse.addEventListener('transitionend', function() {
64            if (collapse.opened) {
65              // Check finalSize after animation is done.
66              assert.equal(collapse.style.width, '');
67              done();
68            } else {
69              // Check if size is still 0px.
70              assert.equal(collapse.style.maxWidth, '0px');
71              // Trigger 2nd toggle.
72              collapse.opened = true;
73              // Size should be immediately set.
74              assert.equal(collapse.style.maxWidth, collapseWidth);
75            }
76          });
77          // Trigger 1st toggle.
78          collapse.opened = false;
79          // Size should be immediately set.
80          assert.equal(collapse.style.maxWidth, '0px');
81        });
82
83        test('change size with updateSize', function(done) {
84          collapse.addEventListener('transitionend', function() {
85            // size should be kept after transition
86            assert.equal(collapse.style.maxWidth, "123px");
87            done();
88          });
89          collapse.updateSize("123px", true);
90        });
91
92      });
93
94    </script>
95
96  </body>
97</html>
98