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

Side by Side Diff: third_party/WebKit/LayoutTests/fast/events/keyboardevent-key.html

Issue 1948763002: [EventSender] Fill DomKey in synthetic key events (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove two more keyboardevent-key-expected.txt Created 4 years, 7 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 unified diff | Download patch
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <link rel="help" href="http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardE vent-key" /> 2 <script src="../../resources/testharness.js"></script>
3 <script src="../../resources/js-test.js"></script>- 3 <script src="../../resources/testharnessreport.js"></script>
4 <textarea id="textarea"></textarea>
5 <script> 4 <script>
6 description('Tests KeyboardEvent.key attribute'); 5 // Note: This test is only testing synthetic DomKey for eventSender, for real
7 var textarea = document.getElementById('textarea'); 6 // DomKey generated on each platform please refer to individual tests.
8 textarea.addEventListener('keydown', recordKeyEvent, false); 7 // e.g. platform_key_map_win_unittest.cc, web_input_event_builders_mac_unittest. mm
9 textarea.addEventListener('keyup', recordKeyEvent, false); 8 test(function() {
10 textarea.addEventListener('keypress', recordKeyEvent, false); 9 if (!window.eventSender) {
11 textarea.focus(); 10 document.write('This test requires eventSender');
11 return;
12 }
12 13
13 var lastKeyboardDownEvent, lastKeyboardPressEvent, lastKeyboardUpEvent; 14 var lastKeyDown, lastKeyPress, lastKeyUp;
15 function recordKeyEvent(event) {
16 if (event.type === "keydown")
17 lastKeyDown = event;
18 else if (event.type === "keypress")
19 lastKeyPress = event;
20 else if (event.type === "keyup")
21 lastKeyUp = event;
22 }
23 document.addEventListener('keydown', recordKeyEvent, false);
24 document.addEventListener('keypress', recordKeyEvent, false);
25 document.addEventListener('keyup', recordKeyEvent, false);
14 26
15 function recordKeyEvent(ev) { 27
16 if (window.eventSender) { 28 function testDomKey(keyString, expectedDomKey, shouldTestKeyPress, modifiers ) {
17 if (ev.type === "keydown") 29 lastKeyDown = null;
18 lastKeyboardDownEvent = ev; 30 lastKeyPress = null;
19 else if (ev.type === "keyup") 31 lastKeyUp = null;
20 lastKeyboardUpEvent = ev; 32 eventSender.keyDown(keyString, modifiers);
21 else if (ev.type === "keypress") 33 assert_equals(lastKeyDown.key, expectedDomKey);
22 lastKeyboardPressEvent = ev; 34 assert_equals(lastKeyUp.key, expectedDomKey);
23 } else { 35 if (shouldTestKeyPress)
24 debug('Type=' + ev.type + ',' + 'key=' + ev.key); 36 assert_equals(lastKeyPress.key, expectedDomKey);
25 } 37 }
26 } 38 // Alpha&Numeric Keys
39 testDomKey('A', 'A', true, ['shiftKey']);
40 testDomKey('g', 'g', true);
41 testDomKey('h', 'h', true);
42 testDomKey('1', '1', true);
43 testDomKey('(', '(', true, ['shiftKey']);
27 44
28 if (window.eventSender) { 45 // Modifier Keys
29 debug('Modifier Keys'); 46 testDomKey('leftControl', 'Control', false);
30 eventSender.keyDown('leftControl'); 47 testDomKey('rightControl', 'Control', false);
31 shouldEvaluateTo('lastKeyboardUpEvent.key', '\'Control\''); 48 testDomKey('leftShift', 'Shift', false);
32 eventSender.keyDown('rightControl'); 49 testDomKey('rightShift', 'Shift', false);
33 shouldEvaluateTo('lastKeyboardDownEvent.key', '\'Control\''); 50 testDomKey('leftAlt', 'Alt', false);
34 eventSender.keyDown('leftShift'); 51 testDomKey('rightAlt', 'Alt', false);
35 shouldEvaluateTo('lastKeyboardDownEvent.key', '\'Shift\''); 52 testDomKey('numLock', 'NumLock', false);
36 eventSender.keyDown('rightShift');
37 shouldEvaluateTo('lastKeyboardDownEvent.key', '\'Shift\'');
38 eventSender.keyDown('leftAlt');
39 shouldEvaluateTo('lastKeyboardDownEvent.key', '\'Alt\'');
40 eventSender.keyDown('rightAlt');
41 shouldEvaluateTo('lastKeyboardDownEvent.key', '\'AltGraph\'');
42 eventSender.keyDown('numLock');
43 shouldEvaluateTo('lastKeyboardDownEvent.key', '\'NumLock\'');
44 shouldEvaluateTo('lastKeyboardUpEvent.key', '\'NumLock\'');
45 53
46 debug('Whitespace Keys'); 54 // Whitespace Keys
47 eventSender.keyDown('\n'); 55 testDomKey('\n', 'Enter', true);
48 shouldEvaluateTo('lastKeyboardDownEvent.key', '\'Enter\''); 56 testDomKey('\t', 'Tab', false);
49 eventSender.keyDown('\t');
50 shouldEvaluateTo('lastKeyboardDownEvent.key', '\'Tab\'');
51 shouldEvaluateTo('lastKeyboardUpEvent.key', '\'Tab\'');
52 57
53 debug('Navigation keys'); 58 // Navigation keys
54 eventSender.keyDown('rightArrow'); 59 testDomKey('rightArrow', 'ArrowRight', false);
55 shouldEvaluateTo('lastKeyboardDownEvent.key', '\'ArrowRight\''); 60 testDomKey('downArrow', 'ArrowDown', false);
56 shouldEvaluateTo('lastKeyboardUpEvent.key', '\'ArrowRight\''); 61 testDomKey('leftArrow', 'ArrowLeft', false);
57 eventSender.keyDown('downArrow'); 62 testDomKey('upArrow', 'ArrowUp', false);
58 shouldEvaluateTo('lastKeyboardDownEvent.key', '\'ArrowDown\''); 63 testDomKey('home', 'Home', false);
59 eventSender.keyDown('leftArrow'); 64 testDomKey('end', 'End', false);
60 shouldEvaluateTo('lastKeyboardDownEvent.key', '\'ArrowLeft\''); 65 testDomKey('pageUp', 'PageUp', false);
61 eventSender.keyDown('upArrow'); 66 testDomKey('pageDown', 'PageDown', false);
62 shouldEvaluateTo('lastKeyboardDownEvent.key', '\'ArrowUp\'');
63 shouldEvaluateTo('lastKeyboardUpEvent.key', '\'ArrowUp\'');
64 eventSender.keyDown('home');
65 shouldEvaluateTo('lastKeyboardDownEvent.key', '\'Home\'');
66 eventSender.keyDown('end');
67 shouldEvaluateTo('lastKeyboardDownEvent.key', '\'End\'');
68 eventSender.keyDown('pageUp');
69 shouldEvaluateTo('lastKeyboardDownEvent.key', '\'PageUp\'');
70 eventSender.keyDown('pageDown');
71 shouldEvaluateTo('lastKeyboardDownEvent.key', '\'PageDown\'');
72 shouldEvaluateTo('lastKeyboardUpEvent.key', '\'PageDown\'');
73 67
74 debug('Editing Keys'); 68 // Editing Keys
75 eventSender.keyDown('backspace'); 69 testDomKey('backspace', 'Backspace', false);
76 shouldEvaluateTo('lastKeyboardDownEvent.code', '\'Backspace\''); 70 testDomKey('insert', 'Insert', false);
77 eventSender.keyDown('insert'); 71 testDomKey('delete', 'Delete', false);
78 shouldEvaluateTo('lastKeyboardDownEvent.key', '\'Insert\'');
79 shouldEvaluateTo('lastKeyboardUpEvent.key', '\'Insert\'');
80 eventSender.keyDown('delete');
81 shouldEvaluateTo('lastKeyboardDownEvent.key', '\'Delete\'');
82 72
83 debug('Device Keys'); 73 // Device Keys
84 eventSender.keyDown('printScreen'); 74 testDomKey('printScreen', 'PrintScreen', false);
85 shouldEvaluateTo('lastKeyboardDownEvent.key', '\'PrintScreen\'');
86 shouldEvaluateTo('lastKeyboardUpEvent.key', '\'PrintScreen\'');
87 75
88 debug('General Purpose Function Section'); 76 // General Purpose Function Section
89 eventSender.keyDown('F1'); 77 testDomKey('F1', 'F1', false);
90 shouldEvaluateTo('lastKeyboardDownEvent.key', '\'F1\''); 78 testDomKey('F6', 'F6', false);
91 eventSender.keyDown('F6'); 79 testDomKey('F12', 'F12', false);
92 shouldEvaluateTo('lastKeyboardDownEvent.key', '\'F6\'');
93 eventSender.keyDown('F12');
94 shouldEvaluateTo('lastKeyboardDownEvent.key', '\'F12\'');
95 80
96 debug('UI Keys'); 81 // UI Keys
97 eventSender.keyDown('escape'); 82 testDomKey('escape', 'Escape', false);
98 shouldEvaluateTo('lastKeyboardDownEvent.key', '\'Escape\''); 83 testDomKey('menu', 'ContextMenu', false);
99 shouldEvaluateTo('lastKeyboardUpEvent.key', '\'Escape\''); 84 }, 'Testing synthetic DomKey for eventSender.');
100 eventSender.keyDown('menu');
101 shouldEvaluateTo('lastKeyboardDownEvent.key', '\'MediaApps\'');
102 }
103 </script> 85 </script>
OLDNEW
« no previous file with comments | « components/test_runner/event_sender.cc ('k') | third_party/WebKit/LayoutTests/fast/events/keyboardevent-key-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698