Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1171)

Unified Diff: polymer_1.0.4/bower_components/iron-a11y-keys-behavior/test/basic-test.html

Issue 1205703007: Add polymer 1.0 to npm_modules (Closed) Base URL: https://chromium.googlesource.com/infra/third_party/npm_modules.git@master
Patch Set: Renamed folder to 1.0.4 Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: polymer_1.0.4/bower_components/iron-a11y-keys-behavior/test/basic-test.html
diff --git a/polymer_1.0.4/bower_components/iron-a11y-keys-behavior/test/basic-test.html b/polymer_1.0.4/bower_components/iron-a11y-keys-behavior/test/basic-test.html
new file mode 100644
index 0000000000000000000000000000000000000000..8e50c92b4091a203acb5a71e1a0fc325283c8e48
--- /dev/null
+++ b/polymer_1.0.4/bower_components/iron-a11y-keys-behavior/test/basic-test.html
@@ -0,0 +1,248 @@
+<!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">
+ <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1.0, user-scalable=yes">
+ <title>iron-a11y-keys</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="../iron-a11y-keys-behavior.html">
+</head>
+<body>
+ <test-fixture id="BasicKeys">
+ <template>
+ <x-a11y-basic-keys></x-a11y-basic-keys>
+ </template>
+ </test-fixture>
+
+ <test-fixture id="ComboKeys">
+ <template>
+ <x-a11y-combo-keys></x-a11y-combo-keys>
+ </template>
+ </test-fixture>
+
+ <test-fixture id="AlternativeEventKeys">
+ <template>
+ <x-a11y-alternate-event-keys></x-a11y-alternate-event-keys>
+ </template>
+ </test-fixture>
+
+ <test-fixture id="BehaviorKeys">
+ <template>
+ <x-a11y-behavior-keys></x-a11y-behavior-keys>
+ </template>
+ </test-fixture>
+
+ <script>
+suite('Polymer.IronA11yKeysBehavior', function() {
+ var keys;
+
+ suiteSetup(function() {
+ var KeysTestBehavior = [Polymer.IronA11yKeysBehavior, {
+ properties: {
+ keyCount: {
+ type: Number,
+ value: 0
+ }
+ },
+
+ _keyHandler: function(event) {
+ this.keyCount++;
+ this.lastEvent = event;
+ }
+ }];
+
+ Polymer({
+ is: 'x-a11y-basic-keys',
+
+ behaviors: [
+ KeysTestBehavior
+ ],
+
+ keyBindings: {
+ 'space': '_keyHandler'
+ }
+ });
+
+ Polymer({
+ is: 'x-a11y-combo-keys',
+
+ behaviors: [
+ KeysTestBehavior
+ ],
+
+ keyBindings: {
+ 'ctrl+shift+a': '_keyHandler'
+ }
+ });
+
+ Polymer({
+ is: 'x-a11y-alternate-event-keys',
+
+ behaviors: [
+ KeysTestBehavior
+ ],
+
+ keyBindings: {
+ 'space:keyup': '_keyHandler'
+ }
+ });
+
+ var XA11yBehavior = {
+ keyBindings: {
+ 'enter': '_keyHandler'
+ }
+ };
+
+ Polymer({
+ is: 'x-a11y-behavior-keys',
+
+ behaviors: [
+ KeysTestBehavior,
+ XA11yBehavior
+ ],
+
+ keyBindings: {
+ 'space': '_keyHandler'
+ }
+ });
+ });
+
+ suite('basic keys', function() {
+ setup(function() {
+ keys = fixture('BasicKeys');
+ });
+
+ test('trigger the handler when the specified key is pressed', function() {
+ MockInteractions.pressSpace(keys);
+
+ expect(keys.keyCount).to.be.equal(1);
+ });
+
+ test('do not trigger the handler for non-specified keys', function() {
+ MockInteractions.pressEnter(keys);
+
+ expect(keys.keyCount).to.be.equal(0);
+ });
+
+ test('can have bindings added imperatively', function() {
+ keys.addOwnKeyBinding('enter', '_keyHandler');
+
+ MockInteractions.pressEnter(keys);
+ expect(keys.keyCount).to.be.equal(1);
+
+ MockInteractions.pressSpace(keys);
+ expect(keys.keyCount).to.be.equal(2);
+ });
+
+ test('can remove imperatively added bindings', function() {
+ keys.addOwnKeyBinding('enter', '_keyHandler');
+ keys.removeOwnKeyBindings();
+
+ MockInteractions.pressEnter(keys);
+ expect(keys.keyCount).to.be.equal(0);
+
+ MockInteractions.pressSpace(keys);
+ expect(keys.keyCount).to.be.equal(1);
+ });
+
+ suite('edge cases', function() {
+ test('knows that `spacebar` is the same as `space`', function() {
+ var event = new CustomEvent('keydown');
+ event.key = 'spacebar';
+ expect(keys.keyboardEventMatchesKeys(event, 'space')).to.be.equal(true);
+ });
+ });
+
+ suite('matching keyboard events to keys', function() {
+ test('can be done imperatively', function() {
+ var event = new CustomEvent('keydown');
+ event.keyCode = 65;
+ expect(keys.keyboardEventMatchesKeys(event, 'a')).to.be.equal(true);
+ });
+
+ test('can be done with a provided keyboardEvent', function() {
+ var event;
+ MockInteractions.pressSpace(keys);
+ event = keys.lastEvent;
+
+ expect(event.detail.keyboardEvent).to.be.okay;
+ expect(keys.keyboardEventMatchesKeys(event, 'space')).to.be.equal(true);
+ });
+
+ test('can handle variations in arrow key names', function() {
+ var event = new CustomEvent('keydown');
+ event.key = 'up';
+ expect(keys.keyboardEventMatchesKeys(event, 'up')).to.be.equal(true);
+ event.key = 'ArrowUp';
+ expect(keys.keyboardEventMatchesKeys(event, 'up')).to.be.equal(true);
+ });
+ });
+ });
+
+ suite('combo keys', function() {
+ setup(function() {
+ keys = fixture('ComboKeys');
+ });
+
+ test('trigger the handler when the combo is pressed', function() {
+ var event = new CustomEvent('keydown');
+
+ event.ctrlKey = true;
+ event.shiftKey = true;
+ event.keyCode = event.code = 65;
+
+ keys.dispatchEvent(event);
+
+ expect(keys.keyCount).to.be.equal(1);
+ });
+ });
+
+ suite('alternative event keys', function() {
+ setup(function() {
+ keys = fixture('AlternativeEventKeys');
+ });
+
+ test('trigger on the specified alternative keyboard event', function() {
+ MockInteractions.keyDownOn(keys, 32);
+
+ expect(keys.keyCount).to.be.equal(0);
+
+ MockInteractions.keyUpOn(keys, 32);
+
+ expect(keys.keyCount).to.be.equal(1);
+ });
+ });
+
+ suite('behavior keys', function() {
+ setup(function() {
+ keys = fixture('BehaviorKeys');
+ });
+
+ test('bindings in other behaviors are transitive', function() {
+ MockInteractions.pressEnter(keys);
+ MockInteractions.pressSpace(keys);
+
+ expect(keys.keyCount).to.be.equal(2);
+ });
+ });
+
+});
+ </script>
+</body>
+</html>

Powered by Google App Engine
This is Rietveld 408576698