150 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			150 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!doctype html>
 | 
						|
<!--
 | 
						|
Copyright (c) 2014 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>
 | 
						|
  <meta charset="UTF-8">
 | 
						|
  <title>paper-input-decorator tests</title>
 | 
						|
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
 | 
						|
 | 
						|
  <script src="../../webcomponentsjs/webcomponents.js"></script>
 | 
						|
  <script src="../../web-component-tester/browser.js"></script>
 | 
						|
  <script src="../../polymer-gestures/test/js/fake.js"></script>
 | 
						|
 | 
						|
  <link href="../../core-input/core-input.html" rel="import">
 | 
						|
 | 
						|
  <link href="../paper-input-decorator.html" rel="import">
 | 
						|
  <link href="../paper-autogrow-textarea.html" rel="import">
 | 
						|
 | 
						|
  <style>
 | 
						|
    paper-input-decorator {
 | 
						|
      width: 400px;
 | 
						|
    }
 | 
						|
  </style>
 | 
						|
 | 
						|
</head>
 | 
						|
<body>
 | 
						|
 | 
						|
  <paper-input-decorator id="decorator1" label="input">
 | 
						|
    <input id="input1" is="core-input">
 | 
						|
  </paper-input-decorator>
 | 
						|
 | 
						|
  <br>
 | 
						|
 | 
						|
  <paper-input-decorator id="decorator2" label="input">
 | 
						|
  </paper-input-decorator>
 | 
						|
 | 
						|
  <br>
 | 
						|
 | 
						|
  <paper-input-decorator id="decorator3" label="input" floatingLabel>
 | 
						|
    <input id="input3" is="core-input">
 | 
						|
  </paper-input-decorator>
 | 
						|
 | 
						|
  <paper-input-decorator id="decorator4" label="input" floatingLabel isInvalid error="error message">
 | 
						|
    <input id="input4" is="core-input" value="something">
 | 
						|
  </paper-input-decorator>
 | 
						|
 | 
						|
  <br>
 | 
						|
 | 
						|
  <paper-input-decorator id="decorator5" label="input" labelVisible="false">
 | 
						|
    <input>
 | 
						|
  </paper-input-decorator>
 | 
						|
 | 
						|
  <br>
 | 
						|
 | 
						|
  <script>
 | 
						|
 | 
						|
    var fake = new Fake();
 | 
						|
 | 
						|
    var d1 = document.getElementById('decorator1');
 | 
						|
    var i1 = document.getElementById('input1');
 | 
						|
    var d2 = document.getElementById('decorator2');
 | 
						|
    var d3 = document.getElementById('decorator3');
 | 
						|
    var i3 = document.getElementById('input3');
 | 
						|
    var d4 = document.getElementById('decorator4');
 | 
						|
    var i4 = document.getElementById('input4');
 | 
						|
    var d5 = document.getElementById('decorator5');
 | 
						|
 | 
						|
    function reset(d, i) {
 | 
						|
      d.labelVisible = null;
 | 
						|
      i.value = null;
 | 
						|
      d.updateLabelVisibility(i.value);
 | 
						|
    }
 | 
						|
 | 
						|
    suite('basic', function() {
 | 
						|
 | 
						|
      teardown(function() {
 | 
						|
        reset(d1, i1);
 | 
						|
        reset(d3, i3);
 | 
						|
      });
 | 
						|
 | 
						|
      test('label is invisible if value is not null', function() {
 | 
						|
        assert.ok(d1._labelVisible);
 | 
						|
        i1.value = 'foobar';
 | 
						|
        d1.updateLabelVisibility(i1.value);
 | 
						|
        assert.ok(!d1._labelVisible);
 | 
						|
      });
 | 
						|
 | 
						|
      test('label is invisible if floating label and focused', function(done) {
 | 
						|
        assert.ok(d3._labelVisible);
 | 
						|
        d3.focusAction();
 | 
						|
        flush(function() {
 | 
						|
          assert.ok(!d3._labelVisible);
 | 
						|
          done();
 | 
						|
        });
 | 
						|
      });
 | 
						|
 | 
						|
      test('label is invisible if value = 0', function() {
 | 
						|
        assert.ok(d1._labelVisible);
 | 
						|
        i1.value = 0;
 | 
						|
        d1.updateLabelVisibility(i1.value);
 | 
						|
        assert.ok(!d1._labelVisible);
 | 
						|
      });
 | 
						|
 | 
						|
      test('labelVisible overrides label visibility', function() {
 | 
						|
        d1.labelVisible = false;
 | 
						|
        assert.ok(!i1.value);
 | 
						|
        assert.ok(!d1._labelVisible);
 | 
						|
      });
 | 
						|
 | 
						|
      test('labelVisible works in an attribute', function() {
 | 
						|
        assert.ok(!d5._labelVisible);
 | 
						|
      });
 | 
						|
 | 
						|
      test('can create inputs lazily', function() {
 | 
						|
        var input = document.createElement('input');
 | 
						|
        input.value = 'foobar';
 | 
						|
        d2.appendChild(input);
 | 
						|
        assert.ok(!d2._labelVisible);
 | 
						|
      });
 | 
						|
 | 
						|
      test('tapping on floating label focuses input', function(done) {
 | 
						|
        i3.value = 'foobar';
 | 
						|
        flush(function() {
 | 
						|
          assert.ok(!d3._labelVisible);
 | 
						|
          fake.downOnNode(d1.shadowRoot.querySelector('.floated-label'));
 | 
						|
          flush(function() {
 | 
						|
            assert.strictEqual(window.ShadowDOMPolyfill ? wrap(document.activeElement) : document.activeElement, i1);
 | 
						|
            done();
 | 
						|
          })
 | 
						|
        });
 | 
						|
      });
 | 
						|
 | 
						|
      test('floating label and the error message are the same color', function() {
 | 
						|
        var s1 = getComputedStyle(d4.$.floatedLabelText);
 | 
						|
        var s2 = getComputedStyle(d4.shadowRoot.querySelector('.error-text'));
 | 
						|
        assert.strictEqual(s1.color, s2.color);
 | 
						|
      });
 | 
						|
 | 
						|
    });
 | 
						|
 | 
						|
  </script>
 | 
						|
 | 
						|
</body>
 | 
						|
</html> |