| OLD | NEW |
| 1 @TestOn('browser') | 1 @TestOn('browser') |
| 2 library polymer_elements.test.iron_a11y_keys_behavior_test; | 2 library polymer_elements.test.iron_a11y_keys_behavior_test; |
| 3 | 3 |
| 4 import 'dart:async'; | 4 import 'dart:async'; |
| 5 import 'dart:convert'; | 5 import 'dart:convert'; |
| 6 import 'dart:html'; | 6 import 'dart:html'; |
| 7 import 'dart:js'; | 7 import 'dart:js'; |
| 8 import 'package:polymer_elements/iron_a11y_keys_behavior.dart'; | 8 import 'package:polymer_elements/iron_a11y_keys_behavior.dart'; |
| 9 import 'package:polymer_interop/polymer_interop.dart'; | 9 import 'package:polymer_interop/polymer_interop.dart'; |
| 10 import 'package:polymer/polymer.dart'; | 10 import 'package:polymer/polymer.dart'; |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 50 keys.removeOwnKeyBindings(); | 50 keys.removeOwnKeyBindings(); |
| 51 | 51 |
| 52 pressEnter(keys); | 52 pressEnter(keys); |
| 53 expect(keys.keyCount, 0); | 53 expect(keys.keyCount, 0); |
| 54 | 54 |
| 55 // **Dart Note**: All our key bindings are imperative, so this part of | 55 // **Dart Note**: All our key bindings are imperative, so this part of |
| 56 // the test isn't valid. | 56 // the test isn't valid. |
| 57 // pressSpace(keys); | 57 // pressSpace(keys); |
| 58 // expect(keys.keyCount, 1); | 58 // expect(keys.keyCount, 1); |
| 59 }); | 59 }); |
| 60 |
| 61 test('allows propagation beyond the key combo handler', () { |
| 62 var called = false; |
| 63 var done = document.on['keydown'].first.then((_) { |
| 64 called = true; |
| 65 }); |
| 66 |
| 67 pressEnter(keys); |
| 68 |
| 69 expect(called, true); |
| 70 |
| 71 return done; |
| 72 }); |
| 60 | 73 |
| 61 group('edge cases', () { | 74 group('edge cases', () { |
| 62 test('knows that `spacebar` is the same as `space`', () { | 75 test('knows that `spacebar` is the same as `space`', () { |
| 63 var event = new CustomEvent('keydown'); | 76 var event = new CustomEvent('keydown'); |
| 64 new JsObject.fromBrowserObject(event)['key'] = 'spacebar'; | 77 new JsObject.fromBrowserObject(event)['key'] = 'spacebar'; |
| 65 expect(keys.keyboardEventMatchesKeys(event, 'space'), true); | 78 expect(keys.keyboardEventMatchesKeys(event, 'space'), true); |
| 66 }); | 79 }); |
| 67 }); | 80 }); |
| 68 | 81 |
| 69 group('matching keyboard events to keys', () { | 82 group('matching keyboard events to keys', () { |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 keys = fixture('BehaviorKeys'); | 147 keys = fixture('BehaviorKeys'); |
| 135 }); | 148 }); |
| 136 | 149 |
| 137 test('bindings in other behaviors are transitive', () { | 150 test('bindings in other behaviors are transitive', () { |
| 138 pressEnter(keys); | 151 pressEnter(keys); |
| 139 pressSpace(keys); | 152 pressSpace(keys); |
| 140 | 153 |
| 141 expect(keys.keyCount, 2); | 154 expect(keys.keyCount, 2); |
| 142 }); | 155 }); |
| 143 }); | 156 }); |
| 157 |
| 158 group('stopping propagation automatically', () { |
| 159 setUp(() { |
| 160 keys = fixture('NonPropagatingKeys'); |
| 161 }); |
| 162 |
| 163 test('does not propagate key events beyond the combo handler', () async { |
| 164 var called = false; |
| 165 |
| 166 document.on['keydown'].first.then((_) { |
| 167 called = true; |
| 168 }); |
| 169 |
| 170 pressEnter(keys); |
| 171 await wait(1); |
| 172 |
| 173 expect(called, isFalse); |
| 174 }); |
| 175 }); |
| 144 }); | 176 }); |
| 145 } | 177 } |
| 146 | 178 |
| 147 @behavior | 179 @behavior |
| 148 abstract class KeysTestBehavior implements PolymerMixin, PolymerBase, HtmlElemen
t, IronA11yKeysBehavior { | 180 abstract class KeysTestBehavior implements PolymerMixin, PolymerBase, HtmlElemen
t, IronA11yKeysBehavior { |
| 149 @property | 181 @property |
| 150 int keyCount = 0; | 182 int keyCount = 0; |
| 151 | 183 |
| 152 @property | 184 @property |
| 153 Event lastEvent; | 185 Event lastEvent; |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 195 | 227 |
| 196 @PolymerRegister('x-a11y-behavior-keys') | 228 @PolymerRegister('x-a11y-behavior-keys') |
| 197 class XA11yBehaviorKeys extends PolymerElement | 229 class XA11yBehaviorKeys extends PolymerElement |
| 198 with IronA11yKeysBehavior, KeysTestBehavior, XA11yBehavior { | 230 with IronA11yKeysBehavior, KeysTestBehavior, XA11yBehavior { |
| 199 XA11yBehaviorKeys.created() : super.created(); | 231 XA11yBehaviorKeys.created() : super.created(); |
| 200 | 232 |
| 201 ready() { | 233 ready() { |
| 202 addOwnKeyBinding('space', 'keyHandler'); | 234 addOwnKeyBinding('space', 'keyHandler'); |
| 203 } | 235 } |
| 204 } | 236 } |
| OLD | NEW |