Index: polymer_1.2.3/bower_components/paper-behaviors/test/paper-ripple-behavior.html |
diff --git a/polymer_1.2.3/bower_components/paper-behaviors/test/paper-ripple-behavior.html b/polymer_1.2.3/bower_components/paper-behaviors/test/paper-ripple-behavior.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9139dc8edd7aec4829601ecfb71a360b3cf6f1d9 |
--- /dev/null |
+++ b/polymer_1.2.3/bower_components/paper-behaviors/test/paper-ripple-behavior.html |
@@ -0,0 +1,335 @@ |
+<!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>paper-ripple-behavior</title> |
+ |
+ <script src="../../webcomponentsjs/webcomponents-lite.js"></script> |
+ <script src="../../web-component-tester/browser.js"></script> |
+ <script src="../../iron-test-helpers/mock-interactions.js"></script> |
+ |
+ <link rel="import" href="../../polymer/polymer.html"> |
+ <link rel="import" href="../../iron-behaviors/iron-button-state.html"> |
+ <link rel="import" href="../paper-ripple-behavior.html"> |
+ <link rel="import" href="shadowed-ripple.html"> |
+</head> |
+<body> |
+ |
+ <dom-module id="test-ripple"> |
+ <template> |
+ </template> |
+ <script> |
+ HTMLImports.whenReady(function() { |
+ Polymer({ |
+ is: 'test-ripple', |
+ behaviors: [ |
+ Polymer.IronButtonState, |
+ Polymer.IronControlState, |
+ Polymer.PaperRippleBehavior |
+ ] |
+ }); |
+ }); |
+ </script> |
+ </dom-module> |
+ |
+ <test-fixture id="basic"> |
+ <template> |
+ <test-ripple></test-ripple> |
+ </template> |
+ </test-fixture> |
+ |
+ <test-fixture id="ShadowBasic"> |
+ <template> |
+ <sd-ripple></sd-ripple> |
+ </template> |
+ </test-fixture> |
+ |
+ <test-fixture id="ShadowText"> |
+ <template> |
+ <sd-ripple>Howdy!</sd-ripple> |
+ </template> |
+ </test-fixture> |
+ |
+ <test-fixture id="ShadowElement"> |
+ <template> |
+ <sd-ripple> |
+ <div id="source">source!</div> |
+ </sd-ripple> |
+ </template> |
+ </test-fixture> |
+ |
+ <script> |
+ suite('PaperRippleBehavior', function() { |
+ var ripple; |
+ |
+ setup(function() { |
+ ripple = fixture('basic'); |
+ }); |
+ |
+ test('no ripple at startup', function() { |
+ assert.isFalse(ripple.hasRipple()); |
+ }); |
+ |
+ test('calling getRipple returns ripple', function() { |
+ assert.ok(ripple.getRipple()); |
+ }); |
+ |
+ test('focus generates ripple', function() { |
+ MockInteractions.focus(ripple); |
+ assert.ok(ripple.hasRipple()); |
+ }); |
+ |
+ test('down generates ripple', function() { |
+ MockInteractions.down(ripple); |
+ assert.ok(ripple.hasRipple()); |
+ MockInteractions.up(ripple); |
+ }); |
+ |
+ suite('Correct Targeting', function() { |
+ |
+ function assertInteractionCausesRipple(host, node, expected, msg) { |
+ var ripple = host.getRipple(); |
+ Polymer.dom.flush(); |
+ MockInteractions.down(node); |
+ assert.equal(ripple.ripples.length > 0, expected, msg); |
+ MockInteractions.up(node); |
+ } |
+ |
+ function assertInteractionAtLocationCausesRipple(host, node, location, expected, msg) { |
+ var ripple = host.getRipple(); |
+ Polymer.dom.flush(); |
+ MockInteractions.down(node, location); |
+ assert.equal(ripple.ripples.length > 0, expected, msg); |
+ MockInteractions.up(node); |
+ } |
+ |
+ suite('basic', function() { |
+ suite('container = host', function() { |
+ |
+ setup(function() { |
+ ripple = fixture('ShadowBasic'); |
+ }); |
+ |
+ test('tap host', function() { |
+ assertInteractionCausesRipple(ripple, ripple, true, 'ripple'); |
+ }); |
+ test('tap #wrapper', function() { |
+ assertInteractionCausesRipple(ripple, ripple.$.wrapper, true, '#wrapper'); |
+ }); |
+ test('tap #separate', function() { |
+ assertInteractionCausesRipple(ripple, ripple.$.separate, true, '#separate') |
+ }); |
+ }); |
+ |
+ suite('container = wrapper', function() { |
+ |
+ setup(function() { |
+ ripple = fixture('ShadowBasic'); |
+ ripple._rippleContainer = ripple.$.wrapper; |
+ }); |
+ |
+ test('tap host', function() { |
+ assertInteractionCausesRipple(ripple, ripple, false, 'ripple'); |
+ }); |
+ |
+ test('tap #wrapper', function() { |
+ assertInteractionCausesRipple(ripple, ripple.$.wrapper, true, '#wrapper'); |
+ }); |
+ |
+ test('tap #separate', function() { |
+ assertInteractionCausesRipple(ripple, ripple.$.separate, false, '#separate') |
+ }); |
+ }); |
+ |
+ suite('container = separate', function(done) { |
+ |
+ setup(function() { |
+ ripple = fixture('ShadowBasic'); |
+ ripple._rippleContainer = ripple.$.separate; |
+ }); |
+ |
+ test('tap host', function() { |
+ assertInteractionCausesRipple(ripple, ripple, false, 'ripple'); |
+ }); |
+ |
+ test('tap wrapper', function() { |
+ assertInteractionCausesRipple(ripple, ripple.$.wrapper, false, '#wrapper'); |
+ }); |
+ |
+ test('tap separate', function() { |
+ assertInteractionCausesRipple(ripple, ripple.$.separate, true, '#separate') |
+ }); |
+ }); |
+ }); |
+ |
+ suite('distributed text', function() { |
+ var textLocation; |
+ |
+ function getTextLocation(ripple) { |
+ // build a Range to get the BCR of a given text node |
+ var r = document.createRange(); |
+ r.selectNode(Polymer.dom(ripple.$.content).getDistributedNodes()[0]); |
+ return MockInteractions.middleOfNode(r); |
+ } |
+ |
+ suite('container = host', function() { |
+ setup(function() { |
+ ripple = fixture('ShadowText'); |
+ textLocation = getTextLocation(ripple); |
+ }); |
+ |
+ test('tap host', function() { |
+ assertInteractionCausesRipple(ripple, ripple, true, 'ripple'); |
+ }); |
+ |
+ test('tap wrapper', function() { |
+ assertInteractionCausesRipple(ripple, ripple.$.wrapper, true, '#wrapper'); |
+ }); |
+ |
+ test('tap separate', function() { |
+ assertInteractionCausesRipple(ripple, ripple.$.separate, true, '#separate') |
+ }); |
+ |
+ test('tap text', function() { |
+ assertInteractionAtLocationCausesRipple(ripple, ripple.$.wrapper, textLocation, true, 'text'); |
+ }); |
+ }); |
+ |
+ suite('container = wrapper', function() { |
+ setup(function() { |
+ ripple = fixture('ShadowText'); |
+ ripple._rippleContainer = ripple.$.wrapper; |
+ textLocation = getTextLocation(ripple); |
+ }); |
+ |
+ test('tap host', function() { |
+ assertInteractionCausesRipple(ripple, ripple, false, 'ripple'); |
+ }); |
+ |
+ test('tap wrapper', function() { |
+ assertInteractionCausesRipple(ripple, ripple.$.wrapper, true, '#wrapper'); |
+ }); |
+ |
+ test('tap separate', function() { |
+ assertInteractionCausesRipple(ripple, ripple.$.separate, false, '#separate') |
+ }); |
+ |
+ test('tap text', function() { |
+ assertInteractionAtLocationCausesRipple(ripple, ripple.$.wrapper, textLocation, true, 'text'); |
+ }); |
+ }); |
+ |
+ suite('container = separate', function() { |
+ setup(function() { |
+ ripple = fixture('ShadowText'); |
+ ripple._rippleContainer = ripple.$.separate; |
+ textLocation = getTextLocation(ripple); |
+ }); |
+ |
+ test('tap host', function() { |
+ assertInteractionCausesRipple(ripple, ripple, false, 'ripple'); |
+ }); |
+ |
+ test('tap wrapper', function() { |
+ assertInteractionCausesRipple(ripple, ripple.$.wrapper, false, '#wrapper'); |
+ }); |
+ |
+ test('tap separate', function() { |
+ assertInteractionCausesRipple(ripple, ripple.$.separate, true, '#separate') |
+ }); |
+ |
+ test('tap text', function() { |
+ assertInteractionAtLocationCausesRipple(ripple, ripple.$.wrapper, textLocation, false, 'text'); |
+ }); |
+ }); |
+ }); |
+ |
+ suite('distributed element', function() { |
+ var source; |
+ |
+ suite('container = host', function() { |
+ setup(function() { |
+ ripple = fixture('ShadowElement'); |
+ source = Polymer.dom(ripple).querySelector('#source'); |
+ }); |
+ |
+ test('tap host', function() { |
+ assertInteractionCausesRipple(ripple, ripple, true, 'ripple'); |
+ }); |
+ |
+ test('tap wrapper', function() { |
+ assertInteractionCausesRipple(ripple, ripple.$.wrapper, true, '#wrapper'); |
+ }); |
+ |
+ test('tap separate', function() { |
+ assertInteractionCausesRipple(ripple, ripple.$.separate, true, '#separate') |
+ }); |
+ |
+ test('tap source', function() { |
+ assertInteractionCausesRipple(ripple, source, true, '#source'); |
+ }); |
+ }); |
+ |
+ suite('container = wrapper', function() { |
+ setup(function() { |
+ ripple = fixture('ShadowElement'); |
+ ripple._rippleContainer = ripple.$.wrapper; |
+ source = Polymer.dom(ripple).querySelector('#source'); |
+ }); |
+ |
+ test('tap host', function() { |
+ assertInteractionCausesRipple(ripple, ripple, false, 'ripple'); |
+ }); |
+ |
+ test('tap wrapper', function() { |
+ assertInteractionCausesRipple(ripple, ripple.$.wrapper, true, '#wrapper'); |
+ }); |
+ |
+ test('tap separate', function() { |
+ assertInteractionCausesRipple(ripple, ripple.$.separate, false, '#separate') |
+ }); |
+ |
+ test('tap source', function() { |
+ assertInteractionCausesRipple(ripple, source, true, '#source'); |
+ }); |
+ }); |
+ |
+ suite('container = separate', function() { |
+ setup(function() { |
+ ripple = fixture('ShadowElement'); |
+ ripple._rippleContainer = ripple.$.separate; |
+ source = Polymer.dom(ripple).querySelector('#source'); |
+ }); |
+ |
+ test('tap host', function() { |
+ assertInteractionCausesRipple(ripple, ripple, false, 'ripple'); |
+ }); |
+ |
+ test('tap wrapper', function() { |
+ assertInteractionCausesRipple(ripple, ripple.$.wrapper, false, '#wrapper'); |
+ }); |
+ |
+ test('tap separate', function() { |
+ assertInteractionCausesRipple(ripple, ripple.$.separate, true, '#separate') |
+ }); |
+ |
+ test('tap source', function() { |
+ assertInteractionCausesRipple(ripple, source, false, '#source'); |
+ }); |
+ }); |
+ }); |
+ }); |
+ }); |
+ </script> |
+ |
+</body> |
+</html> |