65 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| 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'));
 | |
|     });
 | |
| 
 | |
|   });
 | |
| }
 |