• 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<html>
12<head>
13
14  <title>neon-animated-pages tests</title>
15
16  <meta charset="utf-8">
17  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
18    <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">
19
20  <script src="../../webcomponentsjs/webcomponents-lite.js"></script>
21
22  <script src="../../web-component-tester/browser.js"></script>
23  <script src="../../test-fixture/test-fixture-mocha.js"></script>
24
25  <link rel="import" href="../../test-fixture/test-fixture.html">
26  <link rel="import" href="../neon-animated-pages.html">
27  <link rel="import" href="../neon-animatable.html">
28  <link rel="import" href="../animations/slide-from-left-animation.html">
29  <link rel="import" href="../animations/slide-right-animation.html">
30  <link rel="import" href="test-resizable-pages.html">
31
32</head>
33<body>
34
35  <test-fixture id="basic">
36    <template>
37      <neon-animated-pages>
38      </neon-animated-pages>
39    </template>
40  </test-fixture>
41
42  <test-fixture id="notify-resize">
43    <template>
44      <neon-animated-pages>
45        <a-resizable-page></a-resizable-page>
46        <b-resizable-page></b-resizable-page>
47        <c-resizable-page></c-resizable-page>
48      </neon-animated-pages>
49    </template>
50  </test-fixture>
51
52  <test-fixture id="animate-initial-selection">
53    <template>
54      <neon-animated-pages entry-animation="slide-from-left-animation" exit-animation="slide-right-animation" animate-initial-selection>
55        <neon-animatable></neon-animatable>
56        <neon-animatable></neon-animatable>
57      </neon-animated-pages>
58    </template>
59  </test-fixture>
60
61  <script>
62    suite('basic', function() {
63    });
64    suite('notify-resize', function() {
65      test('only a destination page recieves a resize event', function(done) {
66        var animatedPages = fixture('notify-resize');
67        var resizables = Polymer.dom(animatedPages).children;
68        var recieves = {};
69        resizables.forEach(function(page) {
70          page.addEventListener('iron-resize', function(event) {
71            var pageName = event.currentTarget.tagName;
72            recieves[pageName] = pageName in recieves ? recieves[pageName] + 1 : 1;
73          });
74        });
75        animatedPages.selected = 2;
76        setTimeout(function() {
77          assert.deepEqual(recieves, {
78            'C-RESIZABLE-PAGE': 1
79          });
80          done();
81        }, 50);
82      });
83    });
84    suite('animate-initial-selection', function() {
85      test('\'neon-animation-finish\' event fired after animating initial selection', function(done) {
86        var animatedPages = fixture('animate-initial-selection');
87        assert.isUndefined(animatedPages.selected);
88        var pages = Polymer.dom(animatedPages).children;
89        animatedPages.addEventListener('neon-animation-finish', function(event) {
90          assert.strictEqual(animatedPages.selected, 0);
91          assert.isFalse(event.detail.fromPage);
92          assert.deepEqual(event.detail.toPage, pages[0]);
93          done();
94        });
95        animatedPages.selected = 0;
96      });
97    });
98  </script>
99
100</body>
101</html>
102