| <!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.txt |
| The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
| The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt |
| 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.txt |
| --> |
| <html> |
| <head> |
| |
| <title>neon-animated-pages tests</title> |
| |
| <meta charset="utf-8"> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes"> |
| |
| <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"> |
| <link rel="import" href="../neon-animated-pages.html"> |
| <link rel="import" href="../neon-animatable.html"> |
| <link rel="import" href="../animations/slide-from-left-animation.html"> |
| <link rel="import" href="../animations/slide-right-animation.html"> |
| <link rel="import" href="test-resizable-pages.html"> |
| |
| </head> |
| <body> |
| |
| <test-fixture id="basic"> |
| <template> |
| <neon-animated-pages> |
| </neon-animated-pages> |
| </template> |
| </test-fixture> |
| |
| <test-fixture id="notify-resize"> |
| <template> |
| <neon-animated-pages> |
| <a-resizable-page></a-resizable-page> |
| <b-resizable-page></b-resizable-page> |
| <c-resizable-page></c-resizable-page> |
| </neon-animated-pages> |
| </template> |
| </test-fixture> |
| |
| <test-fixture id="animate-initial-selection"> |
| <template> |
| <neon-animated-pages entry-animation="slide-from-left-animation" exit-animation="slide-right-animation" animate-initial-selection> |
| <neon-animatable></neon-animatable> |
| <neon-animatable></neon-animatable> |
| </neon-animated-pages> |
| </template> |
| </test-fixture> |
| |
| <script> |
| suite('basic', function() { |
| }); |
| suite('notify-resize', function() { |
| test('only a destination page recieves a resize event', function(done) { |
| var animatedPages = fixture('notify-resize'); |
| var resizables = Polymer.dom(animatedPages).children; |
| var recieves = {}; |
| resizables.forEach(function(page) { |
| page.addEventListener('iron-resize', function(event) { |
| var pageName = event.currentTarget.tagName; |
| recieves[pageName] = pageName in recieves ? recieves[pageName] + 1 : 1; |
| }); |
| }); |
| animatedPages.selected = 2; |
| setTimeout(function() { |
| assert.deepEqual(recieves, { |
| 'C-RESIZABLE-PAGE': 1 |
| }); |
| done(); |
| }, 50); |
| }); |
| }); |
| suite('animate-initial-selection', function() { |
| test('\'neon-animation-finish\' event fired after animating initial selection', function(done) { |
| var animatedPages = fixture('animate-initial-selection'); |
| assert.isUndefined(animatedPages.selected); |
| var pages = Polymer.dom(animatedPages).children; |
| animatedPages.addEventListener('neon-animation-finish', function(event) { |
| assert.strictEqual(animatedPages.selected, 0); |
| assert.isFalse(event.detail.fromPage); |
| assert.deepEqual(event.detail.toPage, pages[0]); |
| done(); |
| }); |
| animatedPages.selected = 0; |
| }); |
| }); |
| </script> |
| |
| </body> |
| </html> |