aboutsummaryrefslogtreecommitdiff
path: root/catapult/third_party/polymer/components/paper-behaviors/test
diff options
context:
space:
mode:
Diffstat (limited to 'catapult/third_party/polymer/components/paper-behaviors/test')
-rw-r--r--catapult/third_party/polymer/components/paper-behaviors/test/index.html29
-rw-r--r--catapult/third_party/polymer/components/paper-behaviors/test/paper-button-behavior.html113
-rw-r--r--catapult/third_party/polymer/components/paper-behaviors/test/paper-checked-element-behavior.html94
-rw-r--r--catapult/third_party/polymer/components/paper-behaviors/test/paper-radio-button-behavior.html58
-rw-r--r--catapult/third_party/polymer/components/paper-behaviors/test/paper-ripple-behavior.html335
-rw-r--r--catapult/third_party/polymer/components/paper-behaviors/test/shadowed-ripple.html55
-rw-r--r--catapult/third_party/polymer/components/paper-behaviors/test/test-button.html34
-rw-r--r--catapult/third_party/polymer/components/paper-behaviors/test/test-radio-button.html41
8 files changed, 759 insertions, 0 deletions
diff --git a/catapult/third_party/polymer/components/paper-behaviors/test/index.html b/catapult/third_party/polymer/components/paper-behaviors/test/index.html
new file mode 100644
index 00000000..693054c0
--- /dev/null
+++ b/catapult/third_party/polymer/components/paper-behaviors/test/index.html
@@ -0,0 +1,29 @@
+<!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>
+ <meta charset="utf-8">
+ <script src="../../webcomponentsjs/webcomponents-lite.js"></script>
+ <script src="../../web-component-tester/browser.js"></script>
+</head>
+<body>
+ <script>
+ WCT.loadSuites([
+ 'paper-button-behavior.html',
+ 'paper-radio-button-behavior.html',
+ 'paper-checked-element-behavior.html',
+ 'paper-ripple-behavior.html',
+ 'paper-button-behavior.html?dom=shadow',
+ 'paper-radio-button-behavior.html?dom=shadow',
+ 'paper-checked-element-behavior.html?dom=shadow',
+ 'paper-ripple-behavior.html?dom=shadow'
+ ]);
+ </script>
+
+
+</body></html>
diff --git a/catapult/third_party/polymer/components/paper-behaviors/test/paper-button-behavior.html b/catapult/third_party/polymer/components/paper-behaviors/test/paper-button-behavior.html
new file mode 100644
index 00000000..ff859252
--- /dev/null
+++ b/catapult/third_party/polymer/components/paper-behaviors/test/paper-button-behavior.html
@@ -0,0 +1,113 @@
+<!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-button-behavior</title>
+
+ <script src="../../webcomponentsjs/webcomponents-lite.js"></script>
+ <script src="../../web-component-tester/browser.js"></script>
+ <script src="../../test-fixture/test-fixture-mocha.js"></script>
+ <script src="../../iron-test-helpers/mock-interactions.js"></script>
+
+ <link rel="import" href="../../polymer/polymer.html">
+ <link rel="import" href="../../test-fixture/test-fixture.html">
+ <link rel="import" href="test-button.html">
+</head>
+<body>
+
+ <test-fixture id="basic">
+ <template>
+ <test-button></test-button>
+ </template>
+ </test-fixture>
+
+ <script>
+ suite('basic', function() {
+ var button;
+
+ setup(function() {
+ button = fixture('basic');
+ });
+
+ test('normal (no states)', function() {
+ assert.equal(button.elevation, 1);
+ });
+
+ test('set disabled property', function() {
+ button.disabled = true;
+ assert.equal(button.elevation, 0);
+ });
+
+ test('pressed and released', function() {
+ MockInteractions.down(button);
+ assert.equal(button.elevation, 4);
+ MockInteractions.up(button);
+ assert.equal(button.elevation, 1);
+ assert.ok(button.hasRipple());
+ });
+
+ suite('a button with toggles', function() {
+ setup(function() {
+ button.toggles = true;
+ });
+
+ test('activated by tap', function(done) {
+ MockInteractions.downAndUp(button, function() {
+ try {
+ assert.equal(button.elevation, 4);
+ assert.ok(button.hasRipple());
+ done();
+ } catch (e) {
+ done(e);
+ }
+ });
+ });
+ });
+
+ test('receives focused', function() {
+ MockInteractions.focus(button);
+ assert.equal(button.elevation, 3);
+ assert.ok(button.hasRipple());
+ });
+
+ test('space key', function(done) {
+ const SPACE_KEY_CODE = 32;
+ var ripple;
+ MockInteractions.focus(button);
+
+ assert.ok(button.hasRipple());
+
+ ripple = button.getRipple();
+ MockInteractions.keyDownOn(button, SPACE_KEY_CODE);
+
+ assert.equal(ripple.ripples.length, 1);
+
+ MockInteractions.keyDownOn(button, SPACE_KEY_CODE);
+
+ assert.equal(ripple.ripples.length, 1);
+
+ MockInteractions.keyUpOn(button, SPACE_KEY_CODE);
+
+ var transitionEndCalled = false;
+ ripple.addEventListener('transitionend', function() {
+ if (!transitionEndCalled) {
+ transitionEndCalled = true;
+ assert.equal(ripple.ripples.length, 0);
+ done();
+ }
+ });
+ });
+ });
+ </script>
+
+</body>
+</html>
diff --git a/catapult/third_party/polymer/components/paper-behaviors/test/paper-checked-element-behavior.html b/catapult/third_party/polymer/components/paper-behaviors/test/paper-checked-element-behavior.html
new file mode 100644
index 00000000..363cf4c7
--- /dev/null
+++ b/catapult/third_party/polymer/components/paper-behaviors/test/paper-checked-element-behavior.html
@@ -0,0 +1,94 @@
+<!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-checked-element-behavior</title>
+
+ <script src="../../webcomponentsjs/webcomponents-lite.js"></script>
+ <script src="../../web-component-tester/browser.js"></script>
+ <script src="../../test-fixture/test-fixture-mocha.js"></script>
+ <script src="../../iron-test-helpers/mock-interactions.js"></script>
+
+ <link rel="import" href="../../polymer/polymer.html">
+ <link rel="import" href="../../test-fixture/test-fixture.html">
+ <link rel="import" href="../paper-checked-element-behavior.html">
+</head>
+<body>
+
+ <dom-module id="test-checked">
+ <template>
+ </template>
+ <script>
+ HTMLImports.whenReady(function() {
+ Polymer({
+ is: 'test-checked',
+ behaviors: [
+ Polymer.PaperCheckedElementBehavior
+ ]
+ });
+ });
+ </script>
+ </dom-module>
+
+ <test-fixture id="basic">
+ <template>
+ <test-checked></test-checked>
+ </template>
+ </test-fixture>
+
+ <script>
+ suite('PaperCheckedElementBehavior', function() {
+ var checked;
+
+ setup(function() {
+ checked = fixture('basic');
+ });
+
+ test('element checked when tapped to check', function() {
+ MockInteractions.tap(checked);
+ assert.isTrue(checked.checked);
+ });
+
+ test('element checked when active', function() {
+ checked.active = true;
+ assert.isTrue(checked.checked);
+ });
+
+ test('element not checked when disabled and made active', function() {
+ checked.disabled = true;
+ checked.active = true;
+ assert.isFalse(checked.checked);
+ });
+
+ test('element not checked when disabled and tapped', function() {
+ checked.disabled = true;
+ MockInteractions.tap(checked);
+ assert.isFalse(checked.checked);
+ });
+
+ test('element ripple has checked attribute when element tapped to check', function() {
+ MockInteractions.tap(checked);
+ assert.isTrue(checked.hasRipple());
+ assert.isTrue(checked.getRipple().hasAttribute('checked'));
+ });
+
+ test('element ripple does not have checked attribute when element tapped to uncheck', function() {
+ MockInteractions.tap(checked);
+ MockInteractions.tap(checked);
+ assert.isFalse(checked.getRipple().hasAttribute('checked'));
+ });
+
+ });
+ </script>
+
+</body>
+</html>
diff --git a/catapult/third_party/polymer/components/paper-behaviors/test/paper-radio-button-behavior.html b/catapult/third_party/polymer/components/paper-behaviors/test/paper-radio-button-behavior.html
new file mode 100644
index 00000000..0418057d
--- /dev/null
+++ b/catapult/third_party/polymer/components/paper-behaviors/test/paper-radio-button-behavior.html
@@ -0,0 +1,58 @@
+<!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-radio-button-behavior</title>
+
+ <script src="../../webcomponentsjs/webcomponents-lite.js"></script>
+ <script src="../../web-component-tester/browser.js"></script>
+ <script src="../../test-fixture/test-fixture-mocha.js"></script>
+ <script src="../../iron-test-helpers/mock-interactions.js"></script>
+
+ <link rel="import" href="../../polymer/polymer.html">
+ <link rel="import" href="../../test-fixture/test-fixture.html">
+ <link rel="import" href="test-radio-button.html">
+</head>
+<body>
+
+ <test-fixture id="basic">
+ <template>
+ <test-radio-button></test-radio-button>
+ </template>
+ </test-fixture>
+
+ <script>
+ suite('basic', function() {
+ var button;
+
+ setup(function() {
+ button = fixture('basic');
+ MockInteractions.blur(button);
+ });
+
+ test('normal (no states)', function() {
+ assert.isFalse(button.focused);
+ assert.isFalse(button.hasRipple());
+ });
+
+ test('receives focus', function() {
+ MockInteractions.focus(button);
+
+ assert.isTrue(button.focused);
+ assert.isTrue(button.hasRipple());
+ });
+
+ });
+ </script>
+
+</body>
+</html>
diff --git a/catapult/third_party/polymer/components/paper-behaviors/test/paper-ripple-behavior.html b/catapult/third_party/polymer/components/paper-behaviors/test/paper-ripple-behavior.html
new file mode 100644
index 00000000..9daf17a4
--- /dev/null
+++ b/catapult/third_party/polymer/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() {
+
+ 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>
diff --git a/catapult/third_party/polymer/components/paper-behaviors/test/shadowed-ripple.html b/catapult/third_party/polymer/components/paper-behaviors/test/shadowed-ripple.html
new file mode 100644
index 00000000..1ebad13e
--- /dev/null
+++ b/catapult/third_party/polymer/components/paper-behaviors/test/shadowed-ripple.html
@@ -0,0 +1,55 @@
+<!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
+-->
+<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">
+<dom-module id="sd-ripple">
+ <template>
+ <style>
+ :host {
+ display: block;
+ width: 200px;
+ }
+ #separate, #wrapper {
+ height: 50px;
+ }
+ #separate {
+ background: blue;
+ }
+ #wrapper {
+ background: red;
+ }
+ #wrapper > ::content #source {
+ height: 25px;
+ width: 50px;
+ background: green;
+ }
+ </style>
+ <div id="separate">
+ <div id="target">
+ Internal Text Node
+ </div>
+ </div>
+ <div id="wrapper">
+ <content id="content"></content>
+ </div>
+ </template>
+ <script>
+ Polymer({
+ is: 'sd-ripple',
+ behaviors: [
+ Polymer.IronButtonState,
+ Polymer.IronControlState,
+ Polymer.PaperRippleBehavior
+ ]
+ });
+ </script>
+</dom-module>
diff --git a/catapult/third_party/polymer/components/paper-behaviors/test/test-button.html b/catapult/third_party/polymer/components/paper-behaviors/test/test-button.html
new file mode 100644
index 00000000..3bbf356e
--- /dev/null
+++ b/catapult/third_party/polymer/components/paper-behaviors/test/test-button.html
@@ -0,0 +1,34 @@
+<!--
+@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
+-->
+
+<link rel="import" href="../../polymer/polymer.html">
+<link rel="import" href="../paper-button-behavior.html">
+
+<dom-module id="test-button">
+
+ <template>
+ <content></content>
+ </template>
+
+ <script>
+
+ Polymer({
+
+ is: 'test-button',
+
+ behaviors: [
+ Polymer.PaperButtonBehavior
+ ]
+
+ });
+
+ </script>
+
+</dom-module>
diff --git a/catapult/third_party/polymer/components/paper-behaviors/test/test-radio-button.html b/catapult/third_party/polymer/components/paper-behaviors/test/test-radio-button.html
new file mode 100644
index 00000000..945a08e1
--- /dev/null
+++ b/catapult/third_party/polymer/components/paper-behaviors/test/test-radio-button.html
@@ -0,0 +1,41 @@
+<!--
+@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
+-->
+
+<link rel="import" href="../../polymer/polymer.html">
+<link rel="import" href="../paper-checked-element-behavior.html">
+<link rel="import" href="../../paper-ripple/paper-ripple.html">
+
+<dom-module id="test-radio-button">
+ <template>
+ <style>
+ :host #ink {
+ position: absolute;
+ top: -16px;
+ left: -16px;
+ width: 48px;
+ height: 48px;
+ }
+ </style>
+
+ <div id="container">
+ <paper-ripple id="ink" class="circle" center></paper-ripple>
+ </div>
+ </template>
+</dom-module>
+
+<script>
+ Polymer({
+ is: 'test-radio-button',
+
+ behaviors: [
+ Polymer.PaperCheckedElementBehavior
+ ]
+ });
+</script>