blob: 1bd844294e279ac3de995ce238c293d9a3414378 [file] [log] [blame]
<!DOCTYPE html>
<link rel="help" href="http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent-code" />
<script src="../../resources/js-test.js"></script>-
<textarea id="textarea"></textarea>
<script>
description('Tests KeyboardEvent.code attribute');
var textarea = document.getElementById('textarea');
textarea.addEventListener('keydown', recordKeyEvent, false);
textarea.addEventListener('keyup', recordKeyEvent, false);
textarea.addEventListener('keypress', recordKeyEvent, false);
textarea.focus();
var lastKeyboardDownEvent, lastKeyboardPressEvent, lastKeyboardUpEvent;
function recordKeyEvent(ev) {
if (window.eventSender) {
if (ev.type === "keydown")
lastKeyboardDownEvent = ev;
else if (ev.type === "keyup")
lastKeyboardUpEvent = ev;
else if (ev.type === "keypress")
lastKeyboardPressEvent = ev;
} else {
debug('Type=' + ev.type + ',' + 'code=' + ev.code);
}
}
if (window.eventSender) {
debug('AlphaNumeric Keys');
eventSender.keyDown('A');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'KeyA\'') ;
shouldEvaluateTo('lastKeyboardUpEvent.code', '\'KeyA\'') ;
shouldEvaluateTo('lastKeyboardPressEvent.code', '\'KeyA\'') ;
eventSender.keyDown('a'); // Small letters.
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'KeyA\'') ;
eventSender.keyDown('M');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'KeyM\'') ;
eventSender.keyDown('m'); // Small letters.
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'KeyM\'');
eventSender.keyDown('Z');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'KeyZ\'') ;
eventSender.keyDown('z');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'KeyZ\'');
eventSender.keyDown('0');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'Digit0\'');
shouldEvaluateTo('lastKeyboardUpEvent.code', '\'Digit0\'');
shouldEvaluateTo('lastKeyboardPressEvent.code', '\'Digit0\'');
eventSender.keyDown('4');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'Digit4\'');
eventSender.keyDown('9');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'Digit9\'');
eventSender.keyDown('Backspace');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'Backspace\'');
debug('Functional Keys');
eventSender.keyDown('ControlLeft');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'ControlLeft\'');
shouldEvaluateTo('lastKeyboardUpEvent.code', '\'ControlLeft\'');
eventSender.keyDown('ControlRight');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'ControlRight\'');
eventSender.keyDown('ShiftLeft');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'ShiftLeft\'');
eventSender.keyDown('ShiftRight');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'ShiftRight\'');
eventSender.keyDown('AltLeft');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'AltLeft\'');
eventSender.keyDown('AltRight');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'AltRight\'');
eventSender.keyDown('Enter');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'Enter\'');
eventSender.keyDown('ContextMenu');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'ContextMenu\'');
eventSender.keyDown(' ');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'Space\'');
shouldEvaluateTo('lastKeyboardUpEvent.code', '\'Space\'');
shouldEvaluateTo('lastKeyboardPressEvent.code', '\'Space\'');
eventSender.keyDown('Tab');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'Tab\'');
shouldEvaluateTo('lastKeyboardUpEvent.code', '\'Tab\'');
debug('Control Pad');
eventSender.keyDown('Insert');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'Insert\'');
shouldEvaluateTo('lastKeyboardUpEvent.code', '\'Insert\'');
eventSender.keyDown('Delete');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'Delete\'');
eventSender.keyDown('Home');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'Home\'');
eventSender.keyDown('End');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'End\'');
eventSender.keyDown('PageUp');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'PageUp\'');
eventSender.keyDown('PageDown');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'PageDown\'');
shouldEvaluateTo('lastKeyboardUpEvent.code', '\'PageDown\'');
debug('Arrow Pad Section');
eventSender.keyDown('ArrowRight');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'ArrowRight\'');
shouldEvaluateTo('lastKeyboardUpEvent.code', '\'ArrowRight\'');
eventSender.keyDown('ArrowDown');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'ArrowDown\'');
eventSender.keyDown('ArrowLeft');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'ArrowLeft\'');
eventSender.keyDown('ArrowUp');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'ArrowUp\'');
shouldEvaluateTo('lastKeyboardUpEvent.code', '\'ArrowUp\'');
debug('Number Pad Section');
eventSender.keyDown('NumLock');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'NumLock\'');
shouldEvaluateTo('lastKeyboardUpEvent.code', '\'NumLock\'');
debug('Function Section');
eventSender.keyDown('Escape');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'Escape\'');
shouldEvaluateTo('lastKeyboardUpEvent.code', '\'Escape\'');
eventSender.keyDown('F1');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'F1\'');
eventSender.keyDown('F6');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'F6\'');
eventSender.keyDown('F12');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'F12\'');
eventSender.keyDown('PrintScreen');
shouldEvaluateTo('lastKeyboardDownEvent.code', '\'PrintScreen\'');
shouldEvaluateTo('lastKeyboardUpEvent.code', '\'PrintScreen\'');
}
</script>