Index: polymer_0.5.4/bower_components/paper-input/test/paper-input-decorator.html |
diff --git a/polymer_0.5.4/bower_components/paper-input/test/paper-input-decorator.html b/polymer_0.5.4/bower_components/paper-input/test/paper-input-decorator.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..2cf38f6f224e886e881532f7cf123e342f5c67b8 |
--- /dev/null |
+++ b/polymer_0.5.4/bower_components/paper-input/test/paper-input-decorator.html |
@@ -0,0 +1,187 @@ |
+<!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> |
+ |
+ <script src="util.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> |
+ |
+ <template id="default"> |
+ <paper-input-decorator label="label"> |
+ <input is="core-input"> |
+ </paper-input-decorator> |
+ <br> |
+ </template> |
+ |
+ <template id="floating-label"> |
+ <paper-input-decorator label="floating label" floatingLabel> |
+ <input is="core-input"> |
+ </paper-input-decorator> |
+ <br> |
+ </template> |
+ |
+ <template id="label-visible-false"> |
+ <paper-input-decorator label="labelVisible = false" labelVisible="false"> |
+ <input is="core-input"> |
+ </paper-input-decorator> |
+ <br> |
+ </template> |
+ |
+ <template id="floating-label-filled"> |
+ <paper-input-decorator label="input" floatingLabel> |
+ <input is="core-input" value="prefilled"> |
+ </paper-input-decorator> |
+ </template> |
+ |
+ <template id="no-input"> |
+ <paper-input-decorator label="no input"> |
+ </paper-input-decorator> |
+ <br> |
+ </template> |
+ |
+ <template id="error"> |
+ <paper-input-decorator label="input" floatingLabel isInvalid error="error message"> |
+ <input is="core-input" value="something"> |
+ </paper-input-decorator> |
+ <br> |
+ </template> |
+ |
+ <template id="auto-validate"> |
+ <paper-input-decorator autoValidate error="input is required"> |
+ <input is="core-input" required> |
+ </paper-input-decorator> |
+ <br> |
+ </template> |
+ |
+ <script> |
+ |
+ var fake = new Fake(); |
+ |
+ function cloneAndAppendTemplate(templateId) { |
+ var tmpl = document.getElementById(templateId); |
+ var frag = document.importNode(tmpl.content, true); |
+ var node = frag.children[0]; |
+ document.body.appendChild(frag); |
+ return { |
+ d: node, |
+ i: node.querySelector('input') |
+ }; |
+ } |
+ |
+ test('label is invisible if value is not null', function() { |
+ var nodes = cloneAndAppendTemplate('default'); |
+ nodes.i.value = 'foobar'; |
+ nodes.d.updateLabelVisibility(nodes.i.value); |
+ assert.ok(!nodes.d._labelVisible); |
+ }); |
+ |
+ test('label is invisible if floating label and focused', function(done) { |
+ var nodes = cloneAndAppendTemplate('floating-label'); |
+ async.series([ |
+ function(callback) { |
+ ensureFocus(nodes.i, callback); |
+ }, |
+ function(callback) { |
+ assert.ok(!nodes.d._labelVisible); |
+ callback(); |
+ } |
+ ], done); |
+ }); |
+ |
+ |
+ test('label is invisible if value = 0', function() { |
+ var nodes = cloneAndAppendTemplate('default'); |
+ nodes.i.value = 0; |
+ nodes.d.updateLabelVisibility(nodes.i.value); |
+ assert.ok(!nodes.d._labelVisible); |
+ }); |
+ |
+ test('labelVisible overrides label visibility', function() { |
+ var nodes = cloneAndAppendTemplate('default'); |
+ nodes.d.labelVisible = false; |
+ assert.ok(!nodes.i.value); |
+ assert.ok(!nodes.d._labelVisible); |
+ }); |
+ |
+ test('labelVisible works in an attribute', function() { |
+ var nodes = cloneAndAppendTemplate('label-visible-false'); |
+ assert.ok(!nodes.d._labelVisible); |
+ }); |
+ |
+ test('can create inputs lazily', function() { |
+ var nodes = cloneAndAppendTemplate('no-input'); |
+ var input = document.createElement('input'); |
+ input.value = 'foobar'; |
+ nodes.d.appendChild(input); |
+ assert.ok(!nodes.d._labelVisible); |
+ }); |
+ |
+ test('tapping on floating label focuses input', function(done) { |
+ var nodes = cloneAndAppendTemplate('floating-label-filled'); |
+ var floatedLabel = nodes.d.shadowRoot.querySelector('.floated-label'); |
+ fake.downOnNode(floatedLabel); |
+ fake.upOnNode(floatedLabel); |
+ waitFor(function() { |
+ assertNodeHasFocus(nodes.i); |
+ }, done); |
+ }); |
+ |
+ test('floating label and the error message are the same color', function(done) { |
+ var nodes = cloneAndAppendTemplate('error'); |
+ flush(function() { |
+ var s1 = getComputedStyle(nodes.d.$.floatedLabelText); |
+ var s2 = getComputedStyle(nodes.d.shadowRoot.querySelector('.error-text')); |
+ assert.strictEqual(s1.color, s2.color); |
+ done(); |
+ }); |
+ }); |
+ |
+ test('auto-validate input validates after creation', function() { |
+ var nodes = cloneAndAppendTemplate('auto-validate'); |
+ flush(function() { |
+ assert.ok(nodes.d.isInvalid); |
+ }); |
+ }); |
+ |
+ suite('a11y', function() { |
+ |
+ test('aria-label set on input', function() { |
+ var nodes = cloneAndAppendTemplate('default'); |
+ flush(function() { |
+ assert.strictEqual(nodes.i.getAttribute('aria-label'), nodes.d.label); |
+ }); |
+ }); |
+ |
+ }); |
+ |
+ </script> |
+ |
+</body> |
+</html> |