Home | History | Annotate | Download | only in test
      1 <!doctype html>
      2 <!--
      3 @license
      4 Copyright (c) 2015 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   <title>paper-button basic tests</title>
     15   <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
     16 
     17   <script src="../../webcomponentsjs/webcomponents-lite.js"></script>
     18   <script src="../../web-component-tester/browser.js"></script>
     19   <script src="../../iron-test-helpers/mock-interactions.js"></script>
     20 
     21   <link rel="import" href="../paper-button.html">
     22 
     23 </head>
     24 <body>
     25 
     26   <test-fixture id="TrivialButton">
     27     <template>
     28       <paper-button>Button</paper-button>
     29     </template>
     30   </test-fixture>
     31 
     32   <script>
     33     suite('<paper-button>', function() {
     34       var button;
     35 
     36       setup(function() {
     37         button = fixture('TrivialButton');
     38       });
     39 
     40       test('can be raised imperatively', function(done) {
     41         button.raised = true;
     42 
     43         expect(button.hasAttribute('raised')).to.be.eql(true);
     44 
     45         Polymer.Base.async(function() {
     46           try {
     47             expect(button.elevation).to.be.eql(1);
     48             done();
     49           } catch (e) {
     50             done(e);
     51           }
     52         }, 1);
     53       });
     54 
     55       test('can be unraised after being raised imperatively', function(done) {
     56         button.raised = true;
     57         expect(button.hasAttribute('raised')).to.be.eql(true);
     58 
     59         Polymer.Base.async(function() {
     60           expect(button.elevation).to.be.eql(1);
     61 
     62           button.raised = false;
     63           expect(button.hasAttribute('raised')).to.be.eql(false);
     64           Polymer.Base.async(function() {
     65             expect(button.elevation).to.be.eql(0);
     66             done();
     67           }, 1);
     68         }, 1);
     69       });
     70 
     71       test('can be disabled imperatively', function() {
     72         button.disabled = true;
     73         expect(button.getAttribute('aria-disabled')).to.be.eql('true');
     74         expect(button.hasAttribute('disabled')).to.be.eql(true);
     75       });
     76 
     77       test('can be triggered with space', function(done) {
     78         button.addEventListener('click', function() {
     79           done();
     80         });
     81         MockInteractions.pressSpace(button);
     82       });
     83 
     84       test('can be triggered with enter', function(done) {
     85         button.addEventListener('click', function() {
     86           done();
     87         });
     88         MockInteractions.pressEnter(button);
     89       });
     90     });
     91 
     92     suite('<paper-button>', function() {
     93       var button;
     94 
     95       setup(function() {
     96         button = fixture('TrivialButton');
     97       });
     98 
     99       test('has aria role "button"', function() {
    100         expect(button.getAttribute('role')).to.be.eql('button');
    101       });
    102 
    103       a11ySuite('TrivialButton');
    104     });
    105 
    106   </script>
    107 </body>
    108 </html>
    109