Home | History | Annotate | Download | only in test
      1 <!DOCTYPE html>
      2 <!--
      3 @license
      4 Copyright (c) 2016 The Polymer Project Authors. All rights reserved.
      5 This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
      6 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
      7 The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
      8 Code distributed by Google as part of the polymer project is also
      9 subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
     10 -->
     11 <html>
     12 <head>
     13 <meta charset="utf-8">
     14 <meta http-equiv="x-ua-compatible" content="ie=edge,chrome=1">
     15 <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">
     16 
     17 <script src="../../webcomponentsjs/webcomponents-lite.js"></script>
     18 <script src="../../web-component-tester/browser.js"></script>
     19 <script src="../../test-fixture/test-fixture-mocha.js"></script>
     20 
     21 <link rel="import" href="../../test-fixture/test-fixture.html">
     22 <link rel="import" href="../../neon-animation/neon-animated-pages.html">
     23 <link rel="import" href="../../neon-animation/neon-animation-behavior.html">
     24 <link rel="import" href="../../iron-selector/iron-selector.html">
     25 
     26 </head>
     27 <body>
     28 
     29 <test-fixture id="descendant-selection">
     30   <template>
     31     <neon-animated-pages entry-animation="test-animation" animate-initial-selection>
     32       <iron-selector selected="0" id="selector">
     33         <div>1</div>
     34         <div id="target">2</div>
     35       </iron-selector>
     36     </neon-animated-pages>
     37   </template>
     38 </test-fixture>
     39 
     40 <test-fixture id="selecting-item">
     41   <template>
     42     <neon-animated-pages entry-animation="test-animation" animate-initial-selection>
     43       <x-selecting-element></x-selecting-element>
     44       <div id="target"></div>
     45     </neon-animated-pages>
     46   </template>
     47 </test-fixture>
     48 
     49 <dom-module id="x-selecting-element">
     50   <template>
     51     <iron-selector selected="0" id="selector">
     52       <div>1</div>
     53       <div id="target">2</div>
     54     </iron-selector>
     55   </template>
     56 </dom-module>
     57 
     58 <dom-module id="test-element">
     59   <template>
     60     <neon-animated-pages entry-animation="test-animation" animate-initial-selection>
     61       <content></content>
     62     </neon-animated-pages>
     63   </template>
     64 </dom-module>
     65 
     66 <script>
     67   HTMLImports.whenReady(function() {
     68     Polymer({ is: 'x-selecting-element' });
     69     Polymer({ is: 'test-element' });
     70     Polymer({
     71       is: 'test-animation',
     72       behaviors: [
     73         Polymer.NeonAnimationBehavior
     74       ],
     75       configure: function(config) {
     76         config.node.animated = true;
     77       }
     78     });
     79   });
     80 </script>
     81 
     82 <test-fixture id="distributed-children">
     83   <template>
     84     <test-element>
     85       <div>1</div>
     86       <div id="target">2</div>
     87     </test-element>
     88   </template>
     89 </test-fixture>
     90 
     91 <script>
     92 suite('descendant selection', function() {
     93   test('descendents of other selectors are not animated', function() {
     94     var animatedPages = fixture('descendant-selection');
     95     var selector = Polymer.dom(animatedPages).querySelector('#selector');
     96     var target = Polymer.dom(animatedPages).querySelector('#target');
     97     Polymer.dom(selector).setAttribute('selected', '1');
     98     assert(!target.animated);
     99   });
    100   test('elements distributed as children are animated', function() {
    101     var testElement = fixture('distributed-children');
    102     var target = Polymer.dom(testElement).querySelector('#target');
    103     var animatedPages = Polymer.dom(testElement.root).querySelector("neon-animated-pages");
    104     Polymer.dom(animatedPages).setAttribute('selected', '1');
    105     assert(target.animated);
    106   });
    107   test('ignores selection from shadow descendants of its items', function() {
    108     var pages = fixture('selecting-item');
    109     var target = Polymer.dom(pages).querySelector('#target');
    110     var selecting = Polymer.dom(pages).querySelector('x-selecting-element');
    111     selecting.$.selector.selected = 1;
    112     assert(!target.animated);
    113   });
    114 });
    115 </script>
    116 
    117 </body>
    118 </html>
    119