import {describe, ddescribe, it, iit, xit, xdescribe, expect, beforeEach, el} from 'angular2/test_lib'; import {KeyEventsPlugin} from 'angular2/src/render/dom/events/key_events'; export function main() { describe('KeyEvents', () => { it('should ignore unrecognized events', () => { expect(KeyEventsPlugin.parseEventName('keydown')).toEqual(null); expect(KeyEventsPlugin.parseEventName('keyup')).toEqual(null); expect(KeyEventsPlugin.parseEventName('keydown.unknownmodifier.enter')).toEqual(null); expect(KeyEventsPlugin.parseEventName('keyup.unknownmodifier.enter')).toEqual(null); expect(KeyEventsPlugin.parseEventName('unknownevent.control.shift.enter')).toEqual(null); expect(KeyEventsPlugin.parseEventName('unknownevent.enter')).toEqual(null); }); it('should correctly parse event names', () => { // key with no modifier expect(KeyEventsPlugin.parseEventName('keydown.enter')).toEqual({ 'domEventName': 'keydown', 'fullKey': 'enter' }); expect(KeyEventsPlugin.parseEventName('keyup.enter')).toEqual({ 'domEventName': 'keyup', 'fullKey': 'enter' }); // key with modifiers: expect(KeyEventsPlugin.parseEventName('keydown.control.shift.enter')).toEqual({ 'domEventName': 'keydown', 'fullKey': 'control.shift.enter' }); expect(KeyEventsPlugin.parseEventName('keyup.control.shift.enter')).toEqual({ 'domEventName': 'keyup', 'fullKey': 'control.shift.enter' }); // key with modifiers in a different order: expect(KeyEventsPlugin.parseEventName('keydown.shift.control.enter')).toEqual({ 'domEventName': 'keydown', 'fullKey': 'control.shift.enter' }); expect(KeyEventsPlugin.parseEventName('keyup.shift.control.enter')).toEqual({ 'domEventName': 'keyup', 'fullKey': 'control.shift.enter' }); // key that is also a modifier: expect(KeyEventsPlugin.parseEventName('keydown.shift.control')).toEqual({ 'domEventName': 'keydown', 'fullKey': 'shift.control' }); expect(KeyEventsPlugin.parseEventName('keyup.shift.control')).toEqual({ 'domEventName': 'keyup', 'fullKey': 'shift.control' }); expect(KeyEventsPlugin.parseEventName('keydown.control.shift')).toEqual({ 'domEventName': 'keydown', 'fullKey': 'control.shift' }); expect(KeyEventsPlugin.parseEventName('keyup.control.shift')).toEqual({ 'domEventName': 'keyup', 'fullKey': 'control.shift' }); }); it('should alias esc to escape', () => { expect(KeyEventsPlugin.parseEventName('keyup.control.esc')) .toEqual(KeyEventsPlugin.parseEventName('keyup.control.escape')); }); }); }