2 <?xml-stylesheet href=
"chrome://global/skin" type=
"text/css"?>
3 <?xml-stylesheet href=
"chrome://mochikit/content/tests/SimpleTest/test.css"
5 <window title=
"Key event tests"
7 xmlns=
"http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
9 <script src=
"chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" />
10 <script src=
"chrome://mochikit/content/tests/SimpleTest/NativeKeyCodes.js" />
11 <script src=
"chrome://mochikit/content/tests/SimpleTest/EventUtils.js" />
14 <command id=
"expectedCommand" oncommand=
"this.activeCount++" disabled=
"true"/>
15 <command id=
"unexpectedCommand" oncommand=
"this.activeCount++" disabled=
"true"/>
16 <command id=
"expectedReservedCommand" oncommand=
"this.activeCount++" reserved=
"true" disabled=
"true"/>
19 <key id=
"unshiftedKey" key=
";" modifiers=
"accel" command=
"unexpectedCommand"/>
20 <key id=
"shiftedKey" key=
":" modifiers=
"accel" command=
"unexpectedCommand"/>
21 <key id=
"commandOptionF" key='f'
modifiers=
"accel,alt" command=
"unexpectedCommand"/>
22 <key id=
"question" key='?'
modifiers=
"accel" command=
"unexpectedCommand"/>
23 <key id=
"unshiftedX" key=
"x" modifiers=
"accel" command=
"unexpectedCommand"/>
24 <key id=
"shiftedX" key=
"X" modifiers=
"accel,shift" command=
"unexpectedCommand"/>
25 <key id=
"ctrlAltA" key=
"A" modifiers=
"accel,alt" command=
"unexpectedCommand"/>
26 <key id=
"unshiftedPlus" key=
"+" modifiers=
"accel" command=
"unexpectedCommand"/>
27 <key id=
"reservedUnshiftedKey" key=
"'" modifiers=
"accel" command=
"unexpectedCommand"/>
28 <key id=
"reservedShiftedKey" key='
"' modifiers="accel
" command="unexpectedCommand
"/>
31 <browser id="browser
" type="content
" src="data:text/html;charset=utf-
8,
<button id='content_button'
>button
</button
>" width="200" height="32"/>
33 <body xmlns="http://www.w3.org/
1999/xhtml
">
35 <!-- for some reason, if we don't have 'accesskey' here, adding it dynamically later
37 <button id="button
" accesskey="z
">Hello</button>
38 <input type="text
" id="textbox
" value=""/>
40 <div id="content
" style="display: none
">
47 <script class="testbody
" type="application/javascript
">
49 const IS_MAC = navigator.platform.indexOf("Mac
") == 0;
50 const IS_WIN = navigator.platform.indexOf("Win
") == 0;
52 IS_WIN ? parseFloat(Services.sysinfo.getProperty("version
")) : 0;
56 function isModifierKeyEvent(aEvent)
80 * Firefox infobar UI can have access keys which conflict with this test. Really
81 * stupid workaround until we can move this test into its own chrome window.
83 function clearInfobars()
85 var browser = window.top.docShell.chromeEventHandler;
86 var chromeWin = browser.ownerGlobal;
87 var nb = chromeWin.gBrowser.getNotificationBox(browser);
88 for (let n of nb.allNotifications) {
89 nb.removeNotification(n, true);
93 function eventToString(aEvent)
95 var name = aEvent.layout.name + " keyCode=
" +
96 aEvent.keyCode + " (
0x
" + aEvent.keyCode.toString(16).toUpperCase() +
97 ") chars='
" + aEvent.chars + "'
";
98 if (typeof aEvent.unmodifiedChars === "string
") {
99 name += " unmodifiedChars='
" + aEvent.unmodifiedChars + "'
";
101 if (aEvent.modifiers.capsLockKey) {
102 name += " [CapsLock]
";
104 if (aEvent.modifiers.shiftKey) {
107 if (aEvent.modifiers.shiftRightKey) {
108 name += " [Right Shift]
";
110 if (aEvent.modifiers.ctrlKey) {
113 if (aEvent.modifiers.ctrlRightKey) {
114 name += " [Right Ctrl]
";
116 if (aEvent.modifiers.altKey) {
119 if (aEvent.modifiers.altGrKey) {
122 if (aEvent.modifiers.altRightKey) {
123 name += " [Right Alt]
";
125 if (aEvent.modifiers.metaKey) {
126 name += " [Command]
";
128 if (aEvent.modifiers.metaRightKey) {
129 name += " [Right Command]
";
135 function getPhase(aDOMEvent)
137 switch (aDOMEvent.eventPhase) {
140 case aDOMEvent.CAPTURING_PHASE:
142 case aDOMEvent.AT_TARGET:
144 case aDOMEvent.BUBBLING_PHASE:
151 function eventTargetToString(aEventTarget)
153 if (aEventTarget.navigator) {
156 switch (aEventTarget.nodeType) {
157 case Node.ELEMENT_NODE:
158 return "element (
" + aEventTarget.tagName + ")
";
159 case Node.DOCUMENT_NODE:
166 function synthesizeKey(aEvent, aFocusElementId, aCallback)
168 if (aFocusElementId.startsWith("content_
")) {
169 var browser = document.getElementById("browser
");
170 browser.contentDocument.getElementById(aFocusElementId).focus();
172 document.getElementById(aFocusElementId).focus();
175 return synthesizeNativeKey(aEvent.layout, aEvent.keyCode,
177 aEvent.chars, aEvent.unmodifiedChars,
181 // Test the charcodes and modifiers being delivered to keypress handlers and
182 // also keydown/keyup events too.
183 function* runKeyEventTests()
186 var eventList, keyDownFlags, keyUpFlags, testingEvent, expectedDOMKeyCode;
187 const kShiftFlag = 0x1;
188 const kCtrlFlag = 0x2;
189 const kAltFlag = 0x4;
190 const kMetaFlag = 0x8;
191 const kNumLockFlag = 0x10;
192 const kCapsLockFlag = 0x20;
193 const kAltGraphFlag = 0x40;
195 function onKeyEvent(e)
197 /* eslint-disable-next-line no-shadow */
198 function removeFlag(e, aFlag)
200 if (e.type == "keydown
") {
201 let oldValue = keyDownFlags;
202 keyDownFlags &= ~aFlag;
203 return oldValue != keyDownFlags;
204 } else if (e.type == "keyup
") {
205 let oldValue = keyUpFlags;
206 keyUpFlags &= ~aFlag;
207 return oldValue != keyUpFlags;
212 /* eslint-disable-next-line no-shadow, complexity */
213 function isStateChangingModifierKeyEvent(e)
216 if (e.type == "keydown
") {
217 flags = keyDownFlags ^ keyUpFlags;
218 } else if (e.type == "keyup
") {
223 is(e.ctrlKey, (flags & kCtrlFlag) != 0,
224 currentTestName + ", Ctrl of Shift
" + e.type + " event mismatch
");
225 is(e.metaKey, (flags & kMetaFlag) != 0,
226 currentTestName + ", Command of Shift
" + e.type + " event mismatch
");
227 is(e.altKey, (flags & kAltFlag) != 0,
228 currentTestName + ", Alt of Shift
" + e.type + " event mismatch
");
229 is(e.shiftKey, e.type == "keydown
",
230 currentTestName + ", Shift of Shift
" + e.type + " event mismatch
");
231 // AltGr on Windows is always pressed after and released before Shift key operation.
232 is(e.getModifierState("AltGraph
"), (IS_MAC && e.altKey),
233 currentTestName + ", AltGraph of Shift
" + e.type + " event mismatch
");
234 return (testingEvent.modifiers.shiftKey || testingEvent.modifiers.shiftRightKey) &&
235 removeFlag(e, kShiftFlag) && expectedDOMKeyCode != e.keyCode;
237 is(e.ctrlKey, e.type == "keydown
",
238 currentTestName + ", Ctrl of Ctrl
" + e.type + " event mismatch
");
239 is(e.metaKey, (flags & kMetaFlag) != 0,
240 currentTestName + ", Command of Ctrl
" + e.type + " event mismatch
");
241 // When AltGr key is released on Windows, ControlLeft keyup event
242 // is followed by AltRight keyup event. However, altKey should be
243 // false in such case.
244 is(e.altKey, (flags & kAltFlag) != 0 && !(IS_WIN && !!testingEvent.modifiers.altGrKey),
245 currentTestName + ", Alt of Ctrl
" + e.type + " event mismatch
");
246 is(e.shiftKey, (flags & kShiftFlag) != 0,
247 currentTestName + ", Shift of Ctrl
" + e.type + " event mismatch
");
248 is(e.getModifierState("AltGraph
"),
249 (IS_WIN && !!testingEvent.modifiers.altGrKey && e.type == "keyup
") || (IS_MAC && e.altKey),
250 currentTestName + ", AltGraph of Ctrl
" + e.type + " event mismatch
");
251 return (testingEvent.modifiers.ctrlKey || testingEvent.modifiers.ctrlRightKey ||
252 (IS_WIN && !!testingEvent.modifiers.altGrKey)) &&
253 removeFlag(e, kCtrlFlag) && expectedDOMKeyCode != e.keyCode;
255 is(e.ctrlKey, (flags & kCtrlFlag) != 0 && !(IS_WIN && !!testingEvent.modifiers.altGrKey),
256 currentTestName + ", Ctrl of Alt
" + e.type + " event mismatch
");
257 is(e.metaKey, (flags & kMetaFlag) != 0,
258 currentTestName + ", Command of Alt
" + e.type + " event mismatch
");
259 is(e.altKey, e.type == "keydown
" && !(IS_WIN && !!testingEvent.modifiers.altGrKey),
260 currentTestName + ", Alt of Alt
" + e.type + " event mismatch
");
261 is(e.shiftKey, (flags & kShiftFlag) != 0,
262 currentTestName + ", Shift of Alt
" + e.type + " event mismatch
");
263 is(e.getModifierState("AltGraph
"),
264 e.type == "keydown
" && ((IS_WIN && !!testingEvent.modifiers.altGrKey) || (IS_MAC && e.altKey)),
265 currentTestName + ", AltGraph of Alt
" + e.type + " event mismatch
");
266 return (testingEvent.modifiers.altKey || testingEvent.modifiers.altRightKey ||
267 (IS_WIN && !!testingEvent.modifiers.altGrKey)) &&
268 removeFlag(e, kAltFlag) && expectedDOMKeyCode != e.keyCode;
270 // On Windows, AltGraph events are fired only when AltRight key is
271 // pressed when active keyboard layout maps AltGraph to AltRight.
272 // Note that AltGraph is represented with pressing both Control key
273 // and Alt key. Therefore, when AltGraph keyboard event is fired,
274 // both ctrlKey and altKey are always false on Windows.
275 is(e.ctrlKey, (flags & kCtrlFlag) != 0 && !IS_WIN,
276 currentTestName + ", Ctrl of AltGraph
" + e.type + " event mismatch
");
277 is(e.metaKey, (flags & kMetaFlag) != 0,
278 currentTestName + ", Command of AltGraph
" + e.type + " event mismatch
");
279 is(e.altKey, (flags & kAltFlag) != 0 && !IS_WIN,
280 currentTestName + ", Alt of AltGraph
" + e.type + " event mismatch
");
281 is(e.shiftKey, (flags & kShiftFlag) != 0,
282 currentTestName + ", Shift of Ctrl
" + e.type + " event mismatch
");
283 is(e.getModifierState("AltGraph
"), e.type === "keydown
",
284 currentTestName + ", AltGraph of AltGraph
" + e.type + " event mismatch
");
285 return IS_WIN && testingEvent.modifiers.altGrKey &&
286 removeFlag(e, kAltGraphFlag) && expectedDOMKeyCode != e.keyCode;
288 is(e.ctrlKey, (flags & kCtrlFlag) != 0,
289 currentTestName + ", Ctrl of Command
" + e.type + " event mismatch
");
290 is(e.metaKey, e.type == "keydown
",
291 currentTestName + ", Command of Command
" + e.type + " event mismatch
");
292 is(e.altKey, (flags & kAltFlag) != 0,
293 currentTestName + ", Alt of Command
" + e.type + " event mismatch
");
294 is(e.shiftKey, (flags & kShiftFlag) != 0,
295 currentTestName + ", Shift of Command
" + e.type + " event mismatch
");
296 is(e.getModifierState("AltGraph
"),
297 (IS_WIN && (flags & kAltGraphFlag) != 0) || (IS_MAC && e.altKey),
298 currentTestName + ", AltGraph of Meta
" + e.type + " event mismatch
");
299 return (testingEvent.modifiers.metaKey || testingEvent.modifiers.metaRightKey) &&
300 removeFlag(e, kMetaFlag) && expectedDOMKeyCode != e.keyCode;
302 is(e.ctrlKey, (flags & kCtrlFlag) != 0,
303 currentTestName + ", Ctrl of NumLock
" + e.type + " event mismatch
");
304 is(e.metaKey, (flags & kMetaFlag) != 0,
305 currentTestName + ", Command of NumLock
" + e.type + " event mismatch
");
306 is(e.altKey, (flags & kAltFlag) != 0,
307 currentTestName + ", Alt of NumLock
" + e.type + " event mismatch
");
308 is(e.shiftKey, (flags & kShiftFlag) != 0,
309 currentTestName + ", Shift of NumLock
" + e.type + " event mismatch
");
310 is(e.getModifierState("AltGraph
"), false,
311 currentTestName + ", AltGraph of NumLock
" + e.type + " event mismatch
");
312 // AltGr on Windows is always pressed after and released before NumLock key operation.
313 return (testingEvent.modifiers.numLockKey || testingEvent.modifiers.numericKeyPadKey) &&
314 removeFlag(e, kNumLockFlag) && expectedDOMKeyCode != e.keyCode;
316 is(e.ctrlKey, (flags & kCtrlFlag) != 0,
317 currentTestName + ", Ctrl of CapsLock
" + e.type + " event mismatch
");
318 is(e.metaKey, (flags & kMetaFlag) != 0,
319 currentTestName + ", Command of CapsLock
" + e.type + " event mismatch
");
320 is(e.altKey, (flags & kAltFlag) != 0,
321 currentTestName + ", Alt of CapsLock
" + e.type + " event mismatch
");
322 is(e.shiftKey, (flags & kShiftFlag) != 0,
323 currentTestName + ", Shift of CapsLock
" + e.type + " event mismatch
");
324 // AltGr on Windows is always pressed after and released before CapsLock key operation.
325 is(e.getModifierState("AltGraph
"), false,
326 currentTestName + ", AltGraph of CapsLock
" + e.type + " event mismatch
");
327 return testingEvent.modifiers.capsLockKey &&
328 removeFlag(e, kCapsLockFlag) && expectedDOMKeyCode != e.keyCode;
333 // Ignore the state changing key events which is fired by the testing event.
334 if (!isStateChangingModifierKeyEvent(e))
338 function consumer(aEvent)
340 aEvent.preventDefault();
343 const SHOULD_DELIVER_KEYDOWN = 0x1;
344 const SHOULD_DELIVER_KEYPRESS = 0x2;
345 const SHOULD_DELIVER_KEYUP = 0x4;
346 const SHOULD_DELIVER_ALL = SHOULD_DELIVER_KEYDOWN |
347 SHOULD_DELIVER_KEYPRESS |
348 SHOULD_DELIVER_KEYUP;
349 const SHOULD_DELIVER_KEYDOWN_KEYUP = SHOULD_DELIVER_KEYDOWN |
350 SHOULD_DELIVER_KEYUP;
351 const SHOULD_DELIVER_KEYDOWN_KEYPRESS = SHOULD_DELIVER_KEYDOWN |
352 SHOULD_DELIVER_KEYPRESS;
354 // The first parameter is the complete input event. The second parameter is
355 // what to test against. The third parameter is which key events should be
356 // delived for the event.
357 // @param aExpectedKeyValues Can be string or array of string.
358 // If all keyboard events have same key value,
359 // specify it as string. Otherwise, specify
360 // each key value in array.
361 function testKey(aEvent, aExpectedKeyValues, aExpectedCodeValue,
362 aExpectedGeckoKeyCode, aExpectGeckoChar,
363 aShouldDelivedEvent, aExpectLocation)
365 ok(aExpectedGeckoKeyCode != undefined, "keycode is undefined
");
368 // The modifier key events which are fired for state changing are har to
369 // test. We should ignore them for now.
370 keyDownFlags = keyUpFlags = 0;
372 // On Mac, nsChildView doesn't generate modifier keydown/keyup events for
373 // state changing for synthesizeNativeKeyEvent.
374 if (aEvent.modifiers.shiftKey || aEvent.modifiers.shiftRightKey) {
375 keyDownFlags |= kShiftFlag;
377 if (aEvent.modifiers.ctrlKey || aEvent.modifiers.ctrlRightKey ||
378 (IS_WIN && aEvent.modifiers.altGrKey)) {
379 keyDownFlags |= kCtrlFlag;
381 if (aEvent.modifiers.altKey || aEvent.modifiers.altRightKey) {
382 keyDownFlags |= kAltFlag;
384 if (aEvent.modifiers.altGrKey) {
385 keyDownFlags |= kAltGraphFlag;
387 if (aEvent.modifiers.metaKey || aEvent.modifiers.metaRightKey) {
388 keyDownFlags |= kMetaFlag;
390 if (aEvent.modifiers.numLockKey || aEvent.modifiers.numericKeyPadKey) {
391 keyDownFlags |= kNumLockFlag;
393 if (aEvent.modifiers.capsLockKey) {
394 keyDownFlags |= kCapsLockFlag;
396 keyUpFlags = keyDownFlags;
399 testingEvent = aEvent;
400 expectedDOMKeyCode = aExpectedGeckoKeyCode;
402 currentTestName = eventToString(aEvent);
403 ok(true, "Starting:
" + currentTestName);
405 // eslint-disable-next-line complexity
406 return synthesizeKey(aEvent, "button
", function() {
408 var expectEventTypeList = [];
409 if (aShouldDelivedEvent & SHOULD_DELIVER_KEYDOWN)
410 expectEventTypeList.push("keydown
");
411 if (aShouldDelivedEvent & SHOULD_DELIVER_KEYPRESS) {
412 expectEventTypeList.push("keypress
");
413 for (let i = 1; i < aExpectGeckoChar.length; i++) {
414 expectEventTypeList.push("keypress
");
417 if (aShouldDelivedEvent & SHOULD_DELIVER_KEYUP)
418 expectEventTypeList.push("keyup
");
419 is(eventList.length, expectEventTypeList.length,
420 currentTestName + ", wrong number of key events
");
422 var longerLength = Math.max(eventList.length, expectEventTypeList.length);
423 var keypressCount = 0;
424 for (let i = 0; i < longerLength; i++) {
425 var firedEventType = i < eventList.length ? eventList[i].type : "";
426 var expectEventType = i < expectEventTypeList.length ? expectEventTypeList[i] : "";
427 if (firedEventType != "") {
428 is(firedEventType, expectEventType,
429 currentTestName + ",
" + expectEventType + " should be fired
");
431 is(firedEventType, expectEventType,
432 currentTestName + ", a needed event is not fired
");
435 if (firedEventType != "") {
436 var expectedKeyValue =
437 // eslint-disable-next-line no-nested-ternary
438 typeof aExpectedKeyValues === "string
" ? aExpectedKeyValues :
439 i < aExpectedKeyValues.length ? aExpectedKeyValues[i] :
442 var e = eventList[i];
451 // XXX To check modifier state of modifiers, we need to check
452 // e.type since modifier key may change modifier state.
453 // However, doing it makes the following check more
454 // complicated. So, we ignore the modifier state of
455 // modifier keydown/keyup events for now.
458 is(e.shiftKey, !!(aEvent.modifiers.shiftKey || aEvent.modifiers.shiftRightKey),
459 currentTestName + ", Shift of
" + e.type + " of
" + e.code + " mismatch
");
460 is(e.metaKey, !!(aEvent.modifiers.metaKey || aEvent.modifiers.metaRightKey),
461 currentTestName + ", Command of
" + e.type + " of
" + e.code + " mismatch
");
462 var isControlPressed = !!(aEvent.modifiers.ctrlKey || aEvent.modifiers.ctrlRightKey);
463 var isAltPressed = !!(aEvent.modifiers.altKey || aEvent.modifiers.altRightKey);
464 var isAltGraphExpected =
465 !!aEvent.modifiers.altGrKey ||
466 (IS_WIN && aEvent.layout.hasAltGrOnWin &&
467 isControlPressed && isAltPressed &&
468 (aEvent.isInputtingCharacters || expectedKeyValue == "Dead
")) ||
469 (IS_MAC && isAltPressed);
470 var isControlExpected = !(IS_WIN && isAltGraphExpected) && isControlPressed;
471 var isAltExpected = !(IS_WIN && isAltGraphExpected) && isAltPressed;
472 if (e.type == "keypress
" && aEvent.isInputtingCharacters) {
473 isControlExpected = false;
474 isAltExpected = false;
476 is(e.ctrlKey, isControlExpected,
477 currentTestName + ", Ctrl of
" + e.type + " of
" + e.code + " mismatch
");
478 is(e.altKey, isAltExpected,
479 currentTestName + ", Alt of
" + e.type + " of
" + e.code + " mismatch
");
480 is(e.getModifierState("AltGraph
"), isAltGraphExpected,
481 currentTestName + ", AltGraph of
" + e.type + " of
" + e.code + " mismatch
");
485 is(e.key, expectedKeyValue, currentTestName + ", wrong key value
");
486 is(e.code, aExpectedCodeValue, currentTestName + ", wrong code value
");
488 if (aExpectGeckoChar.length && e.type == "keypress
") {
489 is(e.charCode, aExpectGeckoChar.charCodeAt(keypressCount++),
490 currentTestName + ", charcode
");
491 if (aExpectedGeckoKeyCode >= 0) {
492 if (aExpectGeckoChar) {
494 currentTestName + ", wrong keycode
");
496 is(e.keyCode, aExpectedGeckoKeyCode,
497 currentTestName + ", wrong keycode
");
502 currentTestName + ", no charcode
");
503 if (aExpectedGeckoKeyCode >= 0) {
504 is(e.keyCode, aExpectedGeckoKeyCode,
505 currentTestName + ", wrong keycode
");
508 is(e.location, aExpectLocation,
509 currentTestName + ", wrong location
");
517 // These tests have to be per-plaform.
518 document.addEventListener("keydown
", onKeyEvent);
519 document.addEventListener("keypress
", onKeyEvent);
520 document.addEventListener("keyup
", onKeyEvent);
521 // Prevent almost all shortcut key handlers.
522 SpecialPowers.addSystemEventListener(document, "keypress
", consumer, true);
526 document.removeEventListener("keydown
", onKeyEvent);
527 document.removeEventListener("keypress
", onKeyEvent);
528 document.removeEventListener("keyup
", onKeyEvent);
529 SpecialPowers.removeSystemEventListener(document, "keypress
", consumer, true);
532 function* testKeysOnMac()
534 // On Mac, you can produce event records for any desired keyboard input
535 // by running with NSPR_LOG_MODULES=TextInputHandlerWidgets:5 and typing
536 // into the browser. We will dump the key event fields to the console
537 // (Find TextInputHandler::HandleKeyDownEvent or
538 // TextInputHandler::HandleKeyUpEvent in the log). Use the International system
539 // preferences widget to enable other keyboard layouts and select them from the
540 // input menu to see what keyboard events they generate.
541 // Note that it's possible to send bogus key events here, e.g.
542 // {keyCode:0, chars:"z
", unmodifiedChars:"P
"} --- sendNativeKeyEvent
543 // makes no attempt to verify that the keyCode matches the characters. So only
544 // test key event records that you saw Cocoa send.
547 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A,
548 modifiers:{metaKey:1}, chars:"a
", unmodifiedChars:"a
"},
549 "a
", "KeyA
", KeyboardEvent.DOM_VK_A, "a
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
550 // Shift-cmd gives us the shifted character
551 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A,
552 modifiers:{metaKey:1, shiftKey:1}, chars:"a
", unmodifiedChars:"A
"},
553 "a
", "KeyA
", KeyboardEvent.DOM_VK_A, "A
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
554 // Ctrl-cmd gives us the unshifted character
555 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A,
556 modifiers:{metaKey:1, ctrlKey:1}, chars:"\u0001
", unmodifiedChars:"a
"},
557 "a
", "KeyA
", KeyboardEvent.DOM_VK_A, "a
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
558 // Alt-cmd gives us the shifted character
559 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A,
560 modifiers:{metaKey:1, altKey:1}, chars:"\u00e5
", unmodifiedChars:"a
"},
561 "\u00e5
", "KeyA
", KeyboardEvent.DOM_VK_A, "\u00e5
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
562 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A,
563 modifiers:{metaKey:1, altKey:1, shiftKey:1}, chars:"\u00c5
", unmodifiedChars:"a
"},
564 "\u00c5
", "KeyA
", KeyboardEvent.DOM_VK_A, "\u00c5
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
566 // Greek ctrl keys produce Latin charcodes
567 yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:MAC_VK_ANSI_A,
568 modifiers:{ctrlKey:1}, chars:"\u0001
", unmodifiedChars:"\u03b1
"},
569 "\u03b1
", "KeyA
", KeyboardEvent.DOM_VK_A, "a
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
570 yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:MAC_VK_ANSI_A,
571 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0001
", unmodifiedChars:"\u0391
"},
572 "\u0391
", "KeyA
", KeyboardEvent.DOM_VK_A, "A
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
574 // Greek command keys
575 yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:MAC_VK_ANSI_A,
576 modifiers:{metaKey:1}, chars:"a
", unmodifiedChars:"\u03b1
"},
577 "a
", "KeyA
", KeyboardEvent.DOM_VK_A, "a
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
578 // Shift-cmd gives us the shifted character
579 yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:MAC_VK_ANSI_A,
580 modifiers:{metaKey:1, shiftKey:1}, chars:"a
", unmodifiedChars:"\u0391
"},
581 "a
", "KeyA
", KeyboardEvent.DOM_VK_A, "A
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
583 // Ctrl-cmd gives us the unshifted character
584 yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:MAC_VK_ANSI_A,
585 modifiers:{metaKey:1, ctrlKey:1}, chars:"\u0001
", unmodifiedChars:"\u03b1
"},
586 "\u03b1
", "KeyA
", KeyboardEvent.DOM_VK_A, "a
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
587 // Alt-cmd gives us the shifted character
588 yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:MAC_VK_ANSI_A,
589 modifiers:{metaKey:1, altKey:1}, chars:"\u00a8
", unmodifiedChars:"\u03b1
"},
590 "\u00a8
", "KeyA
", KeyboardEvent.DOM_VK_A, "\u00a8
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
591 yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:MAC_VK_ANSI_A,
592 modifiers:{metaKey:1, altKey:1, shiftKey:1}, chars:"\u00b9
", unmodifiedChars:"\u0391
"},
593 "\u00b9
", "KeyA
", KeyboardEvent.DOM_VK_A, "\u00b9
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
596 yield testKey({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:MAC_VK_ANSI_A,
597 modifiers: {}, chars:"a
", unmodifiedChars:"a
"},
598 "a
", "KeyA
", KeyboardEvent.DOM_VK_A, "a
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
599 yield testKey({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:MAC_VK_ANSI_LeftBracket,
600 modifiers: {}, chars:"\u00fc
", unmodifiedChars:"\u00fc
"},
601 "\u00fc
", "BracketLeft
", KeyboardEvent.DOM_VK_OPEN_BRACKET, "\u00fc
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
602 yield testKey({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:MAC_VK_ANSI_Minus,
603 modifiers: {}, chars:"\u00df
", unmodifiedChars:"\u00df
"},
604 "\u00df
", "Minus
", KeyboardEvent.DOM_VK_QUESTION_MARK, "\u00df
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
605 yield testKey({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:MAC_VK_ANSI_Minus,
606 modifiers:{shiftKey:1}, chars:"?
", unmodifiedChars:"?
"},
607 "?
", "Minus
", KeyboardEvent.DOM_VK_QUESTION_MARK, "?
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
608 // Note that Shift+SS is '?' but Cmd+Shift+SS is '/' on German layout.
609 // Therefore, when Cmd key is pressed, the SS key's keycode is changed.
610 yield testKey({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:MAC_VK_ANSI_Minus,
611 modifiers:{metaKey:1}, chars:"\u00df
", unmodifiedChars:"\u00df
"},
612 "\u00df
", "Minus
", KeyboardEvent.DOM_VK_SLASH, "\u00df
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
613 yield testKey({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:MAC_VK_ANSI_Minus,
614 modifiers:{metaKey:1, shiftKey:1}, chars:"/
", unmodifiedChars:"?
"},
615 "/
", "Minus
", KeyboardEvent.DOM_VK_SLASH, "?
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
617 // Caps Lock key event
618 // XXX keyup event of Caps Lock key is not fired.
619 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_CapsLock,
620 modifiers:{capsLockKey:1}, chars:"", unmodifiedChars:""},
621 "CapsLock
", "CapsLock
", KeyboardEvent.DOM_VK_CAPS_LOCK, "", SHOULD_DELIVER_KEYDOWN, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
622 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_CapsLock,
623 modifiers:{capsLockKey:0}, chars:"", unmodifiedChars:""},
624 "CapsLock
", "CapsLock
", KeyboardEvent.DOM_VK_CAPS_LOCK, "", SHOULD_DELIVER_KEYDOWN, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
626 // Shift/RightShift key event
627 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_Shift,
628 modifiers:{shiftKey:1}, chars:"", unmodifiedChars:""},
629 "Shift
", "ShiftLeft
", KeyboardEvent.DOM_VK_SHIFT, "", SHOULD_DELIVER_KEYDOWN, KeyboardEvent.DOM_KEY_LOCATION_LEFT);
630 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_Shift,
631 modifiers:{shiftKey:0}, chars:"", unmodifiedChars:""},
632 "Shift
", "ShiftLeft
", KeyboardEvent.DOM_VK_SHIFT, "", SHOULD_DELIVER_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_LEFT);
633 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_RightShift,
634 modifiers:{shiftRightKey:1}, chars:"", unmodifiedChars:""},
635 "Shift
", "ShiftRight
", KeyboardEvent.DOM_VK_SHIFT, "", SHOULD_DELIVER_KEYDOWN, KeyboardEvent.DOM_KEY_LOCATION_RIGHT);
636 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_RightShift,
637 modifiers:{shiftRightKey:0}, chars:"", unmodifiedChars:""},
638 "Shift
", "ShiftRight
", KeyboardEvent.DOM_VK_SHIFT, "", SHOULD_DELIVER_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_RIGHT);
640 // Control/RightControl key event
641 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_Control,
642 modifiers:{ctrlKey:1}, chars:"", unmodifiedChars:""},
643 "Control
", "ControlLeft
", KeyboardEvent.DOM_VK_CONTROL, "", SHOULD_DELIVER_KEYDOWN, KeyboardEvent.DOM_KEY_LOCATION_LEFT);
644 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_Control,
645 modifiers:{ctrlKey:0}, chars:"", unmodifiedChars:""},
646 "Control
", "ControlLeft
", KeyboardEvent.DOM_VK_CONTROL, "", SHOULD_DELIVER_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_LEFT);
647 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_RightControl,
648 modifiers:{ctrlRightKey:1}, chars:"", unmodifiedChars:""},
649 "Control
", "ControlRight
", KeyboardEvent.DOM_VK_CONTROL, "", SHOULD_DELIVER_KEYDOWN, KeyboardEvent.DOM_KEY_LOCATION_RIGHT);
650 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_RightControl,
651 modifiers:{ctrlRightKey:0}, chars:"", unmodifiedChars:""},
652 "Control
", "ControlRight
", KeyboardEvent.DOM_VK_CONTROL, "", SHOULD_DELIVER_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_RIGHT);
654 // Option/RightOption key event
655 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_Option,
656 modifiers:{altKey:1}, chars:"", unmodifiedChars:""},
657 "Alt
", "AltLeft
", KeyboardEvent.DOM_VK_ALT, "", SHOULD_DELIVER_KEYDOWN, KeyboardEvent.DOM_KEY_LOCATION_LEFT);
658 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_Option,
659 modifiers:{altKey:0}, chars:"", unmodifiedChars:""},
660 "Alt
", "AltLeft
", KeyboardEvent.DOM_VK_ALT, "", SHOULD_DELIVER_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_LEFT);
661 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_RightOption,
662 modifiers:{altRightKey:1}, chars:"", unmodifiedChars:""},
663 "Alt
", "AltRight
", KeyboardEvent.DOM_VK_ALT, "", SHOULD_DELIVER_KEYDOWN, KeyboardEvent.DOM_KEY_LOCATION_RIGHT);
664 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_RightOption,
665 modifiers:{altRightKey:0}, chars:"", unmodifiedChars:""},
666 "Alt
", "AltRight
", KeyboardEvent.DOM_VK_ALT, "", SHOULD_DELIVER_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_RIGHT);
668 // Command/RightCommand key event
669 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_Command,
670 modifiers:{metaKey:1}, chars:"", unmodifiedChars:""},
671 "Meta
", "OSLeft
", KeyboardEvent.DOM_VK_META, "", SHOULD_DELIVER_KEYDOWN, KeyboardEvent.DOM_KEY_LOCATION_LEFT);
672 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_Command,
673 modifiers:{metaKey:0}, chars:"", unmodifiedChars:""},
674 "Meta
", "OSLeft
", KeyboardEvent.DOM_VK_META, "", SHOULD_DELIVER_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_LEFT);
675 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_RightCommand,
676 modifiers:{metaRightKey:1}, chars:"", unmodifiedChars:""},
677 "Meta
", "OSRight
", KeyboardEvent.DOM_VK_META, "", SHOULD_DELIVER_KEYDOWN, KeyboardEvent.DOM_KEY_LOCATION_RIGHT);
678 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_RightCommand,
679 modifiers:{metaRightKey:0}, chars:"", unmodifiedChars:""},
680 "Meta
", "OSRight
", KeyboardEvent.DOM_VK_META, "", SHOULD_DELIVER_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_RIGHT);
682 // all keys on keyboard (keyCode test)
683 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_Tab,
684 modifiers: {}, chars:"\t
", unmodifiedChars:"\t
"},
685 "Tab
", "Tab
", KeyboardEvent.DOM_VK_TAB, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
686 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadClear,
687 modifiers: {}, chars:"\uF739
", unmodifiedChars:"\uF739
"},
688 "Clear
", "NumLock
", KeyboardEvent.DOM_VK_CLEAR, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
689 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_Return,
690 modifiers: {}, chars:"\u000D
", unmodifiedChars:"\u000D
"},
691 "Enter
", "Enter
", KeyboardEvent.DOM_VK_RETURN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
692 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_PC_Pause,
693 modifiers: {}, chars:"\uF712
", unmodifiedChars:"\uF712
"},
694 "F15
", "F15
", KeyboardEvent.DOM_VK_PAUSE, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
695 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_Escape,
696 modifiers: {}, chars:"\u001B
", unmodifiedChars:"\u001B
"},
697 "Escape
", "Escape
", KeyboardEvent.DOM_VK_ESCAPE, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
698 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_Space,
699 modifiers: {}, chars:" ", unmodifiedChars:" "},
700 " ", "Space
", KeyboardEvent.DOM_VK_SPACE, " ", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
701 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_PageUp,
702 modifiers: {}, chars:"\uF72C
", unmodifiedChars:"\uF72C
"},
703 "PageUp
", "PageUp
", KeyboardEvent.DOM_VK_PAGE_UP, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
704 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_PageDown,
705 modifiers: {}, chars:"\uF72D
", unmodifiedChars:"\uF72D
"},
706 "PageDown
", "PageDown
", KeyboardEvent.DOM_VK_PAGE_DOWN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
707 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_End,
708 modifiers: {}, chars:"\uF72B
", unmodifiedChars:"\uF72B
"},
709 "End
", "End
", KeyboardEvent.DOM_VK_END, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
710 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_Home,
711 modifiers: {}, chars:"\uF729
", unmodifiedChars:"\uF729
"},
712 "Home
", "Home
", KeyboardEvent.DOM_VK_HOME, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
713 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_LeftArrow,
714 modifiers: {}, chars:"\uF702
", unmodifiedChars:"\uF702
"},
715 "ArrowLeft
", "ArrowLeft
", KeyboardEvent.DOM_VK_LEFT, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
716 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_UpArrow,
717 modifiers: {}, chars:"\uF700
", unmodifiedChars:"\uF700
"},
718 "ArrowUp
", "ArrowUp
", KeyboardEvent.DOM_VK_UP, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
719 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_RightArrow,
720 modifiers: {}, chars:"\uF703
", unmodifiedChars:"\uF703
"},
721 "ArrowRight
", "ArrowRight
", KeyboardEvent.DOM_VK_RIGHT, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
722 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_DownArrow,
723 modifiers: {}, chars:"\uF701
", unmodifiedChars:"\uF701
"},
724 "ArrowDown
", "ArrowDown
", KeyboardEvent.DOM_VK_DOWN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
725 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_PC_PrintScreen,
726 modifiers: {}, chars:"\uF710
", unmodifiedChars:"\uF710
"},
727 "F13
", "F13
", KeyboardEvent.DOM_VK_PRINTSCREEN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
728 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_PC_Delete,
729 modifiers: {}, chars:"\uF728
", unmodifiedChars:"\uF728
"},
730 "Delete
", "Delete
", KeyboardEvent.DOM_VK_DELETE, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
731 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_PC_ScrollLock,
732 modifiers: {}, chars:"\uF711
", unmodifiedChars:"\uF711
"},
733 "F14
", "F14
", KeyboardEvent.DOM_VK_SCROLL_LOCK, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
734 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_PC_ContextMenu,
735 modifiers: {}, chars:"\u0010
", unmodifiedChars:"\u0010
"},
736 "ContextMenu
", "ContextMenu
", KeyboardEvent.DOM_VK_CONTEXT_MENU, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
738 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F1,
739 modifiers:{fnKey:1}, chars:"\uF704
", unmodifiedChars:"\uF704
"},
740 "F1
", "F1
", KeyboardEvent.DOM_VK_F1, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
741 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F2,
742 modifiers:{fnKey:1}, chars:"\uF705
", unmodifiedChars:"\uF705
"},
743 "F2
", "F2
", KeyboardEvent.DOM_VK_F2, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
744 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F3,
745 modifiers:{fnKey:1}, chars:"\uF706
", unmodifiedChars:"\uF706
"},
746 "F3
", "F3
", KeyboardEvent.DOM_VK_F3, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
747 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F4,
748 modifiers:{fnKey:1}, chars:"\uF707
", unmodifiedChars:"\uF707
"},
749 "F4
", "F4
", KeyboardEvent.DOM_VK_F4, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
750 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F5,
751 modifiers:{fnKey:1}, chars:"\uF708
", unmodifiedChars:"\uF708
"},
752 "F5
", "F5
", KeyboardEvent.DOM_VK_F5, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
753 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F6,
754 modifiers:{fnKey:1}, chars:"\uF709
", unmodifiedChars:"\uF709
"},
755 "F6
", "F6
", KeyboardEvent.DOM_VK_F6, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
756 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F7,
757 modifiers:{fnKey:1}, chars:"\uF70A
", unmodifiedChars:"\uF70A
"},
758 "F7
", "F7
", KeyboardEvent.DOM_VK_F7, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
759 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F8,
760 modifiers:{fnKey:1}, chars:"\uF70B
", unmodifiedChars:"\uF70B
"},
761 "F8
", "F8
", KeyboardEvent.DOM_VK_F8, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
762 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F9,
763 modifiers:{fnKey:1}, chars:"\uF70C
", unmodifiedChars:"\uF70C
"},
764 "F9
", "F9
", KeyboardEvent.DOM_VK_F9, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
765 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F10,
766 modifiers:{fnKey:1}, chars:"\uF70D
", unmodifiedChars:"\uF70D
"},
767 "F10
", "F10
", KeyboardEvent.DOM_VK_F10, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
768 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F11,
769 modifiers:{fnKey:1}, chars:"\uF70E
", unmodifiedChars:"\uF70E
"},
770 "F11
", "F11
", KeyboardEvent.DOM_VK_F11, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
771 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F12,
772 modifiers:{fnKey:1}, chars:"\uF70F
", unmodifiedChars:"\uF70F
"},
773 "F12
", "F12
", KeyboardEvent.DOM_VK_F12, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
774 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F16,
775 modifiers:{fnKey:1}, chars:"\uF713
", unmodifiedChars:"\uF713
"},
776 "F16
", "F16
", KeyboardEvent.DOM_VK_F16, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
777 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F17,
778 modifiers:{fnKey:1}, chars:"\uF714
", unmodifiedChars:"\uF714
"},
779 "F17
", "F17
", KeyboardEvent.DOM_VK_F17, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
780 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F18,
781 modifiers:{fnKey:1}, chars:"\uF715
", unmodifiedChars:"\uF715
"},
782 "F18
", "F18
", KeyboardEvent.DOM_VK_F18, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
783 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F19,
784 modifiers:{fnKey:1}, chars:"\uF716
", unmodifiedChars:"\uF716
"},
785 "F19
", "F19
", KeyboardEvent.DOM_VK_F19, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
789 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A,
790 modifiers: {}, chars:"a
", unmodifiedChars:"a
"},
791 "a
", "KeyA
", KeyboardEvent.DOM_VK_A, "a
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
792 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A,
793 modifiers:{shiftKey:1}, chars:"A
", unmodifiedChars:"A
"},
794 "A
", "KeyA
", KeyboardEvent.DOM_VK_A, "A
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
795 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A,
796 modifiers:{ctrlKey:1}, chars:"\u0001
", unmodifiedChars:"a
"},
797 "a
", "KeyA
", KeyboardEvent.DOM_VK_A, "a
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
798 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A,
799 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0001
", unmodifiedChars:"A
"},
800 "A
", "KeyA
", KeyboardEvent.DOM_VK_A, "A
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
801 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A,
802 modifiers:{ctrlKey:1, capsLockKey:1}, chars:"\u0001
", unmodifiedChars:"a
"},
803 "A
", "KeyA
", KeyboardEvent.DOM_VK_A, "A
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
804 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A,
805 modifiers:{ctrlKey:1, shiftKey:1, capsLockKey:1}, chars:"\u0001
", unmodifiedChars:"A
"},
806 "A
", "KeyA
", KeyboardEvent.DOM_VK_A, "a
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
807 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A,
808 modifiers:{altKey:1}, chars:"\u00E5
", unmodifiedChars:"a
"},
809 "\u00E5
", "KeyA
", KeyboardEvent.DOM_VK_A, "\u00E5
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
810 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A,
811 modifiers:{altKey:1, shiftKey:1}, chars:"\u00C5
", unmodifiedChars:"A
"},
812 "\u00C5
", "KeyA
", KeyboardEvent.DOM_VK_A, "\u00C5
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
813 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A,
814 modifiers:{altKey:1, ctrlKey:1}, chars:"\u0001
", unmodifiedChars:"a
"},
815 "\u00E5
", "KeyA
", KeyboardEvent.DOM_VK_A, "a
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
816 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A,
817 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u0001
", unmodifiedChars:"A
"},
818 "\u00C5
", "KeyA
", KeyboardEvent.DOM_VK_A, "A
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
819 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A,
820 modifiers:{metaKey:1}, chars:"a
", unmodifiedChars:"a
"},
821 "a
", "KeyA
", KeyboardEvent.DOM_VK_A, "a
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
822 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_B,
823 modifiers:{}, chars:"b
", unmodifiedChars:"b
"},
824 "b
", "KeyB
", KeyboardEvent.DOM_VK_B, "b
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
825 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_B,
826 modifiers:{shiftKey:1}, chars:"B
", unmodifiedChars:"B
"},
827 "B
", "KeyB
", KeyboardEvent.DOM_VK_B, "B
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
828 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_B,
829 modifiers:{ctrlKey:1}, chars:"\u0002
", unmodifiedChars:"b
"},
830 "b
", "KeyB
", KeyboardEvent.DOM_VK_B, "b
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
831 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_B,
832 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0002
", unmodifiedChars:"B
"},
833 "B
", "KeyB
", KeyboardEvent.DOM_VK_B, "B
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
834 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_B,
835 modifiers:{altKey:1}, chars:"\u222B
", unmodifiedChars:"b
"},
836 "\u222B
", "KeyB
", KeyboardEvent.DOM_VK_B, "\u222B
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
837 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_B,
838 modifiers:{altKey:1, shiftKey:1}, chars:"\u0131
", unmodifiedChars:"B
"},
839 "\u0131
", "KeyB
", KeyboardEvent.DOM_VK_B, "\u0131
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
840 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_B,
841 modifiers:{altKey:1, ctrlKey:1}, chars:"\u0002
", unmodifiedChars:"b
"},
842 "\u222B
", "KeyB
", KeyboardEvent.DOM_VK_B, "b
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
843 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_B,
844 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u0002
", unmodifiedChars:"B
"},
845 "\u0131
", "KeyB
", KeyboardEvent.DOM_VK_B, "B
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
846 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_B,
847 modifiers:{metaKey:1}, chars:"b
", unmodifiedChars:"b
"},
848 "b
", "KeyB
", KeyboardEvent.DOM_VK_B, "b
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
849 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_C,
850 modifiers:{}, chars:"c
", unmodifiedChars:"c
"},
851 "c
", "KeyC
", KeyboardEvent.DOM_VK_C, "c
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
852 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_C,
853 modifiers:{shiftKey:1}, chars:"C
", unmodifiedChars:"C
"},
854 "C
", "KeyC
", KeyboardEvent.DOM_VK_C, "C
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
855 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_C,
856 modifiers:{ctrlKey:1}, chars:"\u0003
", unmodifiedChars:"c
"},
857 "c
", "KeyC
", KeyboardEvent.DOM_VK_C, "c
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
858 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_C,
859 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0003
", unmodifiedChars:"C
"},
860 "C
", "KeyC
", KeyboardEvent.DOM_VK_C, "C
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
861 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_C,
862 modifiers:{altKey:1}, chars:"\u00E7
", unmodifiedChars:"c
"},
863 "\u00E7
", "KeyC
", KeyboardEvent.DOM_VK_C, "\u00E7
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
864 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_C,
865 modifiers:{altKey:1, shiftKey:1}, chars:"\u00C7
", unmodifiedChars:"C
"},
866 "\u00C7
", "KeyC
", KeyboardEvent.DOM_VK_C, "\u00C7
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
867 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_C,
868 modifiers:{altKey:1, ctrlKey:1}, chars:"\u0003
", unmodifiedChars:"c
"},
869 "\u00E7
", "KeyC
", KeyboardEvent.DOM_VK_C, "c
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
870 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_C,
871 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u0003
", unmodifiedChars:"C
"},
872 "\u00C7
", "KeyC
", KeyboardEvent.DOM_VK_C, "C
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
873 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_C,
874 modifiers:{metaKey:1}, chars:"c
", unmodifiedChars:"c
"},
875 "c
", "KeyC
", KeyboardEvent.DOM_VK_C, "c
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
876 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_D,
877 modifiers:{}, chars:"d
", unmodifiedChars:"d
"},
878 "d
", "KeyD
", KeyboardEvent.DOM_VK_D, "d
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
879 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_D,
880 modifiers:{shiftKey:1}, chars:"D
", unmodifiedChars:"D
"},
881 "D
", "KeyD
", KeyboardEvent.DOM_VK_D, "D
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
882 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_D,
883 modifiers:{ctrlKey:1}, chars:"\u0004
", unmodifiedChars:"d
"},
884 "d
", "KeyD
", KeyboardEvent.DOM_VK_D, "d
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
885 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_D,
886 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0004
", unmodifiedChars:"D
"},
887 "D
", "KeyD
", KeyboardEvent.DOM_VK_D, "D
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
888 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_D,
889 modifiers:{altKey:1}, chars:"\u2202
", unmodifiedChars:"d
"},
890 "\u2202
", "KeyD
", KeyboardEvent.DOM_VK_D, "\u2202
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
891 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_D,
892 modifiers:{altKey:1, shiftKey:1}, chars:"\u00CE
", unmodifiedChars:"D
"},
893 "\u00CE
", "KeyD
", KeyboardEvent.DOM_VK_D, "\u00CE
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
894 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_D,
895 modifiers:{altKey:1, ctrlKey:1}, chars:"\u0004
", unmodifiedChars:"d
"},
896 "\u2202
", "KeyD
", KeyboardEvent.DOM_VK_D, "d
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
897 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_D,
898 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u0004
", unmodifiedChars:"D
"},
899 "\u00CE
", "KeyD
", KeyboardEvent.DOM_VK_D, "D
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
900 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_D,
901 modifiers:{metaKey:1}, chars:"d
", unmodifiedChars:"d
"},
902 "d
", "KeyD
", KeyboardEvent.DOM_VK_D, "d
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
903 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_E,
904 modifiers:{}, chars:"e
", unmodifiedChars:"e
"},
905 "e
", "KeyE
", KeyboardEvent.DOM_VK_E, "e
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
906 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_E,
907 modifiers:{shiftKey:1}, chars:"E
", unmodifiedChars:"E
"},
908 "E
", "KeyE
", KeyboardEvent.DOM_VK_E, "E
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
909 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_E,
910 modifiers:{ctrlKey:1}, chars:"\u0005
", unmodifiedChars:"e
"},
911 "e
", "KeyE
", KeyboardEvent.DOM_VK_E, "e
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
912 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_E,
913 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0005
", unmodifiedChars:"E
"},
914 "E
", "KeyE
", KeyboardEvent.DOM_VK_E, "E
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
915 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_E,
916 modifiers:{altKey:1}, chars:"", unmodifiedChars:"e
"},
917 "Dead
", "KeyE
", KeyboardEvent.DOM_VK_E, "\u00B4
", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); // dead key
918 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_E,
919 modifiers:{altKey:1, shiftKey:1}, chars:"\u00B4
", unmodifiedChars:"E
"},
920 "\u00B4
", "KeyE
", KeyboardEvent.DOM_VK_E, "\u00B4
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
921 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_E,
922 modifiers:{altKey:1, ctrlKey:1}, chars:"\u0005
", unmodifiedChars:"e
"},
923 "Dead
", "KeyE
", KeyboardEvent.DOM_VK_E, "e
", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
924 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_E,
925 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u0005
", unmodifiedChars:"E
"},
926 "\u00B4
", "KeyE
", KeyboardEvent.DOM_VK_E, "E
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
927 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_E,
928 modifiers:{metaKey:1}, chars:"e
", unmodifiedChars:"e
"},
929 "e
", "KeyE
", KeyboardEvent.DOM_VK_E, "e
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
930 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_F,
931 modifiers:{}, chars:"f
", unmodifiedChars:"f
"},
932 "f
", "KeyF
", KeyboardEvent.DOM_VK_F, "f
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
933 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_F,
934 modifiers:{shiftKey:1}, chars:"F
", unmodifiedChars:"F
"},
935 "F
", "KeyF
", KeyboardEvent.DOM_VK_F, "F
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
936 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_F,
937 modifiers:{ctrlKey:1}, chars:"\u0006
", unmodifiedChars:"f
"},
938 "f
", "KeyF
", KeyboardEvent.DOM_VK_F, "f
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
939 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_F,
940 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0006
", unmodifiedChars:"F
"},
941 "F
", "KeyF
", KeyboardEvent.DOM_VK_F, "F
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
942 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_F,
943 modifiers:{altKey:1}, chars:"\u0192
", unmodifiedChars:"f
"},
944 "\u0192
", "KeyF
", KeyboardEvent.DOM_VK_F, "\u0192
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
945 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_F,
946 modifiers:{altKey:1, shiftKey:1}, chars:"\u00CF
", unmodifiedChars:"F
"},
947 "\u00CF
", "KeyF
", KeyboardEvent.DOM_VK_F, "\u00CF
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
948 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_F,
949 modifiers:{altKey:1, ctrlKey:1}, chars:"\u0006
", unmodifiedChars:"f
"},
950 "\u0192
", "KeyF
", KeyboardEvent.DOM_VK_F, "f
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
951 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_F,
952 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u0006
", unmodifiedChars:"F
"},
953 "\u00CF
", "KeyF
", KeyboardEvent.DOM_VK_F, "F
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
954 // XXX This test starts fullscreen mode.
955 // yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_F,
956 // modifiers:{metaKey:1}, chars:"f
", unmodifiedChars:"f
"},
957 // "f
", "KeyF
", KeyboardEvent.DOM_VK_F, "f
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
958 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_G,
959 modifiers:{}, chars:"g
", unmodifiedChars:"g
"},
960 "g
", "KeyG
", KeyboardEvent.DOM_VK_G, "g
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
961 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_G,
962 modifiers:{shiftKey:1}, chars:"G
", unmodifiedChars:"G
"},
963 "G
", "KeyG
", KeyboardEvent.DOM_VK_G, "G
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
964 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_G,
965 modifiers:{ctrlKey:1}, chars:"\u0007
", unmodifiedChars:"g
"},
966 "g
", "KeyG
", KeyboardEvent.DOM_VK_G, "g
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
967 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_G,
968 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0007
", unmodifiedChars:"G
"},
969 "G
", "KeyG
", KeyboardEvent.DOM_VK_G, "G
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
970 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_G,
971 modifiers:{altKey:1}, chars:"\u00A9
", unmodifiedChars:"g
"},
972 "\u00A9
", "KeyG
", KeyboardEvent.DOM_VK_G, "\u00A9
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
973 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_G,
974 modifiers:{altKey:1, shiftKey:1}, chars:"\u02DD
", unmodifiedChars:"G
"},
975 "\u02DD
", "KeyG
", KeyboardEvent.DOM_VK_G, "\u02DD
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
976 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_G,
977 modifiers:{altKey:1, ctrlKey:1}, chars:"\u0007
", unmodifiedChars:"g
"},
978 "\u00A9
", "KeyG
", KeyboardEvent.DOM_VK_G, "g
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
979 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_G,
980 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u0007
", unmodifiedChars:"G
"},
981 "\u02DD
", "KeyG
", KeyboardEvent.DOM_VK_G, "G
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
982 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_G,
983 modifiers:{metaKey:1}, chars:"g
", unmodifiedChars:"g
"},
984 "g
", "KeyG
", KeyboardEvent.DOM_VK_G, "g
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
985 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_H,
986 modifiers:{}, chars:"h
", unmodifiedChars:"h
"},
987 "h
", "KeyH
", KeyboardEvent.DOM_VK_H, "h
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
988 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_H,
989 modifiers:{shiftKey:1}, chars:"H
", unmodifiedChars:"H
"},
990 "H
", "KeyH
", KeyboardEvent.DOM_VK_H, "H
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
991 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_H,
992 modifiers:{ctrlKey:1}, chars:"\u0008
", unmodifiedChars:"h
"},
993 "h
", "KeyH
", KeyboardEvent.DOM_VK_H, "h
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
994 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_H,
995 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0008
", unmodifiedChars:"H
"},
996 "H
", "KeyH
", KeyboardEvent.DOM_VK_H, "H
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
997 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_H,
998 modifiers:{altKey:1}, chars:"\u02D9
", unmodifiedChars:"h
"},
999 "\u02D9
", "KeyH
", KeyboardEvent.DOM_VK_H, "\u02D9
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1000 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_H,
1001 modifiers:{altKey:1, shiftKey:1}, chars:"\u00D3
", unmodifiedChars:"H
"},
1002 "\u00D3
", "KeyH
", KeyboardEvent.DOM_VK_H, "\u00D3
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1003 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_H,
1004 modifiers:{altKey:1, ctrlKey:1}, chars:"\u0008
", unmodifiedChars:"h
"},
1005 "\u02D9
", "KeyH
", KeyboardEvent.DOM_VK_H, "h
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1006 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_H,
1007 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u0008
", unmodifiedChars:"H
"},
1008 "\u00D3
", "KeyH
", KeyboardEvent.DOM_VK_H, "H
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1009 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_H,
1010 modifiers:{metaKey:1}, chars:"h
", unmodifiedChars:"h
"},
1011 "h
", "KeyH
", KeyboardEvent.DOM_VK_H, "h
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1012 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_I,
1013 modifiers:{}, chars:"i
", unmodifiedChars:"i
"},
1014 "i
", "KeyI
", KeyboardEvent.DOM_VK_I, "i
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1015 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_I,
1016 modifiers:{shiftKey:1}, chars:"I
", unmodifiedChars:"I
"},
1017 "I
", "KeyI
", KeyboardEvent.DOM_VK_I, "I
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1018 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_I,
1019 modifiers:{ctrlKey:1}, chars:"\u0009
", unmodifiedChars:"i
"},
1020 "i
", "KeyI
", KeyboardEvent.DOM_VK_I, "i
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1021 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_I,
1022 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0009
", unmodifiedChars:"I
"},
1023 "I
", "KeyI
", KeyboardEvent.DOM_VK_I, "I
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1024 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_I,
1025 modifiers:{altKey:1}, chars:"", unmodifiedChars:"i
"},
1026 "Dead
", "KeyI
", KeyboardEvent.DOM_VK_I, "\u02C6
", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); // dead key
1027 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_I,
1028 modifiers:{altKey:1, shiftKey:1}, chars:"\u02C6
", unmodifiedChars:"I
"},
1029 "\u02C6
", "KeyI
", KeyboardEvent.DOM_VK_I, "\u02C6
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1030 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_I,
1031 modifiers:{altKey:1, ctrlKey:1}, chars:"\u0009
", unmodifiedChars:"i
"},
1032 "Dead
", "KeyI
", KeyboardEvent.DOM_VK_I, "i
", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1033 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_I,
1034 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u0009
", unmodifiedChars:"I
"},
1035 "\u02C6
", "KeyI
", KeyboardEvent.DOM_VK_I, "I
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1036 // XXX This test causes memory leak.
1037 // yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_I,
1038 // modifiers:{metaKey:1}, chars:"i
", unmodifiedChars:"i
"},
1039 // "i
", "KeyI
", KeyboardEvent.DOM_VK_I, "i
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1040 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_J,
1041 modifiers:{}, chars:"j
", unmodifiedChars:"j
"},
1042 "j
", "KeyJ
", KeyboardEvent.DOM_VK_J, "j
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1043 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_J,
1044 modifiers:{shiftKey:1}, chars:"J
", unmodifiedChars:"J
"},
1045 "J
", "KeyJ
", KeyboardEvent.DOM_VK_J, "J
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1046 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_J,
1047 modifiers:{ctrlKey:1}, chars:"\u000A
", unmodifiedChars:"j
"},
1048 "j
", "KeyJ
", KeyboardEvent.DOM_VK_J, "j
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1049 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_J,
1050 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u000A
", unmodifiedChars:"J
"},
1051 "J
", "KeyJ
", KeyboardEvent.DOM_VK_J, "J
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1052 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_J,
1053 modifiers:{altKey:1}, chars:"\u2206
", unmodifiedChars:"j
"},
1054 "\u2206
", "KeyJ
", KeyboardEvent.DOM_VK_J, "\u2206
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1055 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_J,
1056 modifiers:{altKey:1, shiftKey:1}, chars:"\u00D4
", unmodifiedChars:"J
"},
1057 "\u00D4
", "KeyJ
", KeyboardEvent.DOM_VK_J, "\u00D4
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1058 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_J,
1059 modifiers:{altKey:1, ctrlKey:1}, chars:"\u000A
", unmodifiedChars:"j
"},
1060 "\u2206
", "KeyJ
", KeyboardEvent.DOM_VK_J, "j
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1061 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_J,
1062 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u000A
", unmodifiedChars:"J
"},
1063 "\u00D4
", "KeyJ
", KeyboardEvent.DOM_VK_J, "J
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1064 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_J,
1065 modifiers:{metaKey:1}, chars:"j
", unmodifiedChars:"j
"},
1066 "j
", "KeyJ
", KeyboardEvent.DOM_VK_J, "j
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1067 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_K,
1068 modifiers:{}, chars:"k
", unmodifiedChars:"k
"},
1069 "k
", "KeyK
", KeyboardEvent.DOM_VK_K, "k
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1070 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_K,
1071 modifiers:{shiftKey:1}, chars:"K
", unmodifiedChars:"K
"},
1072 "K
", "KeyK
", KeyboardEvent.DOM_VK_K, "K
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1073 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_K,
1074 modifiers:{ctrlKey:1}, chars:"\u000B
", unmodifiedChars:"k
"},
1075 "k
", "KeyK
", KeyboardEvent.DOM_VK_K, "k
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1076 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_K,
1077 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u000B
", unmodifiedChars:"K
"},
1078 "K
", "KeyK
", KeyboardEvent.DOM_VK_K, "K
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1079 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_K,
1080 modifiers:{altKey:1}, chars:"\u02DA
", unmodifiedChars:"k
"},
1081 "\u02DA
", "KeyK
", KeyboardEvent.DOM_VK_K, "\u02DA
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1082 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_K,
1083 modifiers:{altKey:1, shiftKey:1}, chars:"\uF8FF
", unmodifiedChars:"K
"},
1084 "\uF8FF
", "KeyK
", KeyboardEvent.DOM_VK_K, "\uF8FF
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1085 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_K,
1086 modifiers:{altKey:1, ctrlKey:1}, chars:"\u000B
", unmodifiedChars:"k
"},
1087 "\u02DA
", "KeyK
", KeyboardEvent.DOM_VK_K, "k
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1088 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_K,
1089 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u000B
", unmodifiedChars:"K
"},
1090 "\uF8FF
", "KeyK
", KeyboardEvent.DOM_VK_K, "K
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1091 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_K,
1092 modifiers:{metaKey:1}, chars:"k
", unmodifiedChars:"k
"},
1093 "k
", "KeyK
", KeyboardEvent.DOM_VK_K, "k
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1094 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_L,
1095 modifiers:{}, chars:"l
", unmodifiedChars:"l
"},
1096 "l
", "KeyL
", KeyboardEvent.DOM_VK_L, "l
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1097 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_L,
1098 modifiers:{shiftKey:1}, chars:"L
", unmodifiedChars:"L
"},
1099 "L
", "KeyL
", KeyboardEvent.DOM_VK_L, "L
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1100 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_L,
1101 modifiers:{ctrlKey:1}, chars:"\u000C
", unmodifiedChars:"l
"},
1102 "l
", "KeyL
", KeyboardEvent.DOM_VK_L, "l
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1103 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_L,
1104 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u000C
", unmodifiedChars:"L
"},
1105 "L
", "KeyL
", KeyboardEvent.DOM_VK_L, "L
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1106 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_L,
1107 modifiers:{altKey:1}, chars:"\u00AC
", unmodifiedChars:"l
"},
1108 "\u00AC
", "KeyL
", KeyboardEvent.DOM_VK_L, "\u00AC
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1109 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_L,
1110 modifiers:{altKey:1, shiftKey:1}, chars:"\u00D2
", unmodifiedChars:"L
"},
1111 "\u00D2
", "KeyL
", KeyboardEvent.DOM_VK_L, "\u00D2
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1112 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_L,
1113 modifiers:{altKey:1, ctrlKey:1}, chars:"\u000C
", unmodifiedChars:"l
"},
1114 "\u00AC
", "KeyL
", KeyboardEvent.DOM_VK_L, "l
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1115 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_L,
1116 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u000C
", unmodifiedChars:"L
"},
1117 "\u00D2
", "KeyL
", KeyboardEvent.DOM_VK_L, "L
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1118 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_L,
1119 modifiers:{metaKey:1}, chars:"l
", unmodifiedChars:"l
"},
1120 "l
", "KeyL
", KeyboardEvent.DOM_VK_L, "l
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1121 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_M,
1122 modifiers:{}, chars:"m
", unmodifiedChars:"m
"},
1123 "m
", "KeyM
", KeyboardEvent.DOM_VK_M, "m
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1124 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_M,
1125 modifiers:{shiftKey:1}, chars:"M
", unmodifiedChars:"M
"},
1126 "M
", "KeyM
", KeyboardEvent.DOM_VK_M, "M
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1127 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_M,
1128 modifiers:{ctrlKey:1}, chars:"\u000D
", unmodifiedChars:"m
"},
1129 "m
", "KeyM
", KeyboardEvent.DOM_VK_M, "m
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1130 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_M,
1131 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u000D
", unmodifiedChars:"M
"},
1132 "M
", "KeyM
", KeyboardEvent.DOM_VK_M, "M
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1133 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_M,
1134 modifiers:{altKey:1}, chars:"\u00B5
", unmodifiedChars:"m
"},
1135 "\u00B5
", "KeyM
", KeyboardEvent.DOM_VK_M, "\u00B5
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1136 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_M,
1137 modifiers:{altKey:1, shiftKey:1}, chars:"\u00C2
", unmodifiedChars:"M
"},
1138 "\u00C2
", "KeyM
", KeyboardEvent.DOM_VK_M, "\u00C2
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1139 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_M,
1140 modifiers:{altKey:1, ctrlKey:1}, chars:"\u000D
", unmodifiedChars:"m
"},
1141 "\u00B5
", "KeyM
", KeyboardEvent.DOM_VK_M, "m
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1142 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_M,
1143 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u000D
", unmodifiedChars:"M
"},
1144 "\u00C2
", "KeyM
", KeyboardEvent.DOM_VK_M, "M
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1145 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_M,
1146 modifiers:{metaKey:1}, chars:"m
", unmodifiedChars:"m
"},
1147 "m
", "KeyM
", KeyboardEvent.DOM_VK_M, "m
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1148 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_N,
1149 modifiers:{}, chars:"n
", unmodifiedChars:"n
"},
1150 "n
", "KeyN
", KeyboardEvent.DOM_VK_N, "n
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1151 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_N,
1152 modifiers:{shiftKey:1}, chars:"N
", unmodifiedChars:"N
"},
1153 "N
", "KeyN
", KeyboardEvent.DOM_VK_N, "N
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1154 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_N,
1155 modifiers:{ctrlKey:1}, chars:"\u000E
", unmodifiedChars:"n
"},
1156 "n
", "KeyN
", KeyboardEvent.DOM_VK_N, "n
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1157 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_N,
1158 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u000E
", unmodifiedChars:"N
"},
1159 "N
", "KeyN
", KeyboardEvent.DOM_VK_N, "N
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1160 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_N,
1161 modifiers:{altKey:1}, chars:"", unmodifiedChars:"n
"},
1162 "Dead
", "KeyN
", KeyboardEvent.DOM_VK_N, "\u02DC
", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); // dead key
1163 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_N,
1164 modifiers:{altKey:1, shiftKey:1}, chars:"\u02DC
", unmodifiedChars:"N
"},
1165 "\u02DC
", "KeyN
", KeyboardEvent.DOM_VK_N, "\u02DC
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1166 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_N,
1167 modifiers:{altKey:1, ctrlKey:1}, chars:"\u000E
", unmodifiedChars:"n
"},
1168 "Dead
", "KeyN
", KeyboardEvent.DOM_VK_N, "n
", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1169 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_N,
1170 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u000E
", unmodifiedChars:"N
"},
1171 "\u02DC
", "KeyN
", KeyboardEvent.DOM_VK_N, "N
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1172 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_N,
1173 modifiers:{metaKey:1}, chars:"n
", unmodifiedChars:"n
"},
1174 "n
", "KeyN
", KeyboardEvent.DOM_VK_N, "n
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1175 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_O,
1176 modifiers:{}, chars:"o
", unmodifiedChars:"o
"},
1177 "o
", "KeyO
", KeyboardEvent.DOM_VK_O, "o
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1178 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_O,
1179 modifiers:{shiftKey:1}, chars:"O
", unmodifiedChars:"O
"},
1180 "O
", "KeyO
", KeyboardEvent.DOM_VK_O, "O
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1181 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_O,
1182 modifiers:{ctrlKey:1}, chars:"\u000F
", unmodifiedChars:"o
"},
1183 "o
", "KeyO
", KeyboardEvent.DOM_VK_O, "o
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1184 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_O,
1185 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u000F
", unmodifiedChars:"O
"},
1186 "O
", "KeyO
", KeyboardEvent.DOM_VK_O, "O
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1187 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_O,
1188 modifiers:{altKey:1}, chars:"\u00F8
", unmodifiedChars:"o
"},
1189 "\u00F8
", "KeyO
", KeyboardEvent.DOM_VK_O, "\u00F8
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1190 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_O,
1191 modifiers:{altKey:1, shiftKey:1}, chars:"\u00D8
", unmodifiedChars:"O
"},
1192 "\u00D8
", "KeyO
", KeyboardEvent.DOM_VK_O, "\u00D8
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1193 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_O,
1194 modifiers:{altKey:1, ctrlKey:1}, chars:"\u000F
", unmodifiedChars:"o
"},
1195 "\u00F8
", "KeyO
", KeyboardEvent.DOM_VK_O, "o
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1196 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_O,
1197 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u000F
", unmodifiedChars:"O
"},
1198 "\u00D8
", "KeyO
", KeyboardEvent.DOM_VK_O, "O
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1199 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_O,
1200 modifiers:{metaKey:1}, chars:"o
", unmodifiedChars:"o
"},
1201 "o
", "KeyO
", KeyboardEvent.DOM_VK_O, "o
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1202 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_P,
1203 modifiers:{}, chars:"p
", unmodifiedChars:"p
"},
1204 "p
", "KeyP
", KeyboardEvent.DOM_VK_P, "p
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1205 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_P,
1206 modifiers:{shiftKey:1}, chars:"P
", unmodifiedChars:"P
"},
1207 "P
", "KeyP
", KeyboardEvent.DOM_VK_P, "P
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1208 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_P,
1209 modifiers:{ctrlKey:1}, chars:"\u0010
", unmodifiedChars:"p
"},
1210 "p
", "KeyP
", KeyboardEvent.DOM_VK_P, "p
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1211 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_P,
1212 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0010
", unmodifiedChars:"P
"},
1213 "P
", "KeyP
", KeyboardEvent.DOM_VK_P, "P
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1214 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_P,
1215 modifiers:{altKey:1}, chars:"\u03C0
", unmodifiedChars:"p
"},
1216 "\u03C0
", "KeyP
", KeyboardEvent.DOM_VK_P, "\u03C0
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1217 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_P,
1218 modifiers:{altKey:1, shiftKey:1}, chars:"\u220F
", unmodifiedChars:"P
"},
1219 "\u220F
", "KeyP
", KeyboardEvent.DOM_VK_P, "\u220F
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1220 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_P,
1221 modifiers:{altKey:1, ctrlKey:1}, chars:"\u0010
", unmodifiedChars:"p
"},
1222 "\u03C0
", "KeyP
", KeyboardEvent.DOM_VK_P, "p
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1223 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_P,
1224 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u0010
", unmodifiedChars:"P
"},
1225 "\u220F
", "KeyP
", KeyboardEvent.DOM_VK_P, "P
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1226 // XXX This test starts private browsing mode (stopped at the confirmation dialog)
1227 // yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_P,
1228 // modifiers:{metaKey:1}, chars:"p
", unmodifiedChars:"p
"},
1229 // "p
", "KeyP
", KeyboardEvent.DOM_VK_P, "p
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1230 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Q,
1231 modifiers:{}, chars:"q
", unmodifiedChars:"q
"},
1232 "q
", "KeyQ
", KeyboardEvent.DOM_VK_Q, "q
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1233 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Q,
1234 modifiers:{shiftKey:1}, chars:"Q
", unmodifiedChars:"Q
"},
1235 "Q
", "KeyQ
", KeyboardEvent.DOM_VK_Q, "Q
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1236 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Q,
1237 modifiers:{ctrlKey:1}, chars:"\u0011
", unmodifiedChars:"q
"},
1238 "q
", "KeyQ
", KeyboardEvent.DOM_VK_Q, "q
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1239 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Q,
1240 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0011
", unmodifiedChars:"Q
"},
1241 "Q
", "KeyQ
", KeyboardEvent.DOM_VK_Q, "Q
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1242 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Q,
1243 modifiers:{altKey:1}, chars:"\u0153
", unmodifiedChars:"q
"},
1244 "\u0153
", "KeyQ
", KeyboardEvent.DOM_VK_Q, "\u0153
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1245 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Q,
1246 modifiers:{altKey:1, shiftKey:1}, chars:"\u0152
", unmodifiedChars:"Q
"},
1247 "\u0152
", "KeyQ
", KeyboardEvent.DOM_VK_Q, "\u0152
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1248 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Q,
1249 modifiers:{altKey:1, ctrlKey:1}, chars:"\u0011
", unmodifiedChars:"q
"},
1250 "\u0153
", "KeyQ
", KeyboardEvent.DOM_VK_Q, "q
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1251 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Q,
1252 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u0011
", unmodifiedChars:"Q
"},
1253 "\u0152
", "KeyQ
", KeyboardEvent.DOM_VK_Q, "Q
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1254 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Q,
1255 modifiers:{metaKey:1}, chars:"q
", unmodifiedChars:"q
"},
1256 "q
", "KeyQ
", KeyboardEvent.DOM_VK_Q, "q
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1257 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_R,
1258 modifiers:{}, chars:"r
", unmodifiedChars:"r
"},
1259 "r
", "KeyR
", KeyboardEvent.DOM_VK_R, "r
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1260 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_R,
1261 modifiers:{shiftKey:1}, chars:"R
", unmodifiedChars:"R
"},
1262 "R
", "KeyR
", KeyboardEvent.DOM_VK_R, "R
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1263 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_R,
1264 modifiers:{ctrlKey:1}, chars:"\u0012
", unmodifiedChars:"r
"},
1265 "r
", "KeyR
", KeyboardEvent.DOM_VK_R, "r
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1266 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_R,
1267 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0012
", unmodifiedChars:"R
"},
1268 "R
", "KeyR
", KeyboardEvent.DOM_VK_R, "R
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1269 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_R,
1270 modifiers:{altKey:1}, chars:"\u00AE
", unmodifiedChars:"r
"},
1271 "\u00AE
", "KeyR
", KeyboardEvent.DOM_VK_R, "\u00AE
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1272 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_R,
1273 modifiers:{altKey:1, shiftKey:1}, chars:"\u2030
", unmodifiedChars:"R
"},
1274 "\u2030
", "KeyR
", KeyboardEvent.DOM_VK_R, "\u2030
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1275 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_R,
1276 modifiers:{altKey:1, ctrlKey:1}, chars:"\u0012
", unmodifiedChars:"r
"},
1277 "\u00AE
", "KeyR
", KeyboardEvent.DOM_VK_R, "r
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1278 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_R,
1279 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u0012
", unmodifiedChars:"R
"},
1280 "\u2030
", "KeyR
", KeyboardEvent.DOM_VK_R, "R
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1281 // XXX This test makes some tabs and dialogs.
1282 // yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_R,
1283 // modifiers:{metaKey:1}, chars:"r
", unmodifiedChars:"r
"},
1284 // "r
", "KeyR
", KeyboardEvent.DOM_VK_R, "r
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1285 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_S,
1286 modifiers:{}, chars:"s
", unmodifiedChars:"s
"},
1287 "s
", "KeyS
", KeyboardEvent.DOM_VK_S, "s
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1288 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_S,
1289 modifiers:{shiftKey:1}, chars:"S
", unmodifiedChars:"S
"},
1290 "S
", "KeyS
", KeyboardEvent.DOM_VK_S, "S
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1291 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_S,
1292 modifiers:{ctrlKey:1}, chars:"\u0013
", unmodifiedChars:"s
"},
1293 "s
", "KeyS
", KeyboardEvent.DOM_VK_S, "s
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1294 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_S,
1295 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0013
", unmodifiedChars:"S
"},
1296 "S
", "KeyS
", KeyboardEvent.DOM_VK_S, "S
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1297 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_S,
1298 modifiers:{altKey:1}, chars:"\u00DF
", unmodifiedChars:"s
"},
1299 "\u00DF
", "KeyS
", KeyboardEvent.DOM_VK_S, "\u00DF
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1300 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_S,
1301 modifiers:{altKey:1, shiftKey:1}, chars:"\u00CD
", unmodifiedChars:"S
"},
1302 "\u00CD
", "KeyS
", KeyboardEvent.DOM_VK_S, "\u00CD
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1303 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_S,
1304 modifiers:{altKey:1, ctrlKey:1}, chars:"\u0013
", unmodifiedChars:"s
"},
1305 "\u00DF
", "KeyS
", KeyboardEvent.DOM_VK_S, "s
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1306 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_S,
1307 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u0013
", unmodifiedChars:"S
"},
1308 "\u00CD
", "KeyS
", KeyboardEvent.DOM_VK_S, "S
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1309 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_S,
1310 modifiers:{metaKey:1}, chars:"s
", unmodifiedChars:"s
"},
1311 "s
", "KeyS
", KeyboardEvent.DOM_VK_S, "s
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1312 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_T,
1313 modifiers:{}, chars:"t
", unmodifiedChars:"t
"},
1314 "t
", "KeyT
", KeyboardEvent.DOM_VK_T, "t
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1315 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_T,
1316 modifiers:{shiftKey:1}, chars:"T
", unmodifiedChars:"T
"},
1317 "T
", "KeyT
", KeyboardEvent.DOM_VK_T, "T
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1318 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_T,
1319 modifiers:{ctrlKey:1}, chars:"\u0014
", unmodifiedChars:"t
"},
1320 "t
", "KeyT
", KeyboardEvent.DOM_VK_T, "t
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1321 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_T,
1322 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0014
", unmodifiedChars:"T
"},
1323 "T
", "KeyT
", KeyboardEvent.DOM_VK_T, "T
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1324 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_T,
1325 modifiers:{altKey:1}, chars:"\u2020
", unmodifiedChars:"t
"},
1326 "\u2020
", "KeyT
", KeyboardEvent.DOM_VK_T, "\u2020
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1327 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_T,
1328 modifiers:{altKey:1, shiftKey:1}, chars:"\u02C7
", unmodifiedChars:"T
"},
1329 "\u02C7
", "KeyT
", KeyboardEvent.DOM_VK_T, "\u02C7
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1330 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_T,
1331 modifiers:{altKey:1, ctrlKey:1}, chars:"\u0014
", unmodifiedChars:"t
"},
1332 "\u2020
", "KeyT
", KeyboardEvent.DOM_VK_T, "t
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1333 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_T,
1334 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u0014
", unmodifiedChars:"T
"},
1335 "\u02C7
", "KeyT
", KeyboardEvent.DOM_VK_T, "T
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1336 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_T,
1337 modifiers:{metaKey:1}, chars:"t
", unmodifiedChars:"t
"},
1338 "t
", "KeyT
", KeyboardEvent.DOM_VK_T, "t
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1339 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_U,
1340 modifiers:{}, chars:"u
", unmodifiedChars:"u
"},
1341 "u
", "KeyU
", KeyboardEvent.DOM_VK_U, "u
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1342 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_U,
1343 modifiers:{shiftKey:1}, chars:"U
", unmodifiedChars:"U
"},
1344 "U
", "KeyU
", KeyboardEvent.DOM_VK_U, "U
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1345 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_U,
1346 modifiers:{ctrlKey:1}, chars:"\u0015
", unmodifiedChars:"u
"},
1347 "u
", "KeyU
", KeyboardEvent.DOM_VK_U, "u
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1348 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_U,
1349 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0015
", unmodifiedChars:"U
"},
1350 "U
", "KeyU
", KeyboardEvent.DOM_VK_U, "U
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1351 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_U,
1352 modifiers:{altKey:1}, chars:"", unmodifiedChars:"u
"},
1353 "Dead
", "KeyU
", KeyboardEvent.DOM_VK_U, "\u00A8
", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); // dead key
1354 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_U,
1355 modifiers:{altKey:1, shiftKey:1}, chars:"\u00A8
", unmodifiedChars:"U
"},
1356 "\u00A8
", "KeyU
", KeyboardEvent.DOM_VK_U, "\u00A8
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1357 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_U,
1358 modifiers:{altKey:1, ctrlKey:1}, chars:"\u0015
", unmodifiedChars:"u
"},
1359 "Dead
", "KeyU
", KeyboardEvent.DOM_VK_U, "u
", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1360 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_U,
1361 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u0015
", unmodifiedChars:"U
"},
1362 "\u00A8
", "KeyU
", KeyboardEvent.DOM_VK_U, "U
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1363 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_U,
1364 modifiers:{metaKey:1}, chars:"u
", unmodifiedChars:"u
"},
1365 "u
", "KeyU
", KeyboardEvent.DOM_VK_U, "u
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1366 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_V,
1367 modifiers:{}, chars:"v
", unmodifiedChars:"v
"},
1368 "v
", "KeyV
", KeyboardEvent.DOM_VK_V, "v
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1369 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_V,
1370 modifiers:{shiftKey:1}, chars:"V
", unmodifiedChars:"V
"},
1371 "V
", "KeyV
", KeyboardEvent.DOM_VK_V, "V
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1372 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_V,
1373 modifiers:{ctrlKey:1}, chars:"\u0016
", unmodifiedChars:"v
"},
1374 "v
", "KeyV
", KeyboardEvent.DOM_VK_V, "v
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1375 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_V,
1376 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0016
", unmodifiedChars:"V
"},
1377 "V
", "KeyV
", KeyboardEvent.DOM_VK_V, "V
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1378 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_V,
1379 modifiers:{altKey:1}, chars:"\u221A
", unmodifiedChars:"v
"},
1380 "\u221A
", "KeyV
", KeyboardEvent.DOM_VK_V, "\u221A
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1381 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_V,
1382 modifiers:{altKey:1, shiftKey:1}, chars:"\u25CA
", unmodifiedChars:"V
"},
1383 "\u25CA
", "KeyV
", KeyboardEvent.DOM_VK_V, "\u25CA
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1384 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_V,
1385 modifiers:{altKey:1, ctrlKey:1}, chars:"\u0016
", unmodifiedChars:"v
"},
1386 "\u221A
", "KeyV
", KeyboardEvent.DOM_VK_V, "v
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1387 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_V,
1388 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u0016
", unmodifiedChars:"V
"},
1389 "\u25CA
", "KeyV
", KeyboardEvent.DOM_VK_V, "V
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1390 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_V,
1391 modifiers:{metaKey:1}, chars:"v
", unmodifiedChars:"v
"},
1392 "v
", "KeyV
", KeyboardEvent.DOM_VK_V, "v
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1393 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_W,
1394 modifiers:{}, chars:"w
", unmodifiedChars:"w
"},
1395 "w
", "KeyW
", KeyboardEvent.DOM_VK_W, "w
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1396 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_W,
1397 modifiers:{shiftKey:1}, chars:"W
", unmodifiedChars:"W
"},
1398 "W
", "KeyW
", KeyboardEvent.DOM_VK_W, "W
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1399 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_W,
1400 modifiers:{ctrlKey:1}, chars:"\u0017
", unmodifiedChars:"w
"},
1401 "w
", "KeyW
", KeyboardEvent.DOM_VK_W, "w
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1402 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_W,
1403 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0017
", unmodifiedChars:"W
"},
1404 "W
", "KeyW
", KeyboardEvent.DOM_VK_W, "W
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1405 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_W,
1406 modifiers:{altKey:1}, chars:"\u2211
", unmodifiedChars:"w
"},
1407 "\u2211
", "KeyW
", KeyboardEvent.DOM_VK_W, "\u2211
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1408 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_W,
1409 modifiers:{altKey:1, shiftKey:1}, chars:"\u201E
", unmodifiedChars:"W
"},
1410 "\u201E
", "KeyW
", KeyboardEvent.DOM_VK_W, "\u201E
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1411 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_W,
1412 modifiers:{altKey:1, ctrlKey:1}, chars:"\u0017
", unmodifiedChars:"w
"},
1413 "\u2211
", "KeyW
", KeyboardEvent.DOM_VK_W, "w
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1414 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_W,
1415 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u0017
", unmodifiedChars:"W
"},
1416 "\u201E
", "KeyW
", KeyboardEvent.DOM_VK_W, "W
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1417 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_W,
1418 modifiers:{metaKey:1}, chars:"w
", unmodifiedChars:"w
"},
1419 "w
", "KeyW
", KeyboardEvent.DOM_VK_W, "w
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1420 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_X,
1421 modifiers:{}, chars:"x
", unmodifiedChars:"x
"},
1422 "x
", "KeyX
", KeyboardEvent.DOM_VK_X, "x
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1423 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_X,
1424 modifiers:{shiftKey:1}, chars:"X
", unmodifiedChars:"X
"},
1425 "X
", "KeyX
", KeyboardEvent.DOM_VK_X, "X
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1426 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_X,
1427 modifiers:{ctrlKey:1}, chars:"\u0018
", unmodifiedChars:"x
"},
1428 "x
", "KeyX
", KeyboardEvent.DOM_VK_X, "x
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1429 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_X,
1430 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0018
", unmodifiedChars:"X
"},
1431 "X
", "KeyX
", KeyboardEvent.DOM_VK_X, "X
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1432 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_X,
1433 modifiers:{altKey:1}, chars:"\u2248
", unmodifiedChars:"x
"},
1434 "\u2248
", "KeyX
", KeyboardEvent.DOM_VK_X, "\u2248
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1435 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_X,
1436 modifiers:{altKey:1, shiftKey:1}, chars:"\u02DB
", unmodifiedChars:"X
"},
1437 "\u02DB
", "KeyX
", KeyboardEvent.DOM_VK_X, "\u02DB
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1438 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_X,
1439 modifiers:{altKey:1, ctrlKey:1}, chars:"\u0018
", unmodifiedChars:"x
"},
1440 "\u2248
", "KeyX
", KeyboardEvent.DOM_VK_X, "x
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1441 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_X,
1442 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u0018
", unmodifiedChars:"X
"},
1443 "\u02DB
", "KeyX
", KeyboardEvent.DOM_VK_X, "X
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1444 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_X,
1445 modifiers:{metaKey:1}, chars:"x
", unmodifiedChars:"x
"},
1446 "x
", "KeyX
", KeyboardEvent.DOM_VK_X, "x
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1447 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Y,
1448 modifiers:{}, chars:"y
", unmodifiedChars:"y
"},
1449 "y
", "KeyY
", KeyboardEvent.DOM_VK_Y, "y
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1450 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Y,
1451 modifiers:{shiftKey:1}, chars:"Y
", unmodifiedChars:"Y
"},
1452 "Y
", "KeyY
", KeyboardEvent.DOM_VK_Y, "Y
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1453 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Y,
1454 modifiers:{ctrlKey:1}, chars:"\u0019
", unmodifiedChars:"y
"},
1455 "y
", "KeyY
", KeyboardEvent.DOM_VK_Y, "y
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1456 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Y,
1457 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0019
", unmodifiedChars:"Y
"},
1458 "Y
", "KeyY
", KeyboardEvent.DOM_VK_Y, "Y
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1459 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Y,
1460 modifiers:{altKey:1}, chars:"\u00A5
", unmodifiedChars:"y
"},
1461 "\u00A5
", "KeyY
", KeyboardEvent.DOM_VK_Y, "\u00A5
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1462 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Y,
1463 modifiers:{altKey:1, shiftKey:1}, chars:"\u00C1
", unmodifiedChars:"Y
"},
1464 "\u00C1
", "KeyY
", KeyboardEvent.DOM_VK_Y, "\u00C1
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1465 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Y,
1466 modifiers:{altKey:1, ctrlKey:1}, chars:"\u0019
", unmodifiedChars:"y
"},
1467 "\u00A5
", "KeyY
", KeyboardEvent.DOM_VK_Y, "y
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1468 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Y,
1469 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u0019
", unmodifiedChars:"Y
"},
1470 "\u00C1
", "KeyY
", KeyboardEvent.DOM_VK_Y, "Y
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1471 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Y,
1472 modifiers:{metaKey:1}, chars:"y
", unmodifiedChars:"y
"},
1473 "y
", "KeyY
", KeyboardEvent.DOM_VK_Y, "y
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1474 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Z,
1475 modifiers:{}, chars:"z
", unmodifiedChars:"z
"},
1476 "z
", "KeyZ
", KeyboardEvent.DOM_VK_Z, "z
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1477 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Z,
1478 modifiers:{shiftKey:1}, chars:"Z
", unmodifiedChars:"Z
"},
1479 "Z
", "KeyZ
", KeyboardEvent.DOM_VK_Z, "Z
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1480 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Z,
1481 modifiers:{ctrlKey:1}, chars:"\u001A
", unmodifiedChars:"z
"},
1482 "z
", "KeyZ
", KeyboardEvent.DOM_VK_Z, "z
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1483 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Z,
1484 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u001A
", unmodifiedChars:"Z
"},
1485 "Z
", "KeyZ
", KeyboardEvent.DOM_VK_Z, "Z
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1486 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Z,
1487 modifiers:{altKey:1}, chars:"\u03A9
", unmodifiedChars:"z
"},
1488 "\u03A9
", "KeyZ
", KeyboardEvent.DOM_VK_Z, "\u03A9
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1489 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Z,
1490 modifiers:{altKey:1, shiftKey:1}, chars:"\u00B8
", unmodifiedChars:"Z
"},
1491 "\u00B8
", "KeyZ
", KeyboardEvent.DOM_VK_Z, "\u00B8
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1492 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Z,
1493 modifiers:{altKey:1, ctrlKey:1}, chars:"\u001A
", unmodifiedChars:"z
"},
1494 "\u03A9
", "KeyZ
", KeyboardEvent.DOM_VK_Z, "z
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1495 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Z,
1496 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u001A
", unmodifiedChars:"Z
"},
1497 "\u00B8
", "KeyZ
", KeyboardEvent.DOM_VK_Z, "Z
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1498 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Z,
1499 modifiers:{metaKey:1}, chars:"z
", unmodifiedChars:"z
"},
1500 "z
", "KeyZ
", KeyboardEvent.DOM_VK_Z, "z
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1503 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_1,
1504 modifiers:{}, chars:"1", unmodifiedChars:"1"},
1505 "1", "Digit1
", KeyboardEvent.DOM_VK_1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1506 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_1,
1507 modifiers:{shiftKey:1}, chars:"!
", unmodifiedChars:"!
"},
1508 "!
", "Digit1
", KeyboardEvent.DOM_VK_1, "!
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1509 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_1,
1510 modifiers:{ctrlKey:1}, chars:"1", unmodifiedChars:"1"},
1511 "1", "Digit1
", KeyboardEvent.DOM_VK_1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1512 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_1,
1513 modifiers:{ctrlKey:1, shiftKey:1}, chars:"1", unmodifiedChars:"!
"},
1514 "!
", "Digit1
", KeyboardEvent.DOM_VK_1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1515 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_1,
1516 modifiers:{altKey:1}, chars:"\u00A1
", unmodifiedChars:"1"},
1517 "\u00A1
", "Digit1
", KeyboardEvent.DOM_VK_1, "\u00A1
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1518 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_1,
1519 modifiers:{altKey:1, shiftKey:1}, chars:"\u2044
", unmodifiedChars:"!
"},
1520 "\u2044
", "Digit1
", KeyboardEvent.DOM_VK_1, "\u2044
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1521 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_1,
1522 modifiers:{altKey:1, ctrlKey:1}, chars:"1", unmodifiedChars:"1"},
1523 "\u00A1
", "Digit1
", KeyboardEvent.DOM_VK_1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1524 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_1,
1525 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"1", unmodifiedChars:"!
"},
1526 "\u2044
", "Digit1
", KeyboardEvent.DOM_VK_1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1527 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_1,
1528 modifiers:{metaKey:1}, chars:"1", unmodifiedChars:"1"},
1529 "1", "Digit1
", KeyboardEvent.DOM_VK_1, "1", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1530 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_2,
1531 modifiers:{}, chars:"2", unmodifiedChars:"2"},
1532 "2", "Digit2
", KeyboardEvent.DOM_VK_2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1533 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_2,
1534 modifiers:{shiftKey:1}, chars:"@
", unmodifiedChars:"@
"},
1535 "@
", "Digit2
", KeyboardEvent.DOM_VK_2, "@
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1536 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_2,
1537 modifiers:{ctrlKey:1}, chars:"2", unmodifiedChars:"2"},
1538 "2", "Digit2
", KeyboardEvent.DOM_VK_2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1539 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_2,
1540 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0000
", unmodifiedChars:"@
"},
1541 "@
", "Digit2
", KeyboardEvent.DOM_VK_2, "@
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1542 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_2,
1543 modifiers:{altKey:1}, chars:"\u2122
", unmodifiedChars:"2"},
1544 "\u2122
", "Digit2
", KeyboardEvent.DOM_VK_2, "\u2122
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1545 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_2,
1546 modifiers:{altKey:1, shiftKey:1}, chars:"\u20AC
", unmodifiedChars:"@
"},
1547 "\u20AC
", "Digit2
", KeyboardEvent.DOM_VK_2, "\u20AC
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1548 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_2,
1549 modifiers:{altKey:1, ctrlKey:1}, chars:"2", unmodifiedChars:"2"},
1550 "\u2122
", "Digit2
", KeyboardEvent.DOM_VK_2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1551 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_2,
1552 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u0000
", unmodifiedChars:"@
"},
1553 "\u20AC
", "Digit2
", KeyboardEvent.DOM_VK_2, "@
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1554 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_2,
1555 modifiers:{metaKey:1}, chars:"2", unmodifiedChars:"2"},
1556 "2", "Digit2
", KeyboardEvent.DOM_VK_2, "2", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1557 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_3,
1558 modifiers:{}, chars:"3", unmodifiedChars:"3"},
1559 "3", "Digit3
", KeyboardEvent.DOM_VK_3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1560 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_3,
1561 modifiers:{shiftKey:1}, chars:"#
", unmodifiedChars:"#
"},
1562 "#
", "Digit3
", KeyboardEvent.DOM_VK_3, "#
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1563 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_3,
1564 modifiers:{ctrlKey:1}, chars:"3", unmodifiedChars:"3"},
1565 "3", "Digit3
", KeyboardEvent.DOM_VK_3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1566 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_3,
1567 modifiers:{ctrlKey:1, shiftKey:1}, chars:"3", unmodifiedChars:"#
"},
1568 "#
", "Digit3
", KeyboardEvent.DOM_VK_3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1569 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_3,
1570 modifiers:{altKey:1}, chars:"\u00A3
", unmodifiedChars:"3"},
1571 "\u00A3
", "Digit3
", KeyboardEvent.DOM_VK_3, "\u00A3
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1572 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_3,
1573 modifiers:{altKey:1, shiftKey:1}, chars:"\u2039
", unmodifiedChars:"#
"},
1574 "\u2039
", "Digit3
", KeyboardEvent.DOM_VK_3, "\u2039
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1575 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_3,
1576 modifiers:{altKey:1, ctrlKey:1}, chars:"3", unmodifiedChars:"3"},
1577 "\u00A3
", "Digit3
", KeyboardEvent.DOM_VK_3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1578 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_3,
1579 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"3", unmodifiedChars:"#
"},
1580 "\u2039
", "Digit3
", KeyboardEvent.DOM_VK_3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1581 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_3,
1582 modifiers:{metaKey:1}, chars:"3", unmodifiedChars:"3"},
1583 "3", "Digit3
", KeyboardEvent.DOM_VK_3, "3", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1584 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_4,
1585 modifiers:{}, chars:"4", unmodifiedChars:"4"},
1586 "4", "Digit4
", KeyboardEvent.DOM_VK_4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1587 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_4,
1588 modifiers:{shiftKey:1}, chars:"$
", unmodifiedChars:"$
"},
1589 "$
", "Digit4
", KeyboardEvent.DOM_VK_4, "$
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1590 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_4,
1591 modifiers:{ctrlKey:1}, chars:"4", unmodifiedChars:"4"},
1592 "4", "Digit4
", KeyboardEvent.DOM_VK_4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1593 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_4,
1594 modifiers:{ctrlKey:1, shiftKey:1}, chars:"4", unmodifiedChars:"$
"},
1595 "$
", "Digit4
", KeyboardEvent.DOM_VK_4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1596 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_4,
1597 modifiers:{altKey:1}, chars:"\u00A2
", unmodifiedChars:"4"},
1598 "\u00A2
", "Digit4
", KeyboardEvent.DOM_VK_4, "\u00A2
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1599 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_4,
1600 modifiers:{altKey:1, shiftKey:1}, chars:"\u203A
", unmodifiedChars:"$
"},
1601 "\u203A
", "Digit4
", KeyboardEvent.DOM_VK_4, "\u203A
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1602 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_4,
1603 modifiers:{altKey:1, ctrlKey:1}, chars:"4", unmodifiedChars:"4"},
1604 "\u00A2
", "Digit4
", KeyboardEvent.DOM_VK_4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1605 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_4,
1606 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"4", unmodifiedChars:"$
"},
1607 "\u203A
", "Digit4
", KeyboardEvent.DOM_VK_4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1608 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_4,
1609 modifiers:{metaKey:1}, chars:"4", unmodifiedChars:"4"},
1610 "4", "Digit4
", KeyboardEvent.DOM_VK_4, "4", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1611 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_5,
1612 modifiers:{}, chars:"5", unmodifiedChars:"5"},
1613 "5", "Digit5
", KeyboardEvent.DOM_VK_5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1614 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_5,
1615 modifiers:{shiftKey:1}, chars:"%
", unmodifiedChars:"%
"},
1616 "%
", "Digit5
", KeyboardEvent.DOM_VK_5, "%
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1617 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_5,
1618 modifiers:{ctrlKey:1}, chars:"5", unmodifiedChars:"5"},
1619 "5", "Digit5
", KeyboardEvent.DOM_VK_5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1620 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_5,
1621 modifiers:{ctrlKey:1, shiftKey:1}, chars:"5", unmodifiedChars:"%
"},
1622 "%
", "Digit5
", KeyboardEvent.DOM_VK_5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1623 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_5,
1624 modifiers:{altKey:1}, chars:"\u221E
", unmodifiedChars:"5"},
1625 "\u221E
", "Digit5
", KeyboardEvent.DOM_VK_5, "\u221E
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1626 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_5,
1627 modifiers:{altKey:1, shiftKey:1}, chars:"\uFB01
", unmodifiedChars:"%
"},
1628 "\uFB01
", "Digit5
", KeyboardEvent.DOM_VK_5, "\uFB01
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1629 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_5,
1630 modifiers:{altKey:1, ctrlKey:1}, chars:"5", unmodifiedChars:"5"},
1631 "\u221E
", "Digit5
", KeyboardEvent.DOM_VK_5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1632 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_5,
1633 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"5", unmodifiedChars:"%
"},
1634 "\uFB01
", "Digit5
", KeyboardEvent.DOM_VK_5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1635 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_5,
1636 modifiers:{metaKey:1}, chars:"5", unmodifiedChars:"5"},
1637 "5", "Digit5
", KeyboardEvent.DOM_VK_5, "5", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1638 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_6,
1639 modifiers:{}, chars:"6", unmodifiedChars:"6"},
1640 "6", "Digit6
", KeyboardEvent.DOM_VK_6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1641 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_6,
1642 modifiers:{shiftKey:1}, chars:"^
", unmodifiedChars:"^
"},
1643 "^
", "Digit6
", KeyboardEvent.DOM_VK_6, "^
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1644 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_6,
1645 modifiers:{ctrlKey:1}, chars:"6", unmodifiedChars:"6"},
1646 "6", "Digit6
", KeyboardEvent.DOM_VK_6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1647 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_6,
1648 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u001E
", unmodifiedChars:"^
"},
1649 "^
", "Digit6
", KeyboardEvent.DOM_VK_6, "\u0000
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1650 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_6,
1651 modifiers:{altKey:1}, chars:"\u00A7
", unmodifiedChars:"6"},
1652 "\u00A7
", "Digit6
", KeyboardEvent.DOM_VK_6, "\u00A7
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1653 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_6,
1654 modifiers:{altKey:1, shiftKey:1}, chars:"\uFB02
", unmodifiedChars:"^
"},
1655 "\uFB02
", "Digit6
", KeyboardEvent.DOM_VK_6, "\uFB02
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1656 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_6,
1657 modifiers:{altKey:1, ctrlKey:1}, chars:"6", unmodifiedChars:"6"},
1658 "\u00A7
", "Digit6
", KeyboardEvent.DOM_VK_6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1659 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_6,
1660 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u001E
", unmodifiedChars:"^
"},
1661 "\uFB02
", "Digit6
", KeyboardEvent.DOM_VK_6, "\u0000
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1662 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_6,
1663 modifiers:{metaKey:1}, chars:"6", unmodifiedChars:"6"},
1664 "6", "Digit6
", KeyboardEvent.DOM_VK_6, "6", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1665 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_7,
1666 modifiers:{}, chars:"7", unmodifiedChars:"7"},
1667 "7", "Digit7
", KeyboardEvent.DOM_VK_7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1668 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_7,
1669 modifiers:{shiftKey:1}, chars:"&
", unmodifiedChars:"&
"},
1670 "&
", "Digit7
", KeyboardEvent.DOM_VK_7, "&
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1671 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_7,
1672 modifiers:{ctrlKey:1}, chars:"7", unmodifiedChars:"7"},
1673 "7", "Digit7
", KeyboardEvent.DOM_VK_7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1674 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_7,
1675 modifiers:{ctrlKey:1, shiftKey:1}, chars:"7", unmodifiedChars:"&
"},
1676 "&
", "Digit7
", KeyboardEvent.DOM_VK_7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1677 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_7,
1678 modifiers:{altKey:1}, chars:"\u00B6
", unmodifiedChars:"7"},
1679 "\u00B6
", "Digit7
", KeyboardEvent.DOM_VK_7, "\u00B6
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1680 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_7,
1681 modifiers:{altKey:1, shiftKey:1}, chars:"\u2021
", unmodifiedChars:"&
"},
1682 "\u2021
", "Digit7
", KeyboardEvent.DOM_VK_7, "\u2021
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1683 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_7,
1684 modifiers:{altKey:1, ctrlKey:1}, chars:"7", unmodifiedChars:"7"},
1685 "\u00B6
", "Digit7
", KeyboardEvent.DOM_VK_7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1686 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_7,
1687 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"7", unmodifiedChars:"&
"},
1688 "\u2021
", "Digit7
", KeyboardEvent.DOM_VK_7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1689 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_7,
1690 modifiers:{metaKey:1}, chars:"7", unmodifiedChars:"7"},
1691 "7", "Digit7
", KeyboardEvent.DOM_VK_7, "7", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1692 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_8,
1693 modifiers:{}, chars:"8", unmodifiedChars:"8"},
1694 "8", "Digit8
", KeyboardEvent.DOM_VK_8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1695 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_8,
1696 modifiers:{shiftKey:1}, chars:"*
", unmodifiedChars:"*
"},
1697 "*
", "Digit8
", KeyboardEvent.DOM_VK_8, "*
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1698 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_8,
1699 modifiers:{ctrlKey:1}, chars:"8", unmodifiedChars:"8"},
1700 "8", "Digit8
", KeyboardEvent.DOM_VK_8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1701 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_8,
1702 modifiers:{ctrlKey:1, shiftKey:1}, chars:"8", unmodifiedChars:"*
"},
1703 "*
", "Digit8
", KeyboardEvent.DOM_VK_8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1704 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_8,
1705 modifiers:{altKey:1}, chars:"\u2022
", unmodifiedChars:"8"},
1706 "\u2022
", "Digit8
", KeyboardEvent.DOM_VK_8, "\u2022
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1707 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_8,
1708 modifiers:{altKey:1, shiftKey:1}, chars:"\u00B0
", unmodifiedChars:"*
"},
1709 "\u00B0
", "Digit8
", KeyboardEvent.DOM_VK_8, "\u00B0
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1710 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_8,
1711 modifiers:{altKey:1, ctrlKey:1}, chars:"8", unmodifiedChars:"8"},
1712 "\u2022
", "Digit8
", KeyboardEvent.DOM_VK_8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1713 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_8,
1714 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"8", unmodifiedChars:"*
"},
1715 "\u00B0
", "Digit8
", KeyboardEvent.DOM_VK_8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1716 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_8,
1717 modifiers:{metaKey:1}, chars:"8", unmodifiedChars:"8"},
1718 "8", "Digit8
", KeyboardEvent.DOM_VK_8, "8", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1719 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_9,
1720 modifiers:{}, chars:"9", unmodifiedChars:"9"},
1721 "9", "Digit9
", KeyboardEvent.DOM_VK_9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1722 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_9,
1723 modifiers:{shiftKey:1}, chars:"(
", unmodifiedChars:"(
"},
1724 "(
", "Digit9
", KeyboardEvent.DOM_VK_9, "(
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1725 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_9,
1726 modifiers:{ctrlKey:1}, chars:"9", unmodifiedChars:"9"},
1727 "9", "Digit9
", KeyboardEvent.DOM_VK_9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1728 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_9,
1729 modifiers:{ctrlKey:1, shiftKey:1}, chars:"9", unmodifiedChars:"(
"},
1730 "(
", "Digit9
", KeyboardEvent.DOM_VK_9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1731 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_9,
1732 modifiers:{altKey:1}, chars:"\u00AA
", unmodifiedChars:"9"},
1733 "\u00AA
", "Digit9
", KeyboardEvent.DOM_VK_9, "\u00AA
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1734 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_9,
1735 modifiers:{altKey:1, shiftKey:1}, chars:"\u00B7
", unmodifiedChars:"(
"},
1736 "\u00B7
", "Digit9
", KeyboardEvent.DOM_VK_9, "\u00B7
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1737 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_9,
1738 modifiers:{altKey:1, ctrlKey:1}, chars:"9", unmodifiedChars:"9"},
1739 "\u00AA
", "Digit9
", KeyboardEvent.DOM_VK_9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1740 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_9,
1741 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"9", unmodifiedChars:"(
"},
1742 "\u00B7
", "Digit9
", KeyboardEvent.DOM_VK_9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1743 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_9,
1744 modifiers:{metaKey:1}, chars:"9", unmodifiedChars:"9"},
1745 "9", "Digit9
", KeyboardEvent.DOM_VK_9, "9", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1746 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_0,
1747 modifiers:{}, chars:"0", unmodifiedChars:"0"},
1748 "0", "Digit0
", KeyboardEvent.DOM_VK_0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1749 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_0,
1750 modifiers:{shiftKey:1}, chars:")
", unmodifiedChars:")
"},
1751 ")
", "Digit0
", KeyboardEvent.DOM_VK_0, ")
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1752 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_0,
1753 modifiers:{ctrlKey:1}, chars:"0", unmodifiedChars:"0"},
1754 "0", "Digit0
", KeyboardEvent.DOM_VK_0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1755 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_0,
1756 modifiers:{ctrlKey:1, shiftKey:1}, chars:"0", unmodifiedChars:")
"},
1757 ")
", "Digit0
", KeyboardEvent.DOM_VK_0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1758 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_0,
1759 modifiers:{altKey:1}, chars:"\u00BA
", unmodifiedChars:"0"},
1760 "\u00BA
", "Digit0
", KeyboardEvent.DOM_VK_0, "\u00BA
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1761 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_0,
1762 modifiers:{altKey:1, shiftKey:1}, chars:"\u201A
", unmodifiedChars:")
"},
1763 "\u201A
", "Digit0
", KeyboardEvent.DOM_VK_0, "\u201A
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1764 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_0,
1765 modifiers:{altKey:1, ctrlKey:1}, chars:"0", unmodifiedChars:"0"},
1766 "\u00BA
", "Digit0
", KeyboardEvent.DOM_VK_0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1767 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_0,
1768 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"0", unmodifiedChars:")
"},
1769 "\u201A
", "Digit0
", KeyboardEvent.DOM_VK_0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1770 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_0,
1771 modifiers:{metaKey:1}, chars:"0", unmodifiedChars:"0"},
1772 "0", "Digit0
", KeyboardEvent.DOM_VK_0, "0", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1775 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Grave,
1776 modifiers:{}, chars:"`
", unmodifiedChars:"`
"},
1777 "`
", "Backquote
", KeyboardEvent.DOM_VK_BACK_QUOTE, "`
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1778 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Grave,
1779 modifiers:{shiftKey:1}, chars:"~
", unmodifiedChars:"~
"},
1780 "~
", "Backquote
", KeyboardEvent.DOM_VK_BACK_QUOTE, "~
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1781 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Grave,
1782 modifiers:{ctrlKey:1}, chars:"`
", unmodifiedChars:"`
"},
1783 "`
", "Backquote
", KeyboardEvent.DOM_VK_BACK_QUOTE, "`
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1784 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Grave,
1785 modifiers:{ctrlKey:1, shiftKey:1}, chars:"`
", unmodifiedChars:"~
"},
1786 "~
", "Backquote
", KeyboardEvent.DOM_VK_BACK_QUOTE, "`
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1787 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Grave,
1788 modifiers:{altKey:1}, chars:"", unmodifiedChars:"`
"},
1789 "Dead
", "Backquote
", KeyboardEvent.DOM_VK_BACK_QUOTE, "`
", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); // dead key
1790 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Grave,
1791 modifiers:{altKey:1, shiftKey:1}, chars:"`
", unmodifiedChars:"~
"},
1792 "`
", "Backquote
", KeyboardEvent.DOM_VK_BACK_QUOTE, "`
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1793 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Grave,
1794 modifiers:{altKey:1, ctrlKey:1}, chars:"`
", unmodifiedChars:"`
"},
1795 "Dead
", "Backquote
", KeyboardEvent.DOM_VK_BACK_QUOTE, "`
", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1796 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Grave,
1797 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"`
", unmodifiedChars:"~
"},
1798 "`
", "Backquote
", KeyboardEvent.DOM_VK_BACK_QUOTE, "`
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1799 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Grave,
1800 modifiers:{metaKey:1}, chars:"`
", unmodifiedChars:"`
"},
1801 "`
", "Backquote
", KeyboardEvent.DOM_VK_BACK_QUOTE, "`
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1802 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Minus,
1803 modifiers:{}, chars:"-
", unmodifiedChars:"-
"},
1804 "-
", "Minus
", KeyboardEvent.DOM_VK_HYPHEN_MINUS, "-
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1805 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Minus,
1806 modifiers:{shiftKey:1}, chars:"_
", unmodifiedChars:"_
"},
1807 "_
", "Minus
", KeyboardEvent.DOM_VK_HYPHEN_MINUS, "_
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1808 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Minus,
1809 modifiers:{ctrlKey:1}, chars:"\u001F
", unmodifiedChars:"-
"},
1810 "-
", "Minus
", KeyboardEvent.DOM_VK_HYPHEN_MINUS, "\u0000
" /* TODO */, SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1811 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Minus,
1812 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u001F
", unmodifiedChars:"_
"},
1813 "_
", "Minus
", KeyboardEvent.DOM_VK_HYPHEN_MINUS, "\u0000
" /* TODO */, SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1814 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Minus,
1815 modifiers:{altKey:1}, chars:"\u2013
", unmodifiedChars:"-
"},
1816 "\u2013
", "Minus
", KeyboardEvent.DOM_VK_HYPHEN_MINUS, "\u2013
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1817 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Minus,
1818 modifiers:{altKey:1, shiftKey:1}, chars:"\u2014
", unmodifiedChars:"_
"},
1819 "\u2014
", "Minus
", KeyboardEvent.DOM_VK_HYPHEN_MINUS, "\u2014
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1820 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Minus,
1821 modifiers:{altKey:1, ctrlKey:1}, chars:"\u001F
", unmodifiedChars:"-
"},
1822 "\u2013
", "Minus
", KeyboardEvent.DOM_VK_HYPHEN_MINUS, "\u0000
" /* TODO */, SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1823 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Minus,
1824 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u001F
", unmodifiedChars:"_
"},
1825 "\u2014
", "Minus
", KeyboardEvent.DOM_VK_HYPHEN_MINUS, "\u0000
" /* TODO */, SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1826 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Minus,
1827 modifiers:{metaKey:1}, chars:"-
", unmodifiedChars:"-
"},
1828 "-
", "Minus
", KeyboardEvent.DOM_VK_HYPHEN_MINUS, "-
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1829 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Equal,
1830 modifiers:{}, chars:"=
", unmodifiedChars:"=
"},
1831 "=
", "Equal
", KeyboardEvent.DOM_VK_EQUALS, "=
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1832 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Equal,
1833 modifiers:{shiftKey:1}, chars:"+
", unmodifiedChars:"+
"},
1834 "+
", "Equal
", KeyboardEvent.DOM_VK_EQUALS, "+
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1835 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Equal,
1836 modifiers:{ctrlKey:1}, chars:"=
", unmodifiedChars:"=
"},
1837 "=
", "Equal
", KeyboardEvent.DOM_VK_EQUALS, "=
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1838 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Equal,
1839 modifiers:{ctrlKey:1, shiftKey:1}, chars:"=
", unmodifiedChars:"+
"},
1840 "+
", "Equal
", KeyboardEvent.DOM_VK_EQUALS, "=
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1841 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Equal,
1842 modifiers:{altKey:1}, chars:"\u2260
", unmodifiedChars:"=
"},
1843 "\u2260
", "Equal
", KeyboardEvent.DOM_VK_EQUALS, "\u2260
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1844 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Equal,
1845 modifiers:{altKey:1, shiftKey:1}, chars:"\u00B1
", unmodifiedChars:"+
"},
1846 "\u00B1
", "Equal
", KeyboardEvent.DOM_VK_EQUALS, "\u00B1
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1847 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Equal,
1848 modifiers:{altKey:1, ctrlKey:1}, chars:"=
", unmodifiedChars:"=
"},
1849 "\u2260
", "Equal
", KeyboardEvent.DOM_VK_EQUALS, "=
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1850 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Equal,
1851 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"=
", unmodifiedChars:"+
"},
1852 "\u00B1
", "Equal
", KeyboardEvent.DOM_VK_EQUALS, "=
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1853 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Equal,
1854 modifiers:{metaKey:1}, chars:"=
", unmodifiedChars:"=
"},
1855 "=
", "Equal
", KeyboardEvent.DOM_VK_EQUALS, "=
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1856 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_LeftBracket,
1857 modifiers:{}, chars:"[
", unmodifiedChars:"[
"},
1858 "[
", "BracketLeft
", KeyboardEvent.DOM_VK_OPEN_BRACKET, "[
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1859 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_LeftBracket,
1860 modifiers:{shiftKey:1}, chars:"{
", unmodifiedChars:"{
"},
1861 "{
", "BracketLeft
", KeyboardEvent.DOM_VK_OPEN_BRACKET, "{
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1862 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_LeftBracket,
1863 modifiers:{ctrlKey:1}, chars:"\u001B
", unmodifiedChars:"[
"},
1864 "[
", "BracketLeft
", KeyboardEvent.DOM_VK_OPEN_BRACKET, "\u0000
" /* TODO */, SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1865 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_LeftBracket,
1866 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u001B
", unmodifiedChars:"{
"},
1867 "{
", "BracketLeft
", KeyboardEvent.DOM_VK_OPEN_BRACKET, "\u0000
" /* TODO */, SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1868 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_LeftBracket,
1869 modifiers:{altKey:1}, chars:"\u201C
", unmodifiedChars:"[
"},
1870 "\u201C
", "BracketLeft
", KeyboardEvent.DOM_VK_OPEN_BRACKET, "\u201C
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1871 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_LeftBracket,
1872 modifiers:{altKey:1, shiftKey:1}, chars:"\u201D
", unmodifiedChars:"{
"},
1873 "\u201D
", "BracketLeft
", KeyboardEvent.DOM_VK_OPEN_BRACKET, "\u201D
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1874 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_LeftBracket,
1875 modifiers:{altKey:1, ctrlKey:1}, chars:"\u001B
", unmodifiedChars:"[
"},
1876 "\u201C
", "BracketLeft
", KeyboardEvent.DOM_VK_OPEN_BRACKET, "\u0000
" /* TODO */, SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1877 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_LeftBracket,
1878 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u001B
", unmodifiedChars:"{
"},
1879 "\u201D
", "BracketLeft
", KeyboardEvent.DOM_VK_OPEN_BRACKET, "\u0000
" /* TODO */, SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1880 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_LeftBracket,
1881 modifiers:{metaKey:1}, chars:"[
", unmodifiedChars:"[
"},
1882 "[
", "BracketLeft
", KeyboardEvent.DOM_VK_OPEN_BRACKET, "[
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1883 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_RightBracket,
1884 modifiers:{}, chars:"]
", unmodifiedChars:"]
"},
1885 "]
", "BracketRight
", KeyboardEvent.DOM_VK_CLOSE_BRACKET, "]
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1886 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_RightBracket,
1887 modifiers:{shiftKey:1}, chars:"}
", unmodifiedChars:"}
"},
1888 "}
", "BracketRight
", KeyboardEvent.DOM_VK_CLOSE_BRACKET, "}
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1889 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_RightBracket,
1890 modifiers:{ctrlKey:1}, chars:"\u001D
", unmodifiedChars:"]
"},
1891 "]
", "BracketRight
", KeyboardEvent.DOM_VK_CLOSE_BRACKET, "\u0000
" /* TODO */, SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1892 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_RightBracket,
1893 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u001D
", unmodifiedChars:"}
"},
1894 "}
", "BracketRight
", KeyboardEvent.DOM_VK_CLOSE_BRACKET, "\u0000
" /* TODO */, SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1895 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_RightBracket,
1896 modifiers:{altKey:1}, chars:"\u2018
", unmodifiedChars:"]
"},
1897 "\u2018
", "BracketRight
", KeyboardEvent.DOM_VK_CLOSE_BRACKET, "\u2018
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1898 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_RightBracket,
1899 modifiers:{altKey:1, shiftKey:1}, chars:"\u2019
", unmodifiedChars:"}
"},
1900 "\u2019
", "BracketRight
", KeyboardEvent.DOM_VK_CLOSE_BRACKET, "\u2019
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1901 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_RightBracket,
1902 modifiers:{altKey:1, ctrlKey:1}, chars:"\u001D
", unmodifiedChars:"]
"},
1903 "\u2018
", "BracketRight
", KeyboardEvent.DOM_VK_CLOSE_BRACKET, "\u0000
" /* TODO */, SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1904 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_RightBracket,
1905 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u001D
", unmodifiedChars:"}
"},
1906 "\u2019
", "BracketRight
", KeyboardEvent.DOM_VK_CLOSE_BRACKET, "\u0000
" /* TODO */, SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1907 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_RightBracket,
1908 modifiers:{metaKey:1}, chars:"]
", unmodifiedChars:"]
"},
1909 "]
", "BracketRight
", KeyboardEvent.DOM_VK_CLOSE_BRACKET, "]
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1910 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Backslash,
1911 modifiers:{}, chars:"\\
", unmodifiedChars:"\\
"},
1912 "\\
", "Backslash
", KeyboardEvent.DOM_VK_BACK_SLASH, "\\
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1913 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Backslash,
1914 modifiers:{shiftKey:1}, chars:"|
", unmodifiedChars:"|
"},
1915 "|
", "Backslash
", KeyboardEvent.DOM_VK_BACK_SLASH, "|
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1916 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Backslash,
1917 modifiers:{ctrlKey:1}, chars:"\u001C
", unmodifiedChars:"\\
"},
1918 "\\
", "Backslash
", KeyboardEvent.DOM_VK_BACK_SLASH, "\u0000
" /* TODO */, SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1919 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Backslash,
1920 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u001C
", unmodifiedChars:"|
"},
1921 "|
", "Backslash
", KeyboardEvent.DOM_VK_BACK_SLASH, "\u0000
" /* TODO */, SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1922 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Backslash,
1923 modifiers:{altKey:1}, chars:"\u00AB
", unmodifiedChars:"\\
"},
1924 "\u00AB
", "Backslash
", KeyboardEvent.DOM_VK_BACK_SLASH, "\u00AB
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1925 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Backslash,
1926 modifiers:{altKey:1, shiftKey:1}, chars:"\u00BB
", unmodifiedChars:"|
"},
1927 "\u00BB
", "Backslash
", KeyboardEvent.DOM_VK_BACK_SLASH, "\u00BB
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1928 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Backslash,
1929 modifiers:{altKey:1, ctrlKey:1}, chars:"\u001C
", unmodifiedChars:"\\
"},
1930 "\u00AB
", "Backslash
", KeyboardEvent.DOM_VK_BACK_SLASH, "\u0000
" /* TODO */, SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1931 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Backslash,
1932 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u001C
", unmodifiedChars:"|
"},
1933 "\u00BB
", "Backslash
", KeyboardEvent.DOM_VK_BACK_SLASH, "\u0000
" /* TODO */, SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1934 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Backslash,
1935 modifiers:{metaKey:1}, chars:"\\
", unmodifiedChars:"\\
"},
1936 "\\
", "Backslash
", KeyboardEvent.DOM_VK_BACK_SLASH, "\\
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1937 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Semicolon,
1938 modifiers:{}, chars:";
", unmodifiedChars:";
"},
1939 ";
", "Semicolon
", KeyboardEvent.DOM_VK_SEMICOLON, ";
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1940 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Semicolon,
1941 modifiers:{shiftKey:1}, chars:":
", unmodifiedChars:":
"},
1942 ":
", "Semicolon
", KeyboardEvent.DOM_VK_SEMICOLON, ":
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1943 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Semicolon,
1944 modifiers:{ctrlKey:1}, chars:";
", unmodifiedChars:";
"},
1945 ";
", "Semicolon
", KeyboardEvent.DOM_VK_SEMICOLON, ";
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1946 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Semicolon,
1947 modifiers:{ctrlKey:1, shiftKey:1}, chars:";
", unmodifiedChars:":
"},
1948 ":
", "Semicolon
", KeyboardEvent.DOM_VK_SEMICOLON, ";
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1949 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Semicolon,
1950 modifiers:{altKey:1}, chars:"\u2026
", unmodifiedChars:";
"},
1951 "\u2026
", "Semicolon
", KeyboardEvent.DOM_VK_SEMICOLON, "\u2026
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1952 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Semicolon,
1953 modifiers:{altKey:1, shiftKey:1}, chars:"\u00DA
", unmodifiedChars:":
"},
1954 "\u00DA
", "Semicolon
", KeyboardEvent.DOM_VK_SEMICOLON, "\u00DA
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1955 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Semicolon,
1956 modifiers:{altKey:1, ctrlKey:1}, chars:";
", unmodifiedChars:";
"},
1957 "\u2026
", "Semicolon
", KeyboardEvent.DOM_VK_SEMICOLON, ";
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1958 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Semicolon,
1959 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:";
", unmodifiedChars:":
"},
1960 "\u00DA
", "Semicolon
", KeyboardEvent.DOM_VK_SEMICOLON, ";
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1961 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Semicolon,
1962 modifiers:{metaKey:1}, chars:";
", unmodifiedChars:";
"},
1963 ";
", "Semicolon
", KeyboardEvent.DOM_VK_SEMICOLON, ";
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1964 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Quote,
1965 modifiers:{}, chars:"'
", unmodifiedChars:"'
"},
1966 "'
", "Quote
", KeyboardEvent.DOM_VK_QUOTE, "'
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1967 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Quote,
1968 modifiers:{shiftKey:1}, chars:"\
"", unmodifiedChars:
"\""},
1969 "\
"",
"Quote", KeyboardEvent.DOM_VK_QUOTE,
"\"", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1970 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Quote,
1971 modifiers:{ctrlKey:1}, chars:"'
", unmodifiedChars:"'
"},
1972 "'
", "Quote
", KeyboardEvent.DOM_VK_QUOTE, "'
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1973 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Quote,
1974 modifiers:{ctrlKey:1, shiftKey:1}, chars:"'
", unmodifiedChars:"\
""},
1975 "\"", "Quote
", KeyboardEvent.DOM_VK_QUOTE, "'
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1976 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Quote,
1977 modifiers:{altKey:1}, chars:"\u00E6
", unmodifiedChars:"'
"},
1978 "\u00E6
", "Quote
", KeyboardEvent.DOM_VK_QUOTE, "\u00E6
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1979 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Quote,
1980 modifiers:{altKey:1, shiftKey:1}, chars:"\u00C6
", unmodifiedChars:"\
""},
1981 "\u00C6",
"Quote", KeyboardEvent.DOM_VK_QUOTE,
"\u00C6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1982 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Quote,
1983 modifiers:{altKey:
1, ctrlKey:
1}, chars:
"'", unmodifiedChars:
"'"},
1984 "\u00E6",
"Quote", KeyboardEvent.DOM_VK_QUOTE,
"'", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1985 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Quote,
1986 modifiers:{altKey:
1, ctrlKey:
1, shiftKey:
1}, chars:
"'", unmodifiedChars:
"\""},
1987 "\u00C6
", "Quote
", KeyboardEvent.DOM_VK_QUOTE, "'
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1988 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Quote,
1989 modifiers:{metaKey:1}, chars:"'
", unmodifiedChars:"'
"},
1990 "'
", "Quote
", KeyboardEvent.DOM_VK_QUOTE, "'
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1991 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Comma,
1992 modifiers:{}, chars:",
", unmodifiedChars:",
"},
1993 ",
", "Comma
", KeyboardEvent.DOM_VK_COMMA, ",
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1994 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Comma,
1995 modifiers:{shiftKey:1}, chars:"<
", unmodifiedChars:"<
"},
1996 "<
", "Comma
", KeyboardEvent.DOM_VK_COMMA, "<
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
1997 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Comma,
1998 modifiers:{ctrlKey:1}, chars:",
", unmodifiedChars:",
"},
1999 ",
", "Comma
", KeyboardEvent.DOM_VK_COMMA, ",
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2000 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Comma,
2001 modifiers:{ctrlKey:1, shiftKey:1}, chars:",
", unmodifiedChars:"<
"},
2002 "<
", "Comma
", KeyboardEvent.DOM_VK_COMMA, ",
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2003 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Comma,
2004 modifiers:{altKey:1}, chars:"\u2264
", unmodifiedChars:",
"},
2005 "\u2264
", "Comma
", KeyboardEvent.DOM_VK_COMMA, "\u2264
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2006 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Comma,
2007 modifiers:{altKey:1, shiftKey:1}, chars:"\u00AF
", unmodifiedChars:"<
"},
2008 "\u00AF
", "Comma
", KeyboardEvent.DOM_VK_COMMA, "\u00AF
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2009 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Comma,
2010 modifiers:{altKey:1, ctrlKey:1}, chars:",
", unmodifiedChars:",
"},
2011 "\u2264
", "Comma
", KeyboardEvent.DOM_VK_COMMA, ",
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2012 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Comma,
2013 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:",
", unmodifiedChars:"<
"},
2014 "\u00AF
", "Comma
", KeyboardEvent.DOM_VK_COMMA, ",
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2015 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Comma,
2016 modifiers:{metaKey:1}, chars:",
", unmodifiedChars:",
"},
2017 ",
", "Comma
", KeyboardEvent.DOM_VK_COMMA, ",
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2018 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Period,
2019 modifiers:{}, chars:".
", unmodifiedChars:".
"},
2020 ".
", "Period
", KeyboardEvent.DOM_VK_PERIOD, ".
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2021 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Period,
2022 modifiers:{shiftKey:1}, chars:">", unmodifiedChars:">"},
2023 ">", "Period
", KeyboardEvent.DOM_VK_PERIOD, ">", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2024 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Period,
2025 modifiers:{ctrlKey:1}, chars:".
", unmodifiedChars:".
"},
2026 ".
", "Period
", KeyboardEvent.DOM_VK_PERIOD, ".
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2027 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Period,
2028 modifiers:{ctrlKey:1, shiftKey:1}, chars:".
", unmodifiedChars:">"},
2029 ">", "Period
", KeyboardEvent.DOM_VK_PERIOD, ".
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2030 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Period,
2031 modifiers:{altKey:1}, chars:"\u2265
", unmodifiedChars:".
"},
2032 "\u2265
", "Period
", KeyboardEvent.DOM_VK_PERIOD, "\u2265
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2033 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Period,
2034 modifiers:{altKey:1, shiftKey:1}, chars:"\u02D8
", unmodifiedChars:">"},
2035 "\u02D8
", "Period
", KeyboardEvent.DOM_VK_PERIOD, "\u02D8
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2036 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Period,
2037 modifiers:{altKey:1, ctrlKey:1}, chars:".
", unmodifiedChars:".
"},
2038 "\u2265
", "Period
", KeyboardEvent.DOM_VK_PERIOD, ".
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2039 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Period,
2040 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:".
", unmodifiedChars:">"},
2041 "\u02D8
", "Period
", KeyboardEvent.DOM_VK_PERIOD, ".
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2042 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Period,
2043 modifiers:{metaKey:1}, chars:".
", unmodifiedChars:".
"},
2044 ".
", "Period
", KeyboardEvent.DOM_VK_PERIOD, ".
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2045 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Slash,
2046 modifiers:{}, chars:"/
", unmodifiedChars:"/
"},
2047 "/
", "Slash
", KeyboardEvent.DOM_VK_SLASH, "/
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2048 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Slash,
2049 modifiers:{shiftKey:1}, chars:"?
", unmodifiedChars:"?
"},
2050 "?
", "Slash
", KeyboardEvent.DOM_VK_SLASH, "?
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2051 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Slash,
2052 modifiers:{ctrlKey:1}, chars:"/
", unmodifiedChars:"/
"},
2053 "/
", "Slash
", KeyboardEvent.DOM_VK_SLASH, "/
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2054 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Slash,
2055 modifiers:{ctrlKey:1, shiftKey:1}, chars:"/
", unmodifiedChars:"?
"},
2056 "?
", "Slash
", KeyboardEvent.DOM_VK_SLASH, "/
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2057 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Slash,
2058 modifiers:{altKey:1}, chars:"\u00F7
", unmodifiedChars:"/
"},
2059 "\u00F7
", "Slash
", KeyboardEvent.DOM_VK_SLASH, "\u00F7
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2060 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Slash,
2061 modifiers:{altKey:1, shiftKey:1}, chars:"\u00BF
", unmodifiedChars:"?
"},
2062 "\u00BF
", "Slash
", KeyboardEvent.DOM_VK_SLASH, "\u00BF
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2063 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Slash,
2064 modifiers:{altKey:1, ctrlKey:1}, chars:"/
", unmodifiedChars:"/
"},
2065 "\u00F7
", "Slash
", KeyboardEvent.DOM_VK_SLASH, "/
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2066 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Slash,
2067 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"/
", unmodifiedChars:"?
"},
2068 "\u00BF
", "Slash
", KeyboardEvent.DOM_VK_SLASH, "/
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2069 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Slash,
2070 modifiers:{metaKey:1}, chars:"/
", unmodifiedChars:"/
"},
2071 "/
", "Slash
", KeyboardEvent.DOM_VK_SLASH, "/
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2074 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad1,
2075 modifiers:{numericKeyPadKey:1}, chars:"1", unmodifiedChars:"1"},
2076 "1", "Numpad1
", KeyboardEvent.DOM_VK_NUMPAD1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2077 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad1,
2078 modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"1", unmodifiedChars:"1"},
2079 "1", "Numpad1
", KeyboardEvent.DOM_VK_NUMPAD1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2080 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad1,
2081 modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"1", unmodifiedChars:"1"},
2082 "1", "Numpad1
", KeyboardEvent.DOM_VK_NUMPAD1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2083 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad1,
2084 modifiers:{numericKeyPadKey:1, ctrlKey:1, shiftKey:1}, chars:"1", unmodifiedChars:"1"},
2085 "1", "Numpad1
", KeyboardEvent.DOM_VK_NUMPAD1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2086 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad1,
2087 modifiers:{numericKeyPadKey:1, altKey:1}, chars:"1", unmodifiedChars:"1"},
2088 "1", "Numpad1
", KeyboardEvent.DOM_VK_NUMPAD1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2089 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad1,
2090 modifiers:{numericKeyPadKey:1, altKey:1, shiftKey:1}, chars:"1", unmodifiedChars:"1"},
2091 "1", "Numpad1
", KeyboardEvent.DOM_VK_NUMPAD1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2092 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad1,
2093 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1}, chars:"1", unmodifiedChars:"1"},
2094 "1", "Numpad1
", KeyboardEvent.DOM_VK_NUMPAD1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2095 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad1,
2096 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1, shiftKey:1}, chars:"1", unmodifiedChars:"1"},
2097 "1", "Numpad1
", KeyboardEvent.DOM_VK_NUMPAD1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2098 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad1,
2099 modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"1", unmodifiedChars:"1"},
2100 "1", "Numpad1
", KeyboardEvent.DOM_VK_NUMPAD1, "1", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2101 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad2,
2102 modifiers:{numericKeyPadKey:1}, chars:"2", unmodifiedChars:"2"},
2103 "2", "Numpad2
", KeyboardEvent.DOM_VK_NUMPAD2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2104 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad2,
2105 modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"2", unmodifiedChars:"2"},
2106 "2", "Numpad2
", KeyboardEvent.DOM_VK_NUMPAD2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2107 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad2,
2108 modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"2", unmodifiedChars:"2"},
2109 "2", "Numpad2
", KeyboardEvent.DOM_VK_NUMPAD2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2110 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad2,
2111 modifiers:{numericKeyPadKey:1, ctrlKey:1, shiftKey:1}, chars:"2", unmodifiedChars:"2"},
2112 "2", "Numpad2
", KeyboardEvent.DOM_VK_NUMPAD2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2113 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad2,
2114 modifiers:{numericKeyPadKey:1, altKey:1}, chars:"2", unmodifiedChars:"2"},
2115 "2", "Numpad2
", KeyboardEvent.DOM_VK_NUMPAD2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2116 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad2,
2117 modifiers:{numericKeyPadKey:1, altKey:1, shiftKey:1}, chars:"2", unmodifiedChars:"2"},
2118 "2", "Numpad2
", KeyboardEvent.DOM_VK_NUMPAD2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2119 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad2,
2120 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1}, chars:"2", unmodifiedChars:"2"},
2121 "2", "Numpad2
", KeyboardEvent.DOM_VK_NUMPAD2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2122 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad2,
2123 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1, shiftKey:1}, chars:"2", unmodifiedChars:"2"},
2124 "2", "Numpad2
", KeyboardEvent.DOM_VK_NUMPAD2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2125 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad2,
2126 modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"2", unmodifiedChars:"2"},
2127 "2", "Numpad2
", KeyboardEvent.DOM_VK_NUMPAD2, "2", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2128 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad3,
2129 modifiers:{numericKeyPadKey:1}, chars:"3", unmodifiedChars:"3"},
2130 "3", "Numpad3
", KeyboardEvent.DOM_VK_NUMPAD3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2131 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad3,
2132 modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"3", unmodifiedChars:"3"},
2133 "3", "Numpad3
", KeyboardEvent.DOM_VK_NUMPAD3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2134 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad3,
2135 modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"3", unmodifiedChars:"3"},
2136 "3", "Numpad3
", KeyboardEvent.DOM_VK_NUMPAD3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2137 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad3,
2138 modifiers:{numericKeyPadKey:1, ctrlKey:1, shiftKey:1}, chars:"3", unmodifiedChars:"3"},
2139 "3", "Numpad3
", KeyboardEvent.DOM_VK_NUMPAD3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2140 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad3,
2141 modifiers:{numericKeyPadKey:1, altKey:1}, chars:"3", unmodifiedChars:"3"},
2142 "3", "Numpad3
", KeyboardEvent.DOM_VK_NUMPAD3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2143 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad3,
2144 modifiers:{numericKeyPadKey:1, altKey:1, shiftKey:1}, chars:"3", unmodifiedChars:"3"},
2145 "3", "Numpad3
", KeyboardEvent.DOM_VK_NUMPAD3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2146 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad3,
2147 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1}, chars:"3", unmodifiedChars:"3"},
2148 "3", "Numpad3
", KeyboardEvent.DOM_VK_NUMPAD3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2149 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad3,
2150 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1, shiftKey:1}, chars:"3", unmodifiedChars:"3"},
2151 "3", "Numpad3
", KeyboardEvent.DOM_VK_NUMPAD3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2152 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad3,
2153 modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"3", unmodifiedChars:"3"},
2154 "3", "Numpad3
", KeyboardEvent.DOM_VK_NUMPAD3, "3", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2155 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad4,
2156 modifiers:{numericKeyPadKey:1}, chars:"4", unmodifiedChars:"4"},
2157 "4", "Numpad4
", KeyboardEvent.DOM_VK_NUMPAD4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2158 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad4,
2159 modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"4", unmodifiedChars:"4"},
2160 "4", "Numpad4
", KeyboardEvent.DOM_VK_NUMPAD4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2161 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad4,
2162 modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"4", unmodifiedChars:"4"},
2163 "4", "Numpad4
", KeyboardEvent.DOM_VK_NUMPAD4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2164 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad4,
2165 modifiers:{numericKeyPadKey:1, ctrlKey:1, shiftKey:1}, chars:"4", unmodifiedChars:"4"},
2166 "4", "Numpad4
", KeyboardEvent.DOM_VK_NUMPAD4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2167 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad4,
2168 modifiers:{numericKeyPadKey:1, altKey:1}, chars:"4", unmodifiedChars:"4"},
2169 "4", "Numpad4
", KeyboardEvent.DOM_VK_NUMPAD4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2170 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad4,
2171 modifiers:{numericKeyPadKey:1, altKey:1, shiftKey:1}, chars:"4", unmodifiedChars:"4"},
2172 "4", "Numpad4
", KeyboardEvent.DOM_VK_NUMPAD4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2173 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad4,
2174 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1}, chars:"4", unmodifiedChars:"4"},
2175 "4", "Numpad4
", KeyboardEvent.DOM_VK_NUMPAD4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2176 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad4,
2177 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1, shiftKey:1}, chars:"4", unmodifiedChars:"4"},
2178 "4", "Numpad4
", KeyboardEvent.DOM_VK_NUMPAD4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2179 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad4,
2180 modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"4", unmodifiedChars:"4"},
2181 "4", "Numpad4
", KeyboardEvent.DOM_VK_NUMPAD4, "4", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2182 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad5,
2183 modifiers:{numericKeyPadKey:1}, chars:"5", unmodifiedChars:"5"},
2184 "5", "Numpad5
", KeyboardEvent.DOM_VK_NUMPAD5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2185 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad5,
2186 modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"5", unmodifiedChars:"5"},
2187 "5", "Numpad5
", KeyboardEvent.DOM_VK_NUMPAD5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2188 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad5,
2189 modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"5", unmodifiedChars:"5"},
2190 "5", "Numpad5
", KeyboardEvent.DOM_VK_NUMPAD5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2191 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad5,
2192 modifiers:{numericKeyPadKey:1, ctrlKey:1, shiftKey:1}, chars:"5", unmodifiedChars:"5"},
2193 "5", "Numpad5
", KeyboardEvent.DOM_VK_NUMPAD5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2194 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad5,
2195 modifiers:{numericKeyPadKey:1, altKey:1}, chars:"5", unmodifiedChars:"5"},
2196 "5", "Numpad5
", KeyboardEvent.DOM_VK_NUMPAD5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2197 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad5,
2198 modifiers:{numericKeyPadKey:1, altKey:1, shiftKey:1}, chars:"5", unmodifiedChars:"5"},
2199 "5", "Numpad5
", KeyboardEvent.DOM_VK_NUMPAD5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2200 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad5,
2201 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1}, chars:"5", unmodifiedChars:"5"},
2202 "5", "Numpad5
", KeyboardEvent.DOM_VK_NUMPAD5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2203 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad5,
2204 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1, shiftKey:1}, chars:"5", unmodifiedChars:"5"},
2205 "5", "Numpad5
", KeyboardEvent.DOM_VK_NUMPAD5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2206 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad5,
2207 modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"5", unmodifiedChars:"5"},
2208 "5", "Numpad5
", KeyboardEvent.DOM_VK_NUMPAD5, "5", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2209 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad6,
2210 modifiers:{numericKeyPadKey:1}, chars:"6", unmodifiedChars:"6"},
2211 "6", "Numpad6
", KeyboardEvent.DOM_VK_NUMPAD6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2212 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad6,
2213 modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"6", unmodifiedChars:"6"},
2214 "6", "Numpad6
", KeyboardEvent.DOM_VK_NUMPAD6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2215 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad6,
2216 modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"6", unmodifiedChars:"6"},
2217 "6", "Numpad6
", KeyboardEvent.DOM_VK_NUMPAD6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2218 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad6,
2219 modifiers:{numericKeyPadKey:1, ctrlKey:1, shiftKey:1}, chars:"6", unmodifiedChars:"6"},
2220 "6", "Numpad6
", KeyboardEvent.DOM_VK_NUMPAD6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2221 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad6,
2222 modifiers:{numericKeyPadKey:1, altKey:1}, chars:"6", unmodifiedChars:"6"},
2223 "6", "Numpad6
", KeyboardEvent.DOM_VK_NUMPAD6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2224 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad6,
2225 modifiers:{numericKeyPadKey:1, altKey:1, shiftKey:1}, chars:"6", unmodifiedChars:"6"},
2226 "6", "Numpad6
", KeyboardEvent.DOM_VK_NUMPAD6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2227 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad6,
2228 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1}, chars:"6", unmodifiedChars:"6"},
2229 "6", "Numpad6
", KeyboardEvent.DOM_VK_NUMPAD6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2230 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad6,
2231 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1, shiftKey:1}, chars:"6", unmodifiedChars:"6"},
2232 "6", "Numpad6
", KeyboardEvent.DOM_VK_NUMPAD6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2233 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad6,
2234 modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"6", unmodifiedChars:"6"},
2235 "6", "Numpad6
", KeyboardEvent.DOM_VK_NUMPAD6, "6", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2236 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad7,
2237 modifiers:{numericKeyPadKey:1}, chars:"7", unmodifiedChars:"7"},
2238 "7", "Numpad7
", KeyboardEvent.DOM_VK_NUMPAD7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2239 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad7,
2240 modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"7", unmodifiedChars:"7"},
2241 "7", "Numpad7
", KeyboardEvent.DOM_VK_NUMPAD7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2242 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad7,
2243 modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"7", unmodifiedChars:"7"},
2244 "7", "Numpad7
", KeyboardEvent.DOM_VK_NUMPAD7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2245 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad7,
2246 modifiers:{numericKeyPadKey:1, ctrlKey:1, shiftKey:1}, chars:"7", unmodifiedChars:"7"},
2247 "7", "Numpad7
", KeyboardEvent.DOM_VK_NUMPAD7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2248 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad7,
2249 modifiers:{numericKeyPadKey:1, altKey:1}, chars:"7", unmodifiedChars:"7"},
2250 "7", "Numpad7
", KeyboardEvent.DOM_VK_NUMPAD7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2251 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad7,
2252 modifiers:{numericKeyPadKey:1, altKey:1, shiftKey:1}, chars:"7", unmodifiedChars:"7"},
2253 "7", "Numpad7
", KeyboardEvent.DOM_VK_NUMPAD7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2254 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad7,
2255 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1}, chars:"7", unmodifiedChars:"7"},
2256 "7", "Numpad7
", KeyboardEvent.DOM_VK_NUMPAD7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2257 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad7,
2258 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1, shiftKey:1}, chars:"7", unmodifiedChars:"7"},
2259 "7", "Numpad7
", KeyboardEvent.DOM_VK_NUMPAD7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2260 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad7,
2261 modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"7", unmodifiedChars:"7"},
2262 "7", "Numpad7
", KeyboardEvent.DOM_VK_NUMPAD7, "7", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2263 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad8,
2264 modifiers:{numericKeyPadKey:1}, chars:"8", unmodifiedChars:"8"},
2265 "8", "Numpad8
", KeyboardEvent.DOM_VK_NUMPAD8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2266 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad8,
2267 modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"8", unmodifiedChars:"8"},
2268 "8", "Numpad8
", KeyboardEvent.DOM_VK_NUMPAD8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2269 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad8,
2270 modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"8", unmodifiedChars:"8"},
2271 "8", "Numpad8
", KeyboardEvent.DOM_VK_NUMPAD8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2272 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad8,
2273 modifiers:{numericKeyPadKey:1, ctrlKey:1, shiftKey:1}, chars:"8", unmodifiedChars:"8"},
2274 "8", "Numpad8
", KeyboardEvent.DOM_VK_NUMPAD8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2275 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad8,
2276 modifiers:{numericKeyPadKey:1, altKey:1}, chars:"8", unmodifiedChars:"8"},
2277 "8", "Numpad8
", KeyboardEvent.DOM_VK_NUMPAD8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2278 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad8,
2279 modifiers:{numericKeyPadKey:1, altKey:1, shiftKey:1}, chars:"8", unmodifiedChars:"8"},
2280 "8", "Numpad8
", KeyboardEvent.DOM_VK_NUMPAD8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2281 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad8,
2282 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1}, chars:"8", unmodifiedChars:"8"},
2283 "8", "Numpad8
", KeyboardEvent.DOM_VK_NUMPAD8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2284 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad8,
2285 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1, shiftKey:1}, chars:"8", unmodifiedChars:"8"},
2286 "8", "Numpad8
", KeyboardEvent.DOM_VK_NUMPAD8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2287 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad8,
2288 modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"8", unmodifiedChars:"8"},
2289 "8", "Numpad8
", KeyboardEvent.DOM_VK_NUMPAD8, "8", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2290 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad9,
2291 modifiers:{numericKeyPadKey:1}, chars:"9", unmodifiedChars:"9"},
2292 "9", "Numpad9
", KeyboardEvent.DOM_VK_NUMPAD9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2293 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad9,
2294 modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"9", unmodifiedChars:"9"},
2295 "9", "Numpad9
", KeyboardEvent.DOM_VK_NUMPAD9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2296 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad9,
2297 modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"9", unmodifiedChars:"9"},
2298 "9", "Numpad9
", KeyboardEvent.DOM_VK_NUMPAD9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2299 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad9,
2300 modifiers:{numericKeyPadKey:1, ctrlKey:1, shiftKey:1}, chars:"9", unmodifiedChars:"9"},
2301 "9", "Numpad9
", KeyboardEvent.DOM_VK_NUMPAD9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2302 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad9,
2303 modifiers:{numericKeyPadKey:1, altKey:1}, chars:"9", unmodifiedChars:"9"},
2304 "9", "Numpad9
", KeyboardEvent.DOM_VK_NUMPAD9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2305 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad9,
2306 modifiers:{numericKeyPadKey:1, altKey:1, shiftKey:1}, chars:"9", unmodifiedChars:"9"},
2307 "9", "Numpad9
", KeyboardEvent.DOM_VK_NUMPAD9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2308 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad9,
2309 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1}, chars:"9", unmodifiedChars:"9"},
2310 "9", "Numpad9
", KeyboardEvent.DOM_VK_NUMPAD9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2311 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad9,
2312 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1, shiftKey:1}, chars:"9", unmodifiedChars:"9"},
2313 "9", "Numpad9
", KeyboardEvent.DOM_VK_NUMPAD9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2314 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad9,
2315 modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"9", unmodifiedChars:"9"},
2316 "9", "Numpad9
", KeyboardEvent.DOM_VK_NUMPAD9, "9", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2317 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad0,
2318 modifiers:{numericKeyPadKey:1}, chars:"0", unmodifiedChars:"0"},
2319 "0", "Numpad0
", KeyboardEvent.DOM_VK_NUMPAD0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2320 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad0,
2321 modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"0", unmodifiedChars:"0"},
2322 "0", "Numpad0
", KeyboardEvent.DOM_VK_NUMPAD0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2323 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad0,
2324 modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"0", unmodifiedChars:"0"},
2325 "0", "Numpad0
", KeyboardEvent.DOM_VK_NUMPAD0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2326 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad0,
2327 modifiers:{numericKeyPadKey:1, ctrlKey:1, shiftKey:1}, chars:"0", unmodifiedChars:"0"},
2328 "0", "Numpad0
", KeyboardEvent.DOM_VK_NUMPAD0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2329 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad0,
2330 modifiers:{numericKeyPadKey:1, altKey:1}, chars:"0", unmodifiedChars:"0"},
2331 "0", "Numpad0
", KeyboardEvent.DOM_VK_NUMPAD0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2332 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad0,
2333 modifiers:{numericKeyPadKey:1, altKey:1, shiftKey:1}, chars:"0", unmodifiedChars:"0"},
2334 "0", "Numpad0
", KeyboardEvent.DOM_VK_NUMPAD0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2335 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad0,
2336 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1}, chars:"0", unmodifiedChars:"0"},
2337 "0", "Numpad0
", KeyboardEvent.DOM_VK_NUMPAD0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2338 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad0,
2339 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1, shiftKey:1}, chars:"0", unmodifiedChars:"0"},
2340 "0", "Numpad0
", KeyboardEvent.DOM_VK_NUMPAD0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2341 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad0,
2342 modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"0", unmodifiedChars:"0"},
2343 "0", "Numpad0
", KeyboardEvent.DOM_VK_NUMPAD0, "0", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2344 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadEquals,
2345 modifiers:{numericKeyPadKey:1}, chars:"=
", unmodifiedChars:"=
"},
2346 "=
", "NumpadEqual
", KeyboardEvent.DOM_VK_EQUALS, "=
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2347 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadEquals,
2348 modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"=
", unmodifiedChars:"=
"},
2349 "=
", "NumpadEqual
", KeyboardEvent.DOM_VK_EQUALS, "=
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2350 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadEquals,
2351 modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"=
", unmodifiedChars:"=
"},
2352 "=
", "NumpadEqual
", KeyboardEvent.DOM_VK_EQUALS, "=
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2353 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadEquals,
2354 modifiers:{numericKeyPadKey:1, ctrlKey:1, shiftKey:1}, chars:"=
", unmodifiedChars:"=
"},
2355 "=
", "NumpadEqual
", KeyboardEvent.DOM_VK_EQUALS, "=
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2356 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadEquals,
2357 modifiers:{numericKeyPadKey:1, altKey:1}, chars:"=
", unmodifiedChars:"=
"},
2358 "=
", "NumpadEqual
", KeyboardEvent.DOM_VK_EQUALS, "=
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2359 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadEquals,
2360 modifiers:{numericKeyPadKey:1, altKey:1, shiftKey:1}, chars:"=
", unmodifiedChars:"=
"},
2361 "=
", "NumpadEqual
", KeyboardEvent.DOM_VK_EQUALS, "=
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2362 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadEquals,
2363 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1}, chars:"=
", unmodifiedChars:"=
"},
2364 "=
", "NumpadEqual
", KeyboardEvent.DOM_VK_EQUALS, "=
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2365 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadEquals,
2366 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1, shiftKey:1}, chars:"=
", unmodifiedChars:"=
"},
2367 "=
", "NumpadEqual
", KeyboardEvent.DOM_VK_EQUALS, "=
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2368 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadEquals,
2369 modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"=
", unmodifiedChars:"=
"},
2370 "=
", "NumpadEqual
", KeyboardEvent.DOM_VK_EQUALS, "=
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2371 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadDivide,
2372 modifiers:{numericKeyPadKey:1}, chars:"/
", unmodifiedChars:"/
"},
2373 "/
", "NumpadDivide
", KeyboardEvent.DOM_VK_DIVIDE, "/
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2374 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadDivide,
2375 modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"/
", unmodifiedChars:"/
"},
2376 "/
", "NumpadDivide
", KeyboardEvent.DOM_VK_DIVIDE, "/
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2377 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadDivide,
2378 modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"/
", unmodifiedChars:"/
"},
2379 "/
", "NumpadDivide
", KeyboardEvent.DOM_VK_DIVIDE, "/
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2380 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadDivide,
2381 modifiers:{numericKeyPadKey:1, ctrlKey:1, shiftKey:1}, chars:"/
", unmodifiedChars:"/
"},
2382 "/
", "NumpadDivide
", KeyboardEvent.DOM_VK_DIVIDE, "/
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2383 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadDivide,
2384 modifiers:{numericKeyPadKey:1, altKey:1}, chars:"/
", unmodifiedChars:"/
"},
2385 "/
", "NumpadDivide
", KeyboardEvent.DOM_VK_DIVIDE, "/
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2386 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadDivide,
2387 modifiers:{numericKeyPadKey:1, altKey:1, shiftKey:1}, chars:"/
", unmodifiedChars:"/
"},
2388 "/
", "NumpadDivide
", KeyboardEvent.DOM_VK_DIVIDE, "/
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2389 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadDivide,
2390 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1}, chars:"/
", unmodifiedChars:"/
"},
2391 "/
", "NumpadDivide
", KeyboardEvent.DOM_VK_DIVIDE, "/
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2392 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadDivide,
2393 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1, shiftKey:1}, chars:"/
", unmodifiedChars:"/
"},
2394 "/
", "NumpadDivide
", KeyboardEvent.DOM_VK_DIVIDE, "/
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2395 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadDivide,
2396 modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"/
", unmodifiedChars:"/
"},
2397 "/
", "NumpadDivide
", KeyboardEvent.DOM_VK_DIVIDE, "/
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2398 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadMultiply,
2399 modifiers:{numericKeyPadKey:1}, chars:"*
", unmodifiedChars:"*
"},
2400 "*
", "NumpadMultiply
", KeyboardEvent.DOM_VK_MULTIPLY, "*
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2401 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadMultiply,
2402 modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"*
", unmodifiedChars:"*
"},
2403 "*
", "NumpadMultiply
", KeyboardEvent.DOM_VK_MULTIPLY, "*
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2404 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadMultiply,
2405 modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"*
", unmodifiedChars:"*
"},
2406 "*
", "NumpadMultiply
", KeyboardEvent.DOM_VK_MULTIPLY, "*
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2407 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadMultiply,
2408 modifiers:{numericKeyPadKey:1, ctrlKey:1, shiftKey:1}, chars:"*
", unmodifiedChars:"*
"},
2409 "*
", "NumpadMultiply
", KeyboardEvent.DOM_VK_MULTIPLY, "*
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2410 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadMultiply,
2411 modifiers:{numericKeyPadKey:1, altKey:1}, chars:"*
", unmodifiedChars:"*
"},
2412 "*
", "NumpadMultiply
", KeyboardEvent.DOM_VK_MULTIPLY, "*
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2413 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadMultiply,
2414 modifiers:{numericKeyPadKey:1, altKey:1, shiftKey:1}, chars:"*
", unmodifiedChars:"*
"},
2415 "*
", "NumpadMultiply
", KeyboardEvent.DOM_VK_MULTIPLY, "*
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2416 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadMultiply,
2417 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1}, chars:"*
", unmodifiedChars:"*
"},
2418 "*
", "NumpadMultiply
", KeyboardEvent.DOM_VK_MULTIPLY, "*
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2419 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadMultiply,
2420 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1, shiftKey:1}, chars:"*
", unmodifiedChars:"*
"},
2421 "*
", "NumpadMultiply
", KeyboardEvent.DOM_VK_MULTIPLY, "*
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2422 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadMultiply,
2423 modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"*
", unmodifiedChars:"*
"},
2424 "*
", "NumpadMultiply
", KeyboardEvent.DOM_VK_MULTIPLY, "*
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2425 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadMinus,
2426 modifiers:{numericKeyPadKey:1}, chars:"-
", unmodifiedChars:"-
"},
2427 "-
", "NumpadSubtract
", KeyboardEvent.DOM_VK_SUBTRACT, "-
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2428 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadMinus,
2429 modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"-
", unmodifiedChars:"-
"},
2430 "-
", "NumpadSubtract
", KeyboardEvent.DOM_VK_SUBTRACT, "-
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2431 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadMinus,
2432 modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"-
", unmodifiedChars:"-
"},
2433 "-
", "NumpadSubtract
", KeyboardEvent.DOM_VK_SUBTRACT, "-
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2434 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadMinus,
2435 modifiers:{numericKeyPadKey:1, ctrlKey:1, shiftKey:1}, chars:"-
", unmodifiedChars:"-
"},
2436 "-
", "NumpadSubtract
", KeyboardEvent.DOM_VK_SUBTRACT, "-
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2437 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadMinus,
2438 modifiers:{numericKeyPadKey:1, altKey:1}, chars:"-
", unmodifiedChars:"-
"},
2439 "-
", "NumpadSubtract
", KeyboardEvent.DOM_VK_SUBTRACT, "-
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2440 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadMinus,
2441 modifiers:{numericKeyPadKey:1, altKey:1, shiftKey:1}, chars:"-
", unmodifiedChars:"-
"},
2442 "-
", "NumpadSubtract
", KeyboardEvent.DOM_VK_SUBTRACT, "-
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2443 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadMinus,
2444 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1}, chars:"-
", unmodifiedChars:"-
"},
2445 "-
", "NumpadSubtract
", KeyboardEvent.DOM_VK_SUBTRACT, "-
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2446 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadMinus,
2447 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1, shiftKey:1}, chars:"-
", unmodifiedChars:"-
"},
2448 "-
", "NumpadSubtract
", KeyboardEvent.DOM_VK_SUBTRACT, "-
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2449 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadMinus,
2450 modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"-
", unmodifiedChars:"-
"},
2451 "-
", "NumpadSubtract
", KeyboardEvent.DOM_VK_SUBTRACT, "-
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2452 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadPlus,
2453 modifiers:{numericKeyPadKey:1}, chars:"+
", unmodifiedChars:"+
"},
2454 "+
", "NumpadAdd
", KeyboardEvent.DOM_VK_ADD, "+
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2455 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadPlus,
2456 modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"+
", unmodifiedChars:"+
"},
2457 "+
", "NumpadAdd
", KeyboardEvent.DOM_VK_ADD, "+
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2458 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadPlus,
2459 modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"+
", unmodifiedChars:"+
"},
2460 "+
", "NumpadAdd
", KeyboardEvent.DOM_VK_ADD, "+
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2461 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadPlus,
2462 modifiers:{numericKeyPadKey:1, ctrlKey:1, shiftKey:1}, chars:"+
", unmodifiedChars:"+
"},
2463 "+
", "NumpadAdd
", KeyboardEvent.DOM_VK_ADD, "+
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2464 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadPlus,
2465 modifiers:{numericKeyPadKey:1, altKey:1}, chars:"+
", unmodifiedChars:"+
"},
2466 "+
", "NumpadAdd
", KeyboardEvent.DOM_VK_ADD, "+
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2467 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadPlus,
2468 modifiers:{numericKeyPadKey:1, altKey:1, shiftKey:1}, chars:"+
", unmodifiedChars:"+
"},
2469 "+
", "NumpadAdd
", KeyboardEvent.DOM_VK_ADD, "+
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2470 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadPlus,
2471 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1}, chars:"+
", unmodifiedChars:"+
"},
2472 "+
", "NumpadAdd
", KeyboardEvent.DOM_VK_ADD, "+
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2473 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadPlus,
2474 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1, shiftKey:1}, chars:"+
", unmodifiedChars:"+
"},
2475 "+
", "NumpadAdd
", KeyboardEvent.DOM_VK_ADD, "+
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2476 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadPlus,
2477 modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"+
", unmodifiedChars:"+
"},
2478 "+
", "NumpadAdd
", KeyboardEvent.DOM_VK_ADD, "+
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2479 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadEnter,
2480 modifiers:{numericKeyPadKey:1}, chars:"\u0003
", unmodifiedChars:"\u0003
"},
2481 "Enter
", "NumpadEnter
", KeyboardEvent.DOM_VK_RETURN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2482 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadEnter,
2483 modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"\u0003
", unmodifiedChars:"\u0003
"},
2484 "Enter
", "NumpadEnter
", KeyboardEvent.DOM_VK_RETURN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2485 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadEnter,
2486 modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"\u0003
", unmodifiedChars:"\u0003
"},
2487 "Enter
", "NumpadEnter
", KeyboardEvent.DOM_VK_RETURN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2488 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadEnter,
2489 modifiers:{numericKeyPadKey:1, ctrlKey:1, shiftKey:1}, chars:"\u0003
", unmodifiedChars:"\u0003
"},
2490 "Enter
", "NumpadEnter
", KeyboardEvent.DOM_VK_RETURN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2491 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadEnter,
2492 modifiers:{numericKeyPadKey:1, altKey:1}, chars:"\u0003
", unmodifiedChars:"\u0003
"},
2493 "Enter
", "NumpadEnter
", KeyboardEvent.DOM_VK_RETURN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2494 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadEnter,
2495 modifiers:{numericKeyPadKey:1, altKey:1, shiftKey:1}, chars:"\u0003
", unmodifiedChars:"\u0003
"},
2496 "Enter
", "NumpadEnter
", KeyboardEvent.DOM_VK_RETURN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2497 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadEnter,
2498 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1}, chars:"\u0003
", unmodifiedChars:"\u0003
"},
2499 "Enter
", "NumpadEnter
", KeyboardEvent.DOM_VK_RETURN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2500 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadEnter,
2501 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u0003
", unmodifiedChars:"\u0003
"},
2502 "Enter
", "NumpadEnter
", KeyboardEvent.DOM_VK_RETURN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2503 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadEnter,
2504 modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"\u0003
", unmodifiedChars:"\u0003
"},
2505 "Enter
", "NumpadEnter
", KeyboardEvent.DOM_VK_RETURN, "", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2506 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_JIS_KeypadComma,
2507 modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:",
", unmodifiedChars:",
"},
2508 ",
", "NumpadComma
", KeyboardEvent.DOM_VK_SEPARATOR, ",
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2509 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_JIS_KeypadComma,
2510 modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:",
", unmodifiedChars:",
"},
2511 ",
", "NumpadComma
", KeyboardEvent.DOM_VK_SEPARATOR, ",
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2512 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_JIS_KeypadComma,
2513 modifiers:{numericKeyPadKey:1, ctrlKey:1, shiftKey:1}, chars:",
", unmodifiedChars:",
"},
2514 ",
", "NumpadComma
", KeyboardEvent.DOM_VK_SEPARATOR, ",
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2515 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_JIS_KeypadComma,
2516 modifiers:{numericKeyPadKey:1, altKey:1}, chars:",
", unmodifiedChars:",
"},
2517 ",
", "NumpadComma
", KeyboardEvent.DOM_VK_SEPARATOR, ",
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2518 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_JIS_KeypadComma,
2519 modifiers:{numericKeyPadKey:1, altKey:1, shiftKey:1}, chars:",
", unmodifiedChars:",
"},
2520 ",
", "NumpadComma
", KeyboardEvent.DOM_VK_SEPARATOR, ",
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2521 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_JIS_KeypadComma,
2522 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1}, chars:",
", unmodifiedChars:",
"},
2523 ",
", "NumpadComma
", KeyboardEvent.DOM_VK_SEPARATOR, ",
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2524 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_JIS_KeypadComma,
2525 modifiers:{numericKeyPadKey:1, altKey:1, ctrlKey:1, shiftKey:1}, chars:",
", unmodifiedChars:",
"},
2526 ",
", "NumpadComma
", KeyboardEvent.DOM_VK_SEPARATOR, ",
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2527 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_JIS_KeypadComma,
2528 modifiers:{numericKeyPadKey:1, metaKey:1}, chars:",
", unmodifiedChars:",
"},
2529 ",
", "NumpadComma
", KeyboardEvent.DOM_VK_SEPARATOR, ",
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
2532 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_1,
2533 modifiers:{}, chars:"&
", unmodifiedChars:"&
"},
2534 "&
", "Digit1
", KeyboardEvent.DOM_VK_1, "&
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2535 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_1,
2536 modifiers:{shiftKey:1}, chars:"1", unmodifiedChars:"1"},
2537 "1", "Digit1
", KeyboardEvent.DOM_VK_1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2538 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_1,
2539 modifiers:{ctrlKey:1}, chars:"1", unmodifiedChars:"&
"},
2540 "&
", "Digit1
", KeyboardEvent.DOM_VK_1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2541 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_1,
2542 modifiers:{ctrlKey:1, shiftKey:1}, chars:"1", unmodifiedChars:"1"},
2543 "1", "Digit1
", KeyboardEvent.DOM_VK_1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2544 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_1,
2545 modifiers:{altKey:1}, chars:"\uF8FF
", unmodifiedChars:"&
"},
2546 "\uF8FF
", "Digit1
", KeyboardEvent.DOM_VK_1, "\uF8FF
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2547 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_1,
2548 modifiers:{altKey:1, shiftKey:1}, chars:"", unmodifiedChars:"1"},
2549 "Dead
", "Digit1
", KeyboardEvent.DOM_VK_1, "1", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2550 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_1,
2551 modifiers:{altKey:1, ctrlKey:1}, chars:"1", unmodifiedChars:"&
"},
2552 "\uF8FF
", "Digit1
", KeyboardEvent.DOM_VK_1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2553 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_1,
2554 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"1", unmodifiedChars:"1"},
2555 "Dead
", "Digit1
", KeyboardEvent.DOM_VK_1, "1", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2556 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_1,
2557 modifiers:{metaKey:1}, chars:"&
", unmodifiedChars:"&
"},
2558 "&
", "Digit1
", KeyboardEvent.DOM_VK_1, "&
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2559 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_1,
2560 modifiers:{metaKey:1, shiftKey:1}, chars:"1", unmodifiedChars:"1"},
2561 "1", "Digit1
", KeyboardEvent.DOM_VK_1, "1", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2562 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_2,
2563 modifiers:{}, chars:"\u00E9
", unmodifiedChars:"\u00E9
"},
2564 "\u00E9
", "Digit2
", KeyboardEvent.DOM_VK_2, "\u00E9
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2565 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_2,
2566 modifiers:{shiftKey:1}, chars:"2", unmodifiedChars:"2"},
2567 "2", "Digit2
", KeyboardEvent.DOM_VK_2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2568 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_2,
2569 modifiers:{ctrlKey:1}, chars:"2", unmodifiedChars:"\u00E9
"},
2570 "\u00E9
", "Digit2
", KeyboardEvent.DOM_VK_2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2571 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_2,
2572 modifiers:{ctrlKey:1, shiftKey:1}, chars:"2", unmodifiedChars:"2"},
2573 "2", "Digit2
", KeyboardEvent.DOM_VK_2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2574 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_2,
2575 modifiers:{altKey:1}, chars:"\u00EB
", unmodifiedChars:"\u00E9
"},
2576 "\u00EB
", "Digit2
", KeyboardEvent.DOM_VK_2, "\u00EB
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2577 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_2,
2578 modifiers:{altKey:1, shiftKey:1}, chars:"\u201E
", unmodifiedChars:"2"},
2579 "\u201E
", "Digit2
", KeyboardEvent.DOM_VK_2, "\u201E
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2580 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_2,
2581 modifiers:{altKey:1, ctrlKey:1}, chars:"2", unmodifiedChars:"\u00E9
"},
2582 "\u00EB
", "Digit2
", KeyboardEvent.DOM_VK_2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2583 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_2,
2584 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"2", unmodifiedChars:"2"},
2585 "\u201E
", "Digit2
", KeyboardEvent.DOM_VK_2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2586 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_2,
2587 modifiers:{metaKey:1}, chars:"\u00E9
", unmodifiedChars:"\u00E9
"},
2588 "\u00E9
", "Digit2
", KeyboardEvent.DOM_VK_2, "\u00E9
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2589 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_2,
2590 modifiers:{metaKey:1, shiftKey:1}, chars:"2", unmodifiedChars:"2"},
2591 "2", "Digit2
", KeyboardEvent.DOM_VK_2, "2", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2592 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_3,
2593 modifiers:{}, chars:"\
"", unmodifiedChars:
"\""},
2594 "\
"",
"Digit3", KeyboardEvent.DOM_VK_3,
"\"", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2595 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_3,
2596 modifiers:{shiftKey:1}, chars:"3", unmodifiedChars:"3"},
2597 "3", "Digit3
", KeyboardEvent.DOM_VK_3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2598 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_3,
2599 modifiers:{ctrlKey:1}, chars:"3", unmodifiedChars:"\
""},
2600 "\"", "Digit3
", KeyboardEvent.DOM_VK_3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2601 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_3,
2602 modifiers:{ctrlKey:1, shiftKey:1}, chars:"3", unmodifiedChars:"3"},
2603 "3", "Digit3
", KeyboardEvent.DOM_VK_3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2604 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_3,
2605 modifiers:{altKey:1}, chars:"\u201C
", unmodifiedChars:"\
""},
2606 "\u201C",
"Digit3", KeyboardEvent.DOM_VK_3,
"\u201C", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2607 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_3,
2608 modifiers:{altKey:
1, shiftKey:
1}, chars:
"\u201D", unmodifiedChars:
"3"},
2609 "\u201D",
"Digit3", KeyboardEvent.DOM_VK_3,
"\u201D", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2610 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_3,
2611 modifiers:{altKey:
1, ctrlKey:
1}, chars:
"3", unmodifiedChars:
"\""},
2612 "\u201C
", "Digit3
", KeyboardEvent.DOM_VK_3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2613 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_3,
2614 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"3", unmodifiedChars:"3"},
2615 "\u201D
", "Digit3
", KeyboardEvent.DOM_VK_3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2616 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_3,
2617 modifiers:{metaKey:1}, chars:"\
"", unmodifiedChars:
"\""},
2618 "\
"",
"Digit3", KeyboardEvent.DOM_VK_3,
"\"", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2619 // Cmd+Shift+3 is a shortcut key of taking a snapshot
2620 // yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_3,
2621 // modifiers:{metaKey:1, shiftKey:1}, chars:"\
"", unmodifiedChars:
"\""},
2622 // "3", "Digit3
", KeyboardEvent.DOM_VK_3, "3", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2623 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_4,
2624 modifiers:{}, chars:"'
", unmodifiedChars:"'
"},
2625 "'
", "Digit4
", KeyboardEvent.DOM_VK_4, "'
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2626 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_4,
2627 modifiers:{shiftKey:1}, chars:"4", unmodifiedChars:"4"},
2628 "4", "Digit4
", KeyboardEvent.DOM_VK_4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2629 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_4,
2630 modifiers:{ctrlKey:1}, chars:"4", unmodifiedChars:"'
"},
2631 "'
", "Digit4
", KeyboardEvent.DOM_VK_4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2632 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_4,
2633 modifiers:{ctrlKey:1, shiftKey:1}, chars:"4", unmodifiedChars:"4"},
2634 "4", "Digit4
", KeyboardEvent.DOM_VK_4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2635 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_4,
2636 modifiers:{altKey:1}, chars:"\u2018
", unmodifiedChars:"'
"},
2637 "\u2018
", "Digit4
", KeyboardEvent.DOM_VK_4, "\u2018
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2638 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_4,
2639 modifiers:{altKey:1, shiftKey:1}, chars:"\u2019
", unmodifiedChars:"4"},
2640 "\u2019
", "Digit4
", KeyboardEvent.DOM_VK_4, "\u2019
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2641 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_4,
2642 modifiers:{altKey:1, ctrlKey:1}, chars:"4", unmodifiedChars:"'
"},
2643 "\u2018
", "Digit4
", KeyboardEvent.DOM_VK_4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2644 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_4,
2645 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"4", unmodifiedChars:"4"},
2646 "\u2019
", "Digit4
", KeyboardEvent.DOM_VK_4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2647 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_4,
2648 modifiers:{metaKey:1}, chars:"'
", unmodifiedChars:"'
"},
2649 "'
", "Digit4
", KeyboardEvent.DOM_VK_4, "'
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2650 // Cmd+Shift+4 is a shortcut key of taking a snapshot in specific range
2651 // yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_4,
2652 // modifiers:{metaKey:1, shiftKey:1}, chars:"4", unmodifiedChars:"4"},
2653 // "4", "Digit4
", KeyboardEvent.DOM_VK_4, "4", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2654 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_5,
2655 modifiers:{}, chars:"(
", unmodifiedChars:"(
"},
2656 "(
", "Digit5
", KeyboardEvent.DOM_VK_5, "(
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2657 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_5,
2658 modifiers:{shiftKey:1}, chars:"5", unmodifiedChars:"5"},
2659 "5", "Digit5
", KeyboardEvent.DOM_VK_5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2660 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_5,
2661 modifiers:{ctrlKey:1}, chars:"5", unmodifiedChars:"(
"},
2662 "(
", "Digit5
", KeyboardEvent.DOM_VK_5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2663 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_5,
2664 modifiers:{ctrlKey:1, shiftKey:1}, chars:"5", unmodifiedChars:"5"},
2665 "5", "Digit5
", KeyboardEvent.DOM_VK_5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2666 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_5,
2667 modifiers:{altKey:1}, chars:"{
", unmodifiedChars:"(
"},
2668 "{
", "Digit5
", KeyboardEvent.DOM_VK_5, "{
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2669 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_5,
2670 modifiers:{altKey:1, shiftKey:1}, chars:"[
", unmodifiedChars:"5"},
2671 "[
", "Digit5
", KeyboardEvent.DOM_VK_5, "[
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2672 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_5,
2673 modifiers:{altKey:1, ctrlKey:1}, chars:"5", unmodifiedChars:"(
"},
2674 "{
", "Digit5
", KeyboardEvent.DOM_VK_5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2675 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_5,
2676 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"5", unmodifiedChars:"5"},
2677 "[
", "Digit5
", KeyboardEvent.DOM_VK_5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2678 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_5,
2679 modifiers:{metaKey:1}, chars:"(
", unmodifiedChars:"(
"},
2680 "(
", "Digit5
", KeyboardEvent.DOM_VK_5, "(
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2681 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_5,
2682 modifiers:{metaKey:1, shiftKey:1}, chars:"5", unmodifiedChars:"5"},
2683 "5", "Digit5
", KeyboardEvent.DOM_VK_5, "5", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2684 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_6,
2685 modifiers:{}, chars:"\u00A7
", unmodifiedChars:"\u00A7
"},
2686 "\u00A7
", "Digit6
", KeyboardEvent.DOM_VK_6, "\u00A7
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2687 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_6,
2688 modifiers:{shiftKey:1}, chars:"6", unmodifiedChars:"6"},
2689 "6", "Digit6
", KeyboardEvent.DOM_VK_6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2690 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_6,
2691 modifiers:{ctrlKey:1}, chars:"\u001D
", unmodifiedChars:"\u00A7
"},
2692 "\u00A7
", "Digit6
", KeyboardEvent.DOM_VK_6, "\u0000
" /* TODO */, SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2693 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_6,
2694 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u001D
", unmodifiedChars:"6"},
2695 "6", "Digit6
", KeyboardEvent.DOM_VK_6, "\u0000
" /* TODO */, SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2696 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_6,
2697 modifiers:{altKey:1}, chars:"\u00B6
", unmodifiedChars:"\u00A7
"},
2698 "\u00B6
", "Digit6
", KeyboardEvent.DOM_VK_6, "\u00B6
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2699 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_6,
2700 modifiers:{altKey:1, shiftKey:1}, chars:"\u00E5
", unmodifiedChars:"6"},
2701 "\u00E5
", "Digit6
", KeyboardEvent.DOM_VK_6, "\u00E5
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2702 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_6,
2703 modifiers:{altKey:1, ctrlKey:1}, chars:"\u001D
", unmodifiedChars:"\u00A7
"},
2704 "\u00B6
", "Digit6
", KeyboardEvent.DOM_VK_6, "\u0000
" /* TODO */, SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2705 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_6,
2706 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u001D
", unmodifiedChars:"6"},
2707 "\u00E5
", "Digit6
", KeyboardEvent.DOM_VK_6, "\u0000
" /* TODO */, SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2708 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_6,
2709 modifiers:{metaKey:1}, chars:"\u00A7
", unmodifiedChars:"\u00A7
"},
2710 "\u00A7
", "Digit6
", KeyboardEvent.DOM_VK_6, "\u00A7
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2711 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_6,
2712 modifiers:{metaKey:1, shiftKey:1}, chars:"6", unmodifiedChars:"6"},
2713 "6", "Digit6
", KeyboardEvent.DOM_VK_6, "6", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2714 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_7,
2715 modifiers:{}, chars:"\u00E8
", unmodifiedChars:"\u00E8
"},
2716 "\u00E8
", "Digit7
", KeyboardEvent.DOM_VK_7, "\u00E8
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2717 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_7,
2718 modifiers:{shiftKey:1}, chars:"7", unmodifiedChars:"7"},
2719 "7", "Digit7
", KeyboardEvent.DOM_VK_7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2720 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_7,
2721 modifiers:{ctrlKey:1}, chars:"7", unmodifiedChars:"\u00E8
"},
2722 "\u00E8
", "Digit7
", KeyboardEvent.DOM_VK_7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2723 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_7,
2724 modifiers:{ctrlKey:1, shiftKey:1}, chars:"7", unmodifiedChars:"7"},
2725 "7", "Digit7
", KeyboardEvent.DOM_VK_7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2726 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_7,
2727 modifiers:{altKey:1}, chars:"\u00AB
", unmodifiedChars:"\u00E8
"},
2728 "\u00AB
", "Digit7
", KeyboardEvent.DOM_VK_7, "\u00AB
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2729 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_7,
2730 modifiers:{altKey:1, shiftKey:1}, chars:"\u00BB
", unmodifiedChars:"7"},
2731 "\u00BB
", "Digit7
", KeyboardEvent.DOM_VK_7, "\u00BB
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2732 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_7,
2733 modifiers:{altKey:1, ctrlKey:1}, chars:"7", unmodifiedChars:"\u00E8
"},
2734 "\u00AB
", "Digit7
", KeyboardEvent.DOM_VK_7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2735 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_7,
2736 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"7", unmodifiedChars:"7"},
2737 "\u00BB
", "Digit7
", KeyboardEvent.DOM_VK_7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2738 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_7,
2739 modifiers:{metaKey:1}, chars:"\u00E8
", unmodifiedChars:"\u00E8
"},
2740 "\u00E8
", "Digit7
", KeyboardEvent.DOM_VK_7, "\u00E8
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2741 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_7,
2742 modifiers:{metaKey:1, shiftKey:1}, chars:"7", unmodifiedChars:"7"},
2743 "7", "Digit7
", KeyboardEvent.DOM_VK_7, "7", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2744 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_8,
2745 modifiers:{}, chars:"!
", unmodifiedChars:"!
"},
2746 "!
", "Digit8
", KeyboardEvent.DOM_VK_8, "!
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2747 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_8,
2748 modifiers:{shiftKey:1}, chars:"8", unmodifiedChars:"8"},
2749 "8", "Digit8
", KeyboardEvent.DOM_VK_8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2750 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_8,
2751 modifiers:{ctrlKey:1}, chars:"8", unmodifiedChars:"!
"},
2752 "!
", "Digit8
", KeyboardEvent.DOM_VK_8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2753 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_8,
2754 modifiers:{ctrlKey:1, shiftKey:1}, chars:"8", unmodifiedChars:"8"},
2755 "8", "Digit8
", KeyboardEvent.DOM_VK_8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2756 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_8,
2757 modifiers:{altKey:1}, chars:"\u00A1
", unmodifiedChars:"!
"},
2758 "\u00A1
", "Digit8
", KeyboardEvent.DOM_VK_8, "\u00A1
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2759 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_8,
2760 modifiers:{altKey:1, shiftKey:1}, chars:"\u00DB
", unmodifiedChars:"8"},
2761 "\u00DB
", "Digit8
", KeyboardEvent.DOM_VK_8, "\u00DB
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2762 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_8,
2763 modifiers:{altKey:1, ctrlKey:1}, chars:"8", unmodifiedChars:"!
"},
2764 "\u00A1
", "Digit8
", KeyboardEvent.DOM_VK_8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2765 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_8,
2766 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"8", unmodifiedChars:"8"},
2767 "\u00DB
", "Digit8
", KeyboardEvent.DOM_VK_8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2768 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_8,
2769 modifiers:{metaKey:1}, chars:"!
", unmodifiedChars:"!
"},
2770 "!
", "Digit8
", KeyboardEvent.DOM_VK_8, "!
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2771 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_8,
2772 modifiers:{metaKey:1, shiftKey:1}, chars:"8", unmodifiedChars:"8"},
2773 "8", "Digit8
", KeyboardEvent.DOM_VK_8, "8", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2774 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_9,
2775 modifiers:{}, chars:"\u00E7
", unmodifiedChars:"\u00E7
"},
2776 "\u00E7
", "Digit9
", KeyboardEvent.DOM_VK_9, "\u00E7
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2777 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_9,
2778 modifiers:{shiftKey:1}, chars:"9", unmodifiedChars:"9"},
2779 "9", "Digit9
", KeyboardEvent.DOM_VK_9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2780 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_9,
2781 modifiers:{ctrlKey:1}, chars:"\u001C
", unmodifiedChars:"\u00E7
"},
2782 "\u00E7
", "Digit9
", KeyboardEvent.DOM_VK_9, "\u0000
" /* TODO */, SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2783 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_9,
2784 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u001C
", unmodifiedChars:"9"},
2785 "9", "Digit9
", KeyboardEvent.DOM_VK_9, "\u0000
" /* TODO */, SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2786 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_9,
2787 modifiers:{altKey:1}, chars:"\u00C7
", unmodifiedChars:"\u00E7
"},
2788 "\u00C7
", "Digit9
", KeyboardEvent.DOM_VK_9, "\u00C7
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2789 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_9,
2790 modifiers:{altKey:1, shiftKey:1}, chars:"\u00C1
", unmodifiedChars:"9"},
2791 "\u00C1
", "Digit9
", KeyboardEvent.DOM_VK_9, "\u00C1
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2792 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_9,
2793 modifiers:{altKey:1, ctrlKey:1}, chars:"\u001C
", unmodifiedChars:"\u00E7
"},
2794 "\u00C7
", "Digit9
", KeyboardEvent.DOM_VK_9, "\u0000
" /* TODO */, SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2795 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_9,
2796 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"\u001C
", unmodifiedChars:"9"},
2797 "\u00C1
", "Digit9
", KeyboardEvent.DOM_VK_9, "\u0000
" /* TODO */, SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2798 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_9,
2799 modifiers:{metaKey:1}, chars:"\u00E7
", unmodifiedChars:"\u00E7
"},
2800 "\u00E7
", "Digit9
", KeyboardEvent.DOM_VK_9, "\u00E7
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2801 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_9,
2802 modifiers:{metaKey:1, shiftKey:1}, chars:"9", unmodifiedChars:"9"},
2803 "9", "Digit9
", KeyboardEvent.DOM_VK_9, "9", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2804 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_0,
2805 modifiers:{}, chars:"\u00E0
", unmodifiedChars:"\u00E0
"},
2806 "\u00E0
", "Digit0
", KeyboardEvent.DOM_VK_0, "\u00E0
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2807 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_0,
2808 modifiers:{shiftKey:1}, chars:"0", unmodifiedChars:"0"},
2809 "0", "Digit0
", KeyboardEvent.DOM_VK_0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2810 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_0,
2811 modifiers:{ctrlKey:1}, chars:"", unmodifiedChars:"\u00E0
"},
2812 "\u00E0
", "Digit0
", KeyboardEvent.DOM_VK_0, "\u0000
" /* TODO */, SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2813 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_0,
2814 modifiers:{ctrlKey:1, shiftKey:1}, chars:"", unmodifiedChars:"0"},
2815 "0", "Digit0
", KeyboardEvent.DOM_VK_0, "\u0000
" /* TODO */, SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2816 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_0,
2817 modifiers:{altKey:1}, chars:"\u00F8
", unmodifiedChars:"\u00E0
"},
2818 "\u00F8
", "Digit0
", KeyboardEvent.DOM_VK_0, "\u00F8
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2819 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_0,
2820 modifiers:{altKey:1, shiftKey:1}, chars:"\u00D8
", unmodifiedChars:"0"},
2821 "\u00D8
", "Digit0
", KeyboardEvent.DOM_VK_0, "\u00D8
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2822 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_0,
2823 modifiers:{altKey:1, ctrlKey:1}, chars:"", unmodifiedChars:"\u00E0
"},
2824 "\u00F8
", "Digit0
", KeyboardEvent.DOM_VK_0, "\u0000
" /* TODO */, SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2825 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_0,
2826 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:"", unmodifiedChars:"0"},
2827 "\u00D8
", "Digit0
", KeyboardEvent.DOM_VK_0, "\u0000
" /* TODO */, SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2828 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_0,
2829 modifiers:{metaKey:1}, chars:"\u00E0
", unmodifiedChars:"\u00E0
"},
2830 "\u00E0
", "Digit0
", KeyboardEvent.DOM_VK_0, "\u00E0
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2831 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_0,
2832 modifiers:{metaKey:1, shiftKey:1}, chars:"0", unmodifiedChars:"0"},
2833 "0", "Digit0
", KeyboardEvent.DOM_VK_0, "0", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2836 // keycode should be DOM_VK_[A-Z] of the key on the latest ASCII capable keyboard layout is for alphabet
2837 yield testKey({layout:KEYBOARD_LAYOUT_THAI, keyCode:MAC_VK_ANSI_A,
2838 modifiers:{}, chars:"\u0E1F
", unmodifiedChars:"\u0E1F
"},
2839 "\u0E1F
", "KeyA
", KeyboardEvent.DOM_VK_A, "\u0E1F
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2840 // keycode should be shifted character if unshifted character isn't an ASCII character
2841 yield testKey({layout:KEYBOARD_LAYOUT_THAI, keyCode:MAC_VK_ANSI_Quote,
2842 modifiers:{}, chars:"\u0E07
", unmodifiedChars:"\u0E07
"},
2843 "\u0E07
", "Quote
", KeyboardEvent.DOM_VK_PERIOD, "\u0E07
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2844 // keycode should be same as ANSI keyboard layout's key which causes the native virtual keycode
2845 // if the character of the key on the latest ASCII capable keyboard layout isn't for alphabet
2846 yield testKey({layout:KEYBOARD_LAYOUT_THAI, keyCode:MAC_VK_ANSI_Period,
2847 modifiers:{}, chars:"\u0E43
", unmodifiedChars:"\u0E43
"},
2848 "\u0E43
", "Period
", KeyboardEvent.DOM_VK_PERIOD, "\u0E43
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2849 // keycode should be DOM_VK_[0-9] if the key on the latest ASCII capable keyboard layout is for numeric
2850 yield testKey({layout:KEYBOARD_LAYOUT_THAI, keyCode:MAC_VK_ANSI_1,
2851 modifiers:{}, chars:"\u0E45
", unmodifiedChars:"\u0E45
"},
2852 "\u0E45
", "Digit1
", KeyboardEvent.DOM_VK_1, "\u0E45
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2853 yield testKey({layout:KEYBOARD_LAYOUT_THAI, keyCode:MAC_VK_ANSI_2,
2854 modifiers:{}, chars:"/
", unmodifiedChars:"/
"},
2855 "/
", "Digit2
", KeyboardEvent.DOM_VK_2, "/
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2856 yield testKey({layout:KEYBOARD_LAYOUT_THAI, keyCode:MAC_VK_ANSI_3,
2857 modifiers:{}, chars:"_
", unmodifiedChars:"_
"},
2858 "_
", "Digit3
", KeyboardEvent.DOM_VK_3, "_
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2859 yield testKey({layout:KEYBOARD_LAYOUT_THAI, keyCode:MAC_VK_ANSI_4,
2860 modifiers:{}, chars:"\u0E20
", unmodifiedChars:"\u0E20
"},
2861 "\u0E20
", "Digit4
", KeyboardEvent.DOM_VK_4, "\u0E20
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2862 yield testKey({layout:KEYBOARD_LAYOUT_THAI, keyCode:MAC_VK_ANSI_5,
2863 modifiers:{}, chars:"\u0E16
", unmodifiedChars:"\u0E16
"},
2864 "\u0E16
", "Digit5
", KeyboardEvent.DOM_VK_5, "\u0E16
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2865 yield testKey({layout:KEYBOARD_LAYOUT_THAI, keyCode:MAC_VK_ANSI_6,
2866 modifiers:{}, chars:"\u0E38
", unmodifiedChars:"\u0E38
"},
2867 "\u0E38
", "Digit6
", KeyboardEvent.DOM_VK_6, "\u0E38
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2868 yield testKey({layout:KEYBOARD_LAYOUT_THAI, keyCode:MAC_VK_ANSI_7,
2869 modifiers:{}, chars:"\u0E36
", unmodifiedChars:"\u0E36
"},
2870 "\u0E36
", "Digit7
", KeyboardEvent.DOM_VK_7, "\u0E36
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2871 yield testKey({layout:KEYBOARD_LAYOUT_THAI, keyCode:MAC_VK_ANSI_8,
2872 modifiers:{}, chars:"\u0E04
", unmodifiedChars:"\u0E04
"},
2873 "\u0E04
", "Digit8
", KeyboardEvent.DOM_VK_8, "\u0E04
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2874 yield testKey({layout:KEYBOARD_LAYOUT_THAI, keyCode:MAC_VK_ANSI_9,
2875 modifiers:{}, chars:"\u0E15
", unmodifiedChars:"\u0E15
"},
2876 "\u0E15
", "Digit9
", KeyboardEvent.DOM_VK_9, "\u0E15
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2877 yield testKey({layout:KEYBOARD_LAYOUT_THAI, keyCode:MAC_VK_ANSI_0,
2878 modifiers:{}, chars:"\u0E08
", unmodifiedChars:"\u0E08
"},
2879 "\u0E08
", "Digit0
", KeyboardEvent.DOM_VK_0, "\u0E08
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2881 // Dvorak-Qwerty, layout should be changed when Command key is pressed.
2882 yield testKey({layout:KEYBOARD_LAYOUT_DVORAK_QWERTY, keyCode:MAC_VK_ANSI_S,
2883 modifiers:{}, chars:"o
", unmodifiedChars:"o
"},
2884 "o
", "KeyS
", KeyboardEvent.DOM_VK_O, "o
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2885 yield testKey({layout:KEYBOARD_LAYOUT_DVORAK_QWERTY, keyCode:MAC_VK_ANSI_S,
2886 modifiers:{shiftKey:1}, chars:"O
", unmodifiedChars:"O
"},
2887 "O
", "KeyS
", KeyboardEvent.DOM_VK_O, "O
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2888 yield testKey({layout:KEYBOARD_LAYOUT_DVORAK_QWERTY, keyCode:MAC_VK_ANSI_S,
2889 modifiers:{ctrlKey:1}, chars:"\u000F
", unmodifiedChars:"o
"},
2890 "o
", "KeyS
", KeyboardEvent.DOM_VK_O, "o
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2891 yield testKey({layout:KEYBOARD_LAYOUT_DVORAK_QWERTY, keyCode:MAC_VK_ANSI_S,
2892 modifiers:{altKey:1}, chars:"\u00F8
", unmodifiedChars:"o
"},
2893 "\u00F8
", "KeyS
", KeyboardEvent.DOM_VK_O, "\u00F8
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2894 yield testKey({layout:KEYBOARD_LAYOUT_DVORAK_QWERTY, keyCode:MAC_VK_ANSI_S,
2895 modifiers:{metaKey:1}, chars:"s
", unmodifiedChars:"o
"},
2896 "s
", "KeyS
", KeyboardEvent.DOM_VK_S, "s
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2897 yield testKey({layout:KEYBOARD_LAYOUT_DVORAK_QWERTY, keyCode:MAC_VK_ANSI_D,
2898 modifiers:{}, chars:"e
", unmodifiedChars:"e
"},
2899 "e
", "KeyD
", KeyboardEvent.DOM_VK_E, "e
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2900 yield testKey({layout:KEYBOARD_LAYOUT_DVORAK_QWERTY, keyCode:MAC_VK_ANSI_D,
2901 modifiers:{shiftKey:1}, chars:"E
", unmodifiedChars:"E
"},
2902 "E
", "KeyD
", KeyboardEvent.DOM_VK_E, "E
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2903 yield testKey({layout:KEYBOARD_LAYOUT_DVORAK_QWERTY, keyCode:MAC_VK_ANSI_D,
2904 modifiers:{ctrlKey:1}, chars:"\u0005
", unmodifiedChars:"e
"},
2905 "e
", "KeyD
", KeyboardEvent.DOM_VK_E, "e
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2906 yield testKey({layout:KEYBOARD_LAYOUT_DVORAK_QWERTY, keyCode:MAC_VK_ANSI_D,
2907 modifiers:{altKey:1}, chars:"", unmodifiedChars:"e
"},
2908 "Dead
", "KeyD
", KeyboardEvent.DOM_VK_E, "\u00B4
", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); // dead key
2909 yield testKey({layout:KEYBOARD_LAYOUT_DVORAK_QWERTY, keyCode:MAC_VK_ANSI_D,
2910 modifiers:{metaKey:1}, chars:"d
", unmodifiedChars:"e
"},
2911 "d
", "KeyD
", KeyboardEvent.DOM_VK_D, "d
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2912 yield testKey({layout:KEYBOARD_LAYOUT_DVORAK_QWERTY, keyCode:MAC_VK_ANSI_I,
2913 modifiers:{metaKey:1, altKey:1}, chars:"^
", unmodifiedChars:"c
"},
2914 "^
", "KeyI
", KeyboardEvent.DOM_VK_I, "^
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2915 yield testKey({layout:KEYBOARD_LAYOUT_DVORAK_QWERTY, keyCode:MAC_VK_ANSI_I,
2916 modifiers:{metaKey:1, altKey:1, shiftKey:1}, chars:"\u02C6
", unmodifiedChars:"C
"},
2917 "\u02C6
", "KeyI
", KeyboardEvent.DOM_VK_I, "\u02C6
", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2919 // Arabic - PC keyboard layout inputs 2 or more characters with some key.
2920 yield testKey({layout:KEYBOARD_LAYOUT_ARABIC_PC, keyCode:MAC_VK_ANSI_G,
2921 modifiers:{shiftKey:1}, chars:"\u0644\u0623
", unmodifiedChars:"\u0644\u0623
"},
2922 ["\u0644\u0623
", "\u0644
", "\u0623
", "\u0644\u0623
"], "KeyG
", KeyboardEvent.DOM_VK_G, "\u0644\u0623
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2923 yield testKey({layout:KEYBOARD_LAYOUT_ARABIC_PC, keyCode:MAC_VK_ANSI_T,
2924 modifiers:{shiftKey:1}, chars:"\u0644\u0625
", unmodifiedChars:"\u0644\u0625
"},
2925 ["\u0644\u0625
", "\u0644
", "\u0625
", "\u0644\u0625
"], "KeyT
", KeyboardEvent.DOM_VK_T, "\u0644\u0625
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2926 yield testKey({layout:KEYBOARD_LAYOUT_ARABIC_PC, keyCode:MAC_VK_ANSI_B,
2927 modifiers:{shiftKey:1}, chars:"\u0644\u0622
", unmodifiedChars:"\u0644\u0622
"},
2928 ["\u0644\u0622
", "\u0644
", "\u0622
", "\u0644\u0622
"], "KeyB
", KeyboardEvent.DOM_VK_B, "\u0644\u0622
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2929 yield testKey({layout:KEYBOARD_LAYOUT_ARABIC_PC, keyCode:MAC_VK_ANSI_B,
2930 modifiers:{}, chars:"\u0644\u0627
", unmodifiedChars:"\u0644\u0627
"},
2931 ["\u0644\u0627
", "\u0644
", "\u0627
", "\u0644\u0627
"], "KeyB
", KeyboardEvent.DOM_VK_B, "\u0644\u0627
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2936 function* testKeysOnWindows()
2938 // On Windows, you can use Spy++ or Winspector (free) to watch window messages.
2939 // The keyCode is given by the wParam of the last WM_KEYDOWN message. The
2940 // chars string is given by the wParam of the WM_CHAR message. unmodifiedChars
2941 // is not needed on Windows.
2943 // Shift-ctrl-alt generates no WM_CHAR, but we still get a keypress
2944 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A,
2945 modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:""},
2946 "A
", "KeyA
", KeyboardEvent.DOM_VK_A, "A
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2949 yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:WIN_VK_A,
2950 modifiers:{}, chars:"\u03b1
"},
2951 "\u03b1
", "KeyA
", KeyboardEvent.DOM_VK_A, "\u03b1
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2952 yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:WIN_VK_A,
2953 modifiers:{shiftKey:1}, chars:"\u0391
"},
2954 "\u0391
", "KeyA
", KeyboardEvent.DOM_VK_A, "\u0391
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2956 // Greek ctrl keys produce Latin charcodes
2957 yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:WIN_VK_A,
2958 modifiers:{ctrlKey:1}, chars:"\u0001
"},
2959 "\u03b1
", "KeyA
", KeyboardEvent.DOM_VK_A, "a
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2960 yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:WIN_VK_A,
2961 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0001
"},
2962 "\u0391
", "KeyA
", KeyboardEvent.DOM_VK_A, "A
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2964 // Caps Lock key event
2965 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_CAPITAL,
2966 modifiers:{capsLockKey:1}, chars:""},
2967 "CapsLock
", "CapsLock
", KeyboardEvent.DOM_VK_CAPS_LOCK, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2968 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_CAPITAL,
2969 modifiers:{capsLockKey:0}, chars:""},
2970 "CapsLock
", "CapsLock
", KeyboardEvent.DOM_VK_CAPS_LOCK, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
2973 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_LSHIFT,
2974 modifiers:{shiftKey:1}, chars:""},
2975 "Shift
", "ShiftLeft
", KeyboardEvent.DOM_VK_SHIFT, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_LEFT);
2976 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_RSHIFT,
2977 modifiers:{shiftRightKey:1}, chars:""},
2978 "Shift
", "ShiftRight
", KeyboardEvent.DOM_VK_SHIFT, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_RIGHT);
2981 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_LCONTROL,
2982 modifiers:{ctrlKey:1}, chars:""},
2983 "Control
", "ControlLeft
", KeyboardEvent.DOM_VK_CONTROL, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_LEFT);
2984 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_RCONTROL,
2985 modifiers:{ctrlRightKey:1}, chars:""},
2986 "Control
", "ControlRight
", KeyboardEvent.DOM_VK_CONTROL, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_RIGHT);
2989 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_LMENU,
2990 modifiers:{altKey:1}, chars:""},
2991 "Alt
", "AltLeft
", KeyboardEvent.DOM_VK_ALT, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_LEFT);
2992 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_RMENU,
2993 modifiers:{altRightKey:1}, chars:""},
2994 "Alt
", "AltRight
", KeyboardEvent.DOM_VK_ALT, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_RIGHT);
2997 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_LWIN,
2998 modifiers:{}, chars:""},
2999 "OS
" /* bug 1232918 */, "OSLeft
", KeyboardEvent.DOM_VK_WIN, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_LEFT);
3000 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_RWIN,
3001 modifiers:{}, chars:""},
3002 "OS
" /* bug 1232918 */, "OSRight
", KeyboardEvent.DOM_VK_WIN, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_RIGHT);
3004 // all keys on keyboard (keyCode test)
3005 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_BACK,
3006 modifiers:{}, chars:"\u0008
"},
3007 "Backspace
", "Backspace
", KeyboardEvent.DOM_VK_BACK_SPACE, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3008 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_TAB,
3009 modifiers:{}, chars:"\t
"},
3010 "Tab
", "Tab
", KeyboardEvent.DOM_VK_TAB, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3011 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_RETURN,
3012 modifiers:{}, chars:"\r
"},
3013 "Enter
", "Enter
", KeyboardEvent.DOM_VK_RETURN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3014 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_PAUSE,
3015 modifiers:{}, chars:""},
3016 "Pause
", "Pause
", KeyboardEvent.DOM_VK_PAUSE, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3017 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_KANA,
3018 modifiers:{}, chars:""},
3019 "Unidentified
", "", KeyboardEvent.DOM_VK_KANA, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3020 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_JUNJA,
3021 modifiers:{}, chars:""},
3022 "JunjaMode
", "", KeyboardEvent.DOM_VK_JUNJA, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3023 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_FINAL,
3024 modifiers:{}, chars:""},
3025 "FinalMode
", "", KeyboardEvent.DOM_VK_FINAL, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3026 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_KANJI,
3027 modifiers:{}, chars:""},
3028 "Unidentified
", "", KeyboardEvent.DOM_VK_KANJI, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3029 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_ESCAPE,
3030 modifiers:{}, chars:""},
3031 "Escape
", "Escape
", KeyboardEvent.DOM_VK_ESCAPE, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3032 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_CONVERT,
3033 modifiers:{}, chars:""},
3034 "Convert
", "", KeyboardEvent.DOM_VK_CONVERT, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3035 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NONCONVERT,
3036 modifiers:{}, chars:""},
3037 "NonConvert
", "", KeyboardEvent.DOM_VK_NONCONVERT, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3038 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_ACCEPT,
3039 modifiers:{}, chars:""},
3040 "Accept
", "", KeyboardEvent.DOM_VK_ACCEPT, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3041 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_MODECHANGE,
3042 modifiers:{}, chars:""},
3043 "ModeChange
", "", KeyboardEvent.DOM_VK_MODECHANGE, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3044 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_SPACE,
3045 modifiers:{}, chars:" "},
3046 " ", "Space
", KeyboardEvent.DOM_VK_SPACE, " ", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3047 // Ctrl+Space causes WM_CHAR with ' '. However, its keypress event's ctrlKey state shouldn't be false.
3048 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_SPACE,
3049 modifiers:{ctrlKey:1}, chars:" "},
3050 " ", "Space
", KeyboardEvent.DOM_VK_SPACE, " ", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3051 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_SELECT,
3052 modifiers:{}, chars:""},
3053 "Select
", "", KeyboardEvent.DOM_VK_SELECT, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3054 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_PRINT,
3055 modifiers:{}, chars:""},
3056 "Unidentified
", "", KeyboardEvent.DOM_VK_PRINT, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3057 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_EXECUTE,
3058 modifiers:{}, chars:""},
3059 "Execute
", "", KeyboardEvent.DOM_VK_EXECUTE, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3060 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_SNAPSHOT,
3061 modifiers:{}, chars:""},
3062 "PrintScreen
", "PrintScreen
", KeyboardEvent.DOM_VK_PRINTSCREEN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3063 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_HELP,
3064 modifiers:{}, chars:""},
3065 "Help
", "", KeyboardEvent.DOM_VK_HELP, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3066 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_SLEEP,
3067 modifiers:{}, chars:""},
3068 "Standby
", "", KeyboardEvent.DOM_VK_SLEEP, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3069 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_PRIOR,
3070 modifiers:{}, chars:""},
3071 "PageUp
", "PageUp
", KeyboardEvent.DOM_VK_PAGE_UP, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3072 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NEXT,
3073 modifiers:{}, chars:""},
3074 "PageDown
", "PageDown
", KeyboardEvent.DOM_VK_PAGE_DOWN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3075 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_END,
3076 modifiers:{}, chars:""},
3077 "End
", "End
", KeyboardEvent.DOM_VK_END, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3078 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_HOME,
3079 modifiers:{}, chars:""},
3080 "Home
", "Home
", KeyboardEvent.DOM_VK_HOME, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3081 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_LEFT,
3082 modifiers:{}, chars:""},
3083 "ArrowLeft
", "ArrowLeft
", KeyboardEvent.DOM_VK_LEFT, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3084 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_UP,
3085 modifiers:{}, chars:""},
3086 "ArrowUp
", "ArrowUp
", KeyboardEvent.DOM_VK_UP, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3087 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_RIGHT,
3088 modifiers:{}, chars:""},
3089 "ArrowRight
", "ArrowRight
", KeyboardEvent.DOM_VK_RIGHT, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3090 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_DOWN,
3091 modifiers:{}, chars:""},
3092 "ArrowDown
", "ArrowDown
", KeyboardEvent.DOM_VK_DOWN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3093 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_INSERT,
3094 modifiers:{}, chars:""},
3095 "Insert
", "Insert
", KeyboardEvent.DOM_VK_INSERT, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3096 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_DELETE,
3097 modifiers:{}, chars:""},
3098 "Delete
", "Delete
", KeyboardEvent.DOM_VK_DELETE, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3100 // Backspace and Enter are handled with special path in mozilla::widget::NativeKey. So, let's test them with modifiers too.
3101 // Note that when both Ctrl and Alt are pressed, they don't cause WM_(SYS)CHAR message.
3102 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_BACK,
3103 modifiers:{ctrlKey:1}, chars:"\u007F
"},
3104 "Backspace
", "Backspace
", KeyboardEvent.DOM_VK_BACK_SPACE, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3105 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_BACK,
3106 modifiers:{altKey:1}, chars:"\u0008
"},
3107 "Backspace
", "Backspace
", KeyboardEvent.DOM_VK_BACK_SPACE, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3108 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_BACK,
3109 modifiers:{ctrl:1, altKey:1}, chars:""},
3110 "Backspace
", "Backspace
", KeyboardEvent.DOM_VK_BACK_SPACE, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3111 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_RETURN,
3112 modifiers:{ctrlKey:1}, chars:"\n
"},
3113 "Enter
", "Enter
", KeyboardEvent.DOM_VK_RETURN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3114 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_RETURN,
3115 modifiers:{altKey:1}, chars:"\r
"},
3116 "Enter
", "Enter
", KeyboardEvent.DOM_VK_RETURN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3117 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_RETURN,
3118 modifiers:{ctrl:1, altKey:1}, chars:""},
3119 "Enter
", "Enter
", KeyboardEvent.DOM_VK_RETURN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3121 // Even non-printable key could be mapped as a printable key.
3122 // Only "keyup
" event cannot know if it *did* cause inputting text.
3123 // Therefore, only "keydown
" and "keypress
" event's key value should be the character inputted by the key.
3124 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_F4,
3125 modifiers:{}, chars:"a
"},
3126 ["a
", "a
", "F4
"], "F4
", KeyboardEvent.DOM_VK_F4, "a
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3128 // Even if key message is processed by IME, when the key causes inputting text,
3129 // keypress event(s) should be fired.
3130 const WIN_VK_PROCESSKEY_WITH_SC_A = WIN_VK_PROCESSKEY | 0x001E0000;
3131 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_PROCESSKEY_WITH_SC_A,
3132 modifiers:{}, chars:"a
"},
3133 ["a
", "a
", "Process
"], "KeyA
", KeyboardEvent.DOM_VK_PROCESSKEY, "a
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3134 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_PROCESSKEY_WITH_SC_A,
3135 modifiers:{altKey:1}, chars:"a
"},
3136 ["a
", "a
", "Process
"], "KeyA
", KeyboardEvent.DOM_VK_PROCESSKEY, "a
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3140 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A,
3141 modifiers:{}, chars:"a
"},
3142 "a
", "KeyA
", KeyboardEvent.DOM_VK_A, "a
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3143 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A,
3144 modifiers:{shiftKey:1}, chars:"A
"},
3145 "A
", "KeyA
", KeyboardEvent.DOM_VK_A, "A
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3146 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A,
3147 modifiers:{ctrlKey:1}, chars:"\u0001
"},
3148 "a
", "KeyA
", KeyboardEvent.DOM_VK_A, "a
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3149 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A,
3150 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0001
"},
3151 "A
", "KeyA
", KeyboardEvent.DOM_VK_A, "A
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3152 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A,
3153 modifiers:{altKey:1}, chars:"a
"},
3154 "a
", "KeyA
", KeyboardEvent.DOM_VK_A, "a
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3155 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A,
3156 modifiers:{altKey:1, shiftKey:1}, chars:"A
"},
3157 "A
", "KeyA
", KeyboardEvent.DOM_VK_A, "A
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3158 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_B,
3159 modifiers:{}, chars:"b
"},
3160 "b
", "KeyB
", KeyboardEvent.DOM_VK_B, "b
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3161 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_B,
3162 modifiers:{shiftKey:1}, chars:"B
"},
3163 "B
", "KeyB
", KeyboardEvent.DOM_VK_B, "B
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3164 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_B,
3165 modifiers:{ctrlKey:1}, chars:"\u0002
"},
3166 "b
", "KeyB
", KeyboardEvent.DOM_VK_B, "b
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3167 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_B,
3168 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0002
"},
3169 "B
", "KeyB
", KeyboardEvent.DOM_VK_B, "B
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3170 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_B,
3171 modifiers:{altKey:1}, chars:"b
"},
3172 "b
", "KeyB
", KeyboardEvent.DOM_VK_B, "b
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3173 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_B,
3174 modifiers:{altKey:1, shiftKey:1}, chars:"B
"},
3175 "B
", "KeyB
", KeyboardEvent.DOM_VK_B, "B
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3176 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_C,
3177 modifiers:{}, chars:"c
"},
3178 "c
", "KeyC
", KeyboardEvent.DOM_VK_C, "c
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3179 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_C,
3180 modifiers:{shiftKey:1}, chars:"C
"},
3181 "C
", "KeyC
", KeyboardEvent.DOM_VK_C, "C
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3182 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_C,
3183 modifiers:{ctrlKey:1}, chars:"\u0003
"},
3184 "c
", "KeyC
", KeyboardEvent.DOM_VK_C, "c
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3185 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_C,
3186 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0003
"},
3187 "C
", "KeyC
", KeyboardEvent.DOM_VK_C, "C
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3188 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_C,
3189 modifiers:{altKey:1}, chars:"c
"},
3190 "c
", "KeyC
", KeyboardEvent.DOM_VK_C, "c
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3191 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_C,
3192 modifiers:{altKey:1, shiftKey:1}, chars:"C
"},
3193 "C
", "KeyC
", KeyboardEvent.DOM_VK_C, "C
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3194 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_D,
3195 modifiers:{}, chars:"d
"},
3196 "d
", "KeyD
", KeyboardEvent.DOM_VK_D, "d
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3197 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_D,
3198 modifiers:{shiftKey:1}, chars:"D
"},
3199 "D
", "KeyD
", KeyboardEvent.DOM_VK_D, "D
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3200 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_D,
3201 modifiers:{ctrlKey:1}, chars:"\u0004
"},
3202 "d
", "KeyD
", KeyboardEvent.DOM_VK_D, "d
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3203 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_D,
3204 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0004
"},
3205 "D
", "KeyD
", KeyboardEvent.DOM_VK_D, "D
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3206 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_D,
3207 modifiers:{altKey:1}, chars:"d
"},
3208 "d
", "KeyD
", KeyboardEvent.DOM_VK_D, "d
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3209 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_D,
3210 modifiers:{altKey:1, shiftKey:1}, chars:"D
"},
3211 "D
", "KeyD
", KeyboardEvent.DOM_VK_D, "D
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3212 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_E,
3213 modifiers:{}, chars:"e
"},
3214 "e
", "KeyE
", KeyboardEvent.DOM_VK_E, "e
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3215 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_E,
3216 modifiers:{shiftKey:1}, chars:"E
"},
3217 "E
", "KeyE
", KeyboardEvent.DOM_VK_E, "E
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3218 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_E,
3219 modifiers:{ctrlKey:1}, chars:"\u0005
"},
3220 "e
", "KeyE
", KeyboardEvent.DOM_VK_E, "e
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3221 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_E,
3222 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0005
"},
3223 "E
", "KeyE
", KeyboardEvent.DOM_VK_E, "E
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3224 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_E,
3225 modifiers:{altKey:1}, chars:"e
"},
3226 "e
", "KeyE
", KeyboardEvent.DOM_VK_E, "e
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3227 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_E,
3228 modifiers:{altKey:1, shiftKey:1}, chars:"E
"},
3229 "E
", "KeyE
", KeyboardEvent.DOM_VK_E, "E
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3230 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_F,
3231 modifiers:{}, chars:"f
"},
3232 "f
", "KeyF
", KeyboardEvent.DOM_VK_F, "f
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3233 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_F,
3234 modifiers:{shiftKey:1}, chars:"F
"},
3235 "F
", "KeyF
", KeyboardEvent.DOM_VK_F, "F
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3236 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_F,
3237 modifiers:{ctrlKey:1}, chars:"\u0006
"},
3238 "f
", "KeyF
", KeyboardEvent.DOM_VK_F, "f
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3239 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_F,
3240 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0006
"},
3241 "F
", "KeyF
", KeyboardEvent.DOM_VK_F, "F
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3242 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_F,
3243 modifiers:{altKey:1}, chars:"f
"},
3244 "f
", "KeyF
", KeyboardEvent.DOM_VK_F, "f
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3245 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_F,
3246 modifiers:{altKey:1, shiftKey:1}, chars:"F
"},
3247 "F
", "KeyF
", KeyboardEvent.DOM_VK_F, "F
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3248 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_G,
3249 modifiers:{}, chars:"g
"},
3250 "g
", "KeyG
", KeyboardEvent.DOM_VK_G, "g
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3251 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_G,
3252 modifiers:{shiftKey:1}, chars:"G
"},
3253 "G
", "KeyG
", KeyboardEvent.DOM_VK_G, "G
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3254 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_G,
3255 modifiers:{ctrlKey:1}, chars:"\u0007
"},
3256 "g
", "KeyG
", KeyboardEvent.DOM_VK_G, "g
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3257 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_G,
3258 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0007
"},
3259 "G
", "KeyG
", KeyboardEvent.DOM_VK_G, "G
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3260 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_G,
3261 modifiers:{altKey:1}, chars:"g
"},
3262 "g
", "KeyG
", KeyboardEvent.DOM_VK_G, "g
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3263 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_G,
3264 modifiers:{altKey:1, shiftKey:1}, chars:"G
"},
3265 "G
", "KeyG
", KeyboardEvent.DOM_VK_G, "G
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3266 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_H,
3267 modifiers:{}, chars:"h
"},
3268 "h
", "KeyH
", KeyboardEvent.DOM_VK_H, "h
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3269 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_H,
3270 modifiers:{shiftKey:1}, chars:"H
"},
3271 "H
", "KeyH
", KeyboardEvent.DOM_VK_H, "H
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3272 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_H,
3273 modifiers:{ctrlKey:1}, chars:"\u0008
"},
3274 "h
", "KeyH
", KeyboardEvent.DOM_VK_H, "h
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3275 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_H,
3276 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0008
"},
3277 "H
", "KeyH
", KeyboardEvent.DOM_VK_H, "H
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3278 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_H,
3279 modifiers:{altKey:1}, chars:"h
"},
3280 "h
", "KeyH
", KeyboardEvent.DOM_VK_H, "h
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3281 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_H,
3282 modifiers:{altKey:1, shiftKey:1}, chars:"H
"},
3283 "H
", "KeyH
", KeyboardEvent.DOM_VK_H, "H
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3284 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_I,
3285 modifiers:{}, chars:"i
"},
3286 "i
", "KeyI
", KeyboardEvent.DOM_VK_I, "i
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3287 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_I,
3288 modifiers:{shiftKey:1}, chars:"I
"},
3289 "I
", "KeyI
", KeyboardEvent.DOM_VK_I, "I
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3290 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_I,
3291 modifiers:{ctrlKey:1}, chars:"\u0009
"},
3292 "i
", "KeyI
", KeyboardEvent.DOM_VK_I, "i
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3293 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_I,
3294 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0009
"},
3295 "I
", "KeyI
", KeyboardEvent.DOM_VK_I, "I
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3296 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_I,
3297 modifiers:{altKey:1}, chars:"i
"},
3298 "i
", "KeyI
", KeyboardEvent.DOM_VK_I, "i
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3299 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_I,
3300 modifiers:{altKey:1, shiftKey:1}, chars:"I
"},
3301 "I
", "KeyI
", KeyboardEvent.DOM_VK_I, "I
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3302 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_J,
3303 modifiers:{}, chars:"j
"},
3304 "j
", "KeyJ
", KeyboardEvent.DOM_VK_J, "j
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3305 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_J,
3306 modifiers:{shiftKey:1}, chars:"J
"},
3307 "J
", "KeyJ
", KeyboardEvent.DOM_VK_J, "J
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3308 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_J,
3309 modifiers:{ctrlKey:1}, chars:"\u000A
"},
3310 "j
", "KeyJ
", KeyboardEvent.DOM_VK_J, "j
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3311 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_J,
3312 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u000A
"},
3313 "J
", "KeyJ
", KeyboardEvent.DOM_VK_J, "J
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3314 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_J,
3315 modifiers:{altKey:1}, chars:"j
"},
3316 "j
", "KeyJ
", KeyboardEvent.DOM_VK_J, "j
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3317 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_J,
3318 modifiers:{altKey:1, shiftKey:1}, chars:"J
"},
3319 "J
", "KeyJ
", KeyboardEvent.DOM_VK_J, "J
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3320 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_K,
3321 modifiers:{}, chars:"k
"},
3322 "k
", "KeyK
", KeyboardEvent.DOM_VK_K, "k
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3323 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_K,
3324 modifiers:{shiftKey:1}, chars:"K
"},
3325 "K
", "KeyK
", KeyboardEvent.DOM_VK_K, "K
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3326 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_K,
3327 modifiers:{ctrlKey:1}, chars:"\u000B
"},
3328 "k
", "KeyK
", KeyboardEvent.DOM_VK_K, "k
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3329 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_K,
3330 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u000B
"},
3331 "K
", "KeyK
", KeyboardEvent.DOM_VK_K, "K
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3332 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_K,
3333 modifiers:{altKey:1}, chars:"k
"},
3334 "k
", "KeyK
", KeyboardEvent.DOM_VK_K, "k
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3335 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_K,
3336 modifiers:{altKey:1, shiftKey:1}, chars:"K
"},
3337 "K
", "KeyK
", KeyboardEvent.DOM_VK_K, "K
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3338 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_L,
3339 modifiers:{}, chars:"l
"},
3340 "l
", "KeyL
", KeyboardEvent.DOM_VK_L, "l
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3341 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_L,
3342 modifiers:{shiftKey:1}, chars:"L
"},
3343 "L
", "KeyL
", KeyboardEvent.DOM_VK_L, "L
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3344 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_L,
3345 modifiers:{ctrlKey:1}, chars:"\u000C
"},
3346 "l
", "KeyL
", KeyboardEvent.DOM_VK_L, "l
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3347 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_L,
3348 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u000C
"},
3349 "L
", "KeyL
", KeyboardEvent.DOM_VK_L, "L
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3350 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_L,
3351 modifiers:{altKey:1}, chars:"l
"},
3352 "l
", "KeyL
", KeyboardEvent.DOM_VK_L, "l
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3353 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_L,
3354 modifiers:{altKey:1, shiftKey:1}, chars:"L
"},
3355 "L
", "KeyL
", KeyboardEvent.DOM_VK_L, "L
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3356 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_M,
3357 modifiers:{}, chars:"m
"},
3358 "m
", "KeyM
", KeyboardEvent.DOM_VK_M, "m
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3359 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_M,
3360 modifiers:{shiftKey:1}, chars:"M
"},
3361 "M
", "KeyM
", KeyboardEvent.DOM_VK_M, "M
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3362 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_M,
3363 modifiers:{ctrlKey:1}, chars:"\u000D
"},
3364 "m
", "KeyM
", KeyboardEvent.DOM_VK_M, "m
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3365 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_M,
3366 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u000D
"},
3367 "M
", "KeyM
", KeyboardEvent.DOM_VK_M, "M
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3368 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_M,
3369 modifiers:{altKey:1}, chars:"m
"},
3370 "m
", "KeyM
", KeyboardEvent.DOM_VK_M, "m
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3371 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_M,
3372 modifiers:{altKey:1, shiftKey:1}, chars:"M
"},
3373 "M
", "KeyM
", KeyboardEvent.DOM_VK_M, "M
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3374 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_N,
3375 modifiers:{}, chars:"n
"},
3376 "n
", "KeyN
", KeyboardEvent.DOM_VK_N, "n
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3377 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_N,
3378 modifiers:{shiftKey:1}, chars:"N
"},
3379 "N
", "KeyN
", KeyboardEvent.DOM_VK_N, "N
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3380 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_N,
3381 modifiers:{ctrlKey:1}, chars:"\u000E
"},
3382 "n
", "KeyN
", KeyboardEvent.DOM_VK_N, "n
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3383 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_N,
3384 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u000E
"},
3385 "N
", "KeyN
", KeyboardEvent.DOM_VK_N, "N
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3386 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_N,
3387 modifiers:{altKey:1}, chars:"n
"},
3388 "n
", "KeyN
", KeyboardEvent.DOM_VK_N, "n
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3389 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_N,
3390 modifiers:{altKey:1, shiftKey:1}, chars:"N
"},
3391 "N
", "KeyN
", KeyboardEvent.DOM_VK_N, "N
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3392 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_O,
3393 modifiers:{}, chars:"o
"},
3394 "o
", "KeyO
", KeyboardEvent.DOM_VK_O, "o
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3395 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_O,
3396 modifiers:{shiftKey:1}, chars:"O
"},
3397 "O
", "KeyO
", KeyboardEvent.DOM_VK_O, "O
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3398 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_O,
3399 modifiers:{ctrlKey:1}, chars:"\u000F
"},
3400 "o
", "KeyO
", KeyboardEvent.DOM_VK_O, "o
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3401 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_O,
3402 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u000F
"},
3403 "O
", "KeyO
", KeyboardEvent.DOM_VK_O, "O
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3404 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_O,
3405 modifiers:{altKey:1}, chars:"o
"},
3406 "o
", "KeyO
", KeyboardEvent.DOM_VK_O, "o
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3407 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_O,
3408 modifiers:{altKey:1, shiftKey:1}, chars:"O
"},
3409 "O
", "KeyO
", KeyboardEvent.DOM_VK_O, "O
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3410 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_P,
3411 modifiers:{}, chars:"p
"},
3412 "p
", "KeyP
", KeyboardEvent.DOM_VK_P, "p
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3413 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_P,
3414 modifiers:{shiftKey:1}, chars:"P
"},
3415 "P
", "KeyP
", KeyboardEvent.DOM_VK_P, "P
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3416 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_P,
3417 modifiers:{ctrlKey:1}, chars:"\u0010
"},
3418 "p
", "KeyP
", KeyboardEvent.DOM_VK_P, "p
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3419 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_P,
3420 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0010
"},
3421 "P
", "KeyP
", KeyboardEvent.DOM_VK_P, "P
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3422 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_P,
3423 modifiers:{altKey:1}, chars:"p
"},
3424 "p
", "KeyP
", KeyboardEvent.DOM_VK_P, "p
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3425 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_P,
3426 modifiers:{altKey:1, shiftKey:1}, chars:"P
"},
3427 "P
", "KeyP
", KeyboardEvent.DOM_VK_P, "P
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3428 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Q,
3429 modifiers:{}, chars:"q
"},
3430 "q
", "KeyQ
", KeyboardEvent.DOM_VK_Q, "q
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3431 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Q,
3432 modifiers:{shiftKey:1}, chars:"Q
"},
3433 "Q
", "KeyQ
", KeyboardEvent.DOM_VK_Q, "Q
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3434 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Q,
3435 modifiers:{ctrlKey:1}, chars:"\u0011
"},
3436 "q
", "KeyQ
", KeyboardEvent.DOM_VK_Q, "q
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3437 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Q,
3438 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0011
"},
3439 "Q
", "KeyQ
", KeyboardEvent.DOM_VK_Q, "Q
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3440 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Q,
3441 modifiers:{altKey:1}, chars:"q
"},
3442 "q
", "KeyQ
", KeyboardEvent.DOM_VK_Q, "q
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3443 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Q,
3444 modifiers:{altKey:1, shiftKey:1}, chars:"Q
"},
3445 "Q
", "KeyQ
", KeyboardEvent.DOM_VK_Q, "Q
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3446 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_R,
3447 modifiers:{}, chars:"r
"},
3448 "r
", "KeyR
", KeyboardEvent.DOM_VK_R, "r
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3449 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_R,
3450 modifiers:{shiftKey:1}, chars:"R
"},
3451 "R
", "KeyR
", KeyboardEvent.DOM_VK_R, "R
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3452 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_R,
3453 modifiers:{ctrlKey:1}, chars:"\u0012
"},
3454 "r
", "KeyR
", KeyboardEvent.DOM_VK_R, "r
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3455 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_R,
3456 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0012
"},
3457 "R
", "KeyR
", KeyboardEvent.DOM_VK_R, "R
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3458 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_R,
3459 modifiers:{altKey:1}, chars:"r
"},
3460 "r
", "KeyR
", KeyboardEvent.DOM_VK_R, "r
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3461 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_R,
3462 modifiers:{altKey:1, shiftKey:1}, chars:"R
"},
3463 "R
", "KeyR
", KeyboardEvent.DOM_VK_R, "R
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3464 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_S,
3465 modifiers:{}, chars:"s
"},
3466 "s
", "KeyS
", KeyboardEvent.DOM_VK_S, "s
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3467 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_S,
3468 modifiers:{shiftKey:1}, chars:"S
"},
3469 "S
", "KeyS
", KeyboardEvent.DOM_VK_S, "S
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3470 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_S,
3471 modifiers:{ctrlKey:1}, chars:"\u0013
"},
3472 "s
", "KeyS
", KeyboardEvent.DOM_VK_S, "s
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3473 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_S,
3474 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0013
"},
3475 "S
", "KeyS
", KeyboardEvent.DOM_VK_S, "S
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3476 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_S,
3477 modifiers:{altKey:1}, chars:"s
"},
3478 "s
", "KeyS
", KeyboardEvent.DOM_VK_S, "s
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3479 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_S,
3480 modifiers:{altKey:1, shiftKey:1}, chars:"S
"},
3481 "S
", "KeyS
", KeyboardEvent.DOM_VK_S, "S
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3482 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_T,
3483 modifiers:{}, chars:"t
"},
3484 "t
", "KeyT
", KeyboardEvent.DOM_VK_T, "t
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3485 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_T,
3486 modifiers:{shiftKey:1}, chars:"T
"},
3487 "T
", "KeyT
", KeyboardEvent.DOM_VK_T, "T
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3488 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_T,
3489 modifiers:{ctrlKey:1}, chars:"\u0014
"},
3490 "t
", "KeyT
", KeyboardEvent.DOM_VK_T, "t
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3491 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_T,
3492 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0014
"},
3493 "T
", "KeyT
", KeyboardEvent.DOM_VK_T, "T
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3494 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_T,
3495 modifiers:{altKey:1}, chars:"t
"},
3496 "t
", "KeyT
", KeyboardEvent.DOM_VK_T, "t
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3497 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_T,
3498 modifiers:{altKey:1, shiftKey:1}, chars:"T
"},
3499 "T
", "KeyT
", KeyboardEvent.DOM_VK_T, "T
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3500 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_U,
3501 modifiers:{}, chars:"u
"},
3502 "u
", "KeyU
", KeyboardEvent.DOM_VK_U, "u
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3503 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_U,
3504 modifiers:{shiftKey:1}, chars:"U
"},
3505 "U
", "KeyU
", KeyboardEvent.DOM_VK_U, "U
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3506 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_U,
3507 modifiers:{ctrlKey:1}, chars:"\u0015
"},
3508 "u
", "KeyU
", KeyboardEvent.DOM_VK_U, "u
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3509 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_U,
3510 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0015
"},
3511 "U
", "KeyU
", KeyboardEvent.DOM_VK_U, "U
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3512 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_U,
3513 modifiers:{altKey:1}, chars:"u
"},
3514 "u
", "KeyU
", KeyboardEvent.DOM_VK_U, "u
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3515 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_U,
3516 modifiers:{altKey:1, shiftKey:1}, chars:"U
"},
3517 "U
", "KeyU
", KeyboardEvent.DOM_VK_U, "U
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3518 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_V,
3519 modifiers:{}, chars:"v
"},
3520 "v
", "KeyV
", KeyboardEvent.DOM_VK_V, "v
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3521 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_V,
3522 modifiers:{shiftKey:1}, chars:"V
"},
3523 "V
", "KeyV
", KeyboardEvent.DOM_VK_V, "V
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3524 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_V,
3525 modifiers:{ctrlKey:1}, chars:"\u0016
"},
3526 "v
", "KeyV
", KeyboardEvent.DOM_VK_V, "v
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3527 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_V,
3528 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0016
"},
3529 "V
", "KeyV
", KeyboardEvent.DOM_VK_V, "V
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3530 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_V,
3531 modifiers:{altKey:1}, chars:"v
"},
3532 "v
", "KeyV
", KeyboardEvent.DOM_VK_V, "v
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3533 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_V,
3534 modifiers:{altKey:1, shiftKey:1}, chars:"V
"},
3535 "V
", "KeyV
", KeyboardEvent.DOM_VK_V, "V
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3536 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_W,
3537 modifiers:{}, chars:"w
"},
3538 "w
", "KeyW
", KeyboardEvent.DOM_VK_W, "w
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3539 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_W,
3540 modifiers:{shiftKey:1}, chars:"W
"},
3541 "W
", "KeyW
", KeyboardEvent.DOM_VK_W, "W
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3542 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_W,
3543 modifiers:{ctrlKey:1}, chars:"\u0017
"},
3544 "w
", "KeyW
", KeyboardEvent.DOM_VK_W, "w
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3545 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_W,
3546 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0017
"},
3547 "W
", "KeyW
", KeyboardEvent.DOM_VK_W, "W
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3548 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_W,
3549 modifiers:{altKey:1}, chars:"w
"},
3550 "w
", "KeyW
", KeyboardEvent.DOM_VK_W, "w
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3551 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_W,
3552 modifiers:{altKey:1, shiftKey:1}, chars:"W
"},
3553 "W
", "KeyW
", KeyboardEvent.DOM_VK_W, "W
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3554 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_X,
3555 modifiers:{}, chars:"x
"},
3556 "x
", "KeyX
", KeyboardEvent.DOM_VK_X, "x
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3557 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_X,
3558 modifiers:{shiftKey:1}, chars:"X
"},
3559 "X
", "KeyX
", KeyboardEvent.DOM_VK_X, "X
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3560 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_X,
3561 modifiers:{ctrlKey:1}, chars:"\u0018
"},
3562 "x
", "KeyX
", KeyboardEvent.DOM_VK_X, "x
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3563 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_X,
3564 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0018
"},
3565 "X
", "KeyX
", KeyboardEvent.DOM_VK_X, "X
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3566 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_X,
3567 modifiers:{altKey:1}, chars:"x
"},
3568 "x
", "KeyX
", KeyboardEvent.DOM_VK_X, "x
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3569 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_X,
3570 modifiers:{altKey:1, shiftKey:1}, chars:"X
"},
3571 "X
", "KeyX
", KeyboardEvent.DOM_VK_X, "X
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3572 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Y,
3573 modifiers:{}, chars:"y
"},
3574 "y
", "KeyY
", KeyboardEvent.DOM_VK_Y, "y
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3575 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Y,
3576 modifiers:{shiftKey:1}, chars:"Y
"},
3577 "Y
", "KeyY
", KeyboardEvent.DOM_VK_Y, "Y
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3578 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Y,
3579 modifiers:{ctrlKey:1}, chars:"\u0019
"},
3580 "y
", "KeyY
", KeyboardEvent.DOM_VK_Y, "y
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3581 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Y,
3582 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0019
"},
3583 "Y
", "KeyY
", KeyboardEvent.DOM_VK_Y, "Y
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3584 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Y,
3585 modifiers:{altKey:1}, chars:"y
"},
3586 "y
", "KeyY
", KeyboardEvent.DOM_VK_Y, "y
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3587 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Y,
3588 modifiers:{altKey:1, shiftKey:1}, chars:"Y
"},
3589 "Y
", "KeyY
", KeyboardEvent.DOM_VK_Y, "Y
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3590 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Z,
3591 modifiers:{}, chars:"z
"},
3592 "z
", "KeyZ
", KeyboardEvent.DOM_VK_Z, "z
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3593 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Z,
3594 modifiers:{shiftKey:1}, chars:"Z
"},
3595 "Z
", "KeyZ
", KeyboardEvent.DOM_VK_Z, "Z
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3596 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Z,
3597 modifiers:{ctrlKey:1}, chars:"\u001A
"},
3598 "z
", "KeyZ
", KeyboardEvent.DOM_VK_Z, "z
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3599 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Z,
3600 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u001A
"},
3601 "Z
", "KeyZ
", KeyboardEvent.DOM_VK_Z, "Z
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3602 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Z,
3603 modifiers:{altKey:1}, chars:"z
"},
3604 "z
", "KeyZ
", KeyboardEvent.DOM_VK_Z, "z
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3605 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Z,
3606 modifiers:{altKey:1, shiftKey:1}, chars:"Z
"},
3607 "Z
", "KeyZ
", KeyboardEvent.DOM_VK_Z, "Z
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3610 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_0,
3611 modifiers:{}, chars:"0"},
3612 "0", "Digit0
", KeyboardEvent.DOM_VK_0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3613 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_0,
3614 modifiers:{shiftKey:1}, chars:")
"},
3615 ")
", "Digit0
", KeyboardEvent.DOM_VK_0, ")
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3616 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_0,
3617 modifiers:{ctrlKey:1}, chars:""},
3618 "0", "Digit0
", KeyboardEvent.DOM_VK_0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3619 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_0,
3620 modifiers:{ctrlKey:1, shiftKey:1}, chars:""},
3621 ")
", "Digit0
", KeyboardEvent.DOM_VK_0, ")
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3622 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_0,
3623 modifiers:{altKey:1}, chars:"0"},
3624 "0", "Digit0
", KeyboardEvent.DOM_VK_0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3625 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_0,
3626 modifiers:{altKey:1, shiftKey:1}, chars:")
"},
3627 ")
", "Digit0
", KeyboardEvent.DOM_VK_0, ")
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3628 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_1,
3629 modifiers:{}, chars:"1"},
3630 "1", "Digit1
", KeyboardEvent.DOM_VK_1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3631 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_1,
3632 modifiers:{shiftKey:1}, chars:"!
"},
3633 "!
", "Digit1
", KeyboardEvent.DOM_VK_1, "!
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3634 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_1,
3635 modifiers:{ctrlKey:1}, chars:""},
3636 "1", "Digit1
", KeyboardEvent.DOM_VK_1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3637 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_1,
3638 modifiers:{ctrlKey:1, shiftKey:1}, chars:""},
3639 "!
", "Digit1
", KeyboardEvent.DOM_VK_1, "!
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3640 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_1,
3641 modifiers:{altKey:1}, chars:"1"},
3642 "1", "Digit1
", KeyboardEvent.DOM_VK_1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3643 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_1,
3644 modifiers:{altKey:1, shiftKey:1}, chars:"!
"},
3645 "!
", "Digit1
", KeyboardEvent.DOM_VK_1, "!
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3646 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_2,
3647 modifiers:{}, chars:"2"},
3648 "2", "Digit2
", KeyboardEvent.DOM_VK_2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3649 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_2,
3650 modifiers:{shiftKey:1}, chars:"@
"},
3651 "@
", "Digit2
", KeyboardEvent.DOM_VK_2, "@
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3652 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_2,
3653 modifiers:{ctrlKey:1}, chars:""},
3654 "2", "Digit2
", KeyboardEvent.DOM_VK_2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3655 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_2,
3656 modifiers:{ctrlKey:1, shiftKey:1}, chars:""},
3657 "@
", "Digit2
", KeyboardEvent.DOM_VK_2, "@
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3658 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_2,
3659 modifiers:{altKey:1}, chars:"2"},
3660 "2", "Digit2
", KeyboardEvent.DOM_VK_2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3661 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_2,
3662 modifiers:{altKey:1, shiftKey:1}, chars:"@
"},
3663 "@
", "Digit2
", KeyboardEvent.DOM_VK_2, "@
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3664 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_3,
3665 modifiers:{}, chars:"3"},
3666 "3", "Digit3
", KeyboardEvent.DOM_VK_3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3667 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_3,
3668 modifiers:{shiftKey:1}, chars:"#
"},
3669 "#
", "Digit3
", KeyboardEvent.DOM_VK_3, "#
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3670 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_3,
3671 modifiers:{ctrlKey:1}, chars:""},
3672 "3", "Digit3
", KeyboardEvent.DOM_VK_3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3673 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_3,
3674 modifiers:{ctrlKey:1, shiftKey:1}, chars:""},
3675 "#
", "Digit3
", KeyboardEvent.DOM_VK_3, "#
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3676 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_3,
3677 modifiers:{altKey:1}, chars:"3"},
3678 "3", "Digit3
", KeyboardEvent.DOM_VK_3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3679 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_3,
3680 modifiers:{altKey:1, shiftKey:1}, chars:"#
"},
3681 "#
", "Digit3
", KeyboardEvent.DOM_VK_3, "#
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3682 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_4,
3683 modifiers:{}, chars:"4"},
3684 "4", "Digit4
", KeyboardEvent.DOM_VK_4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3685 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_4,
3686 modifiers:{shiftKey:1}, chars:"$
"},
3687 "$
", "Digit4
", KeyboardEvent.DOM_VK_4, "$
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3688 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_4,
3689 modifiers:{ctrlKey:1}, chars:""},
3690 "4", "Digit4
", KeyboardEvent.DOM_VK_4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3691 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_4,
3692 modifiers:{ctrlKey:1, shiftKey:1}, chars:""},
3693 "$
", "Digit4
", KeyboardEvent.DOM_VK_4, "$
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3694 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_4,
3695 modifiers:{altKey:1}, chars:"4"},
3696 "4", "Digit4
", KeyboardEvent.DOM_VK_4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3697 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_4,
3698 modifiers:{altKey:1, shiftKey:1}, chars:"$
"},
3699 "$
", "Digit4
", KeyboardEvent.DOM_VK_4, "$
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3700 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_5,
3701 modifiers:{}, chars:"5"},
3702 "5", "Digit5
", KeyboardEvent.DOM_VK_5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3703 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_5,
3704 modifiers:{shiftKey:1}, chars:"%
"},
3705 "%
", "Digit5
", KeyboardEvent.DOM_VK_5, "%
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3706 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_5,
3707 modifiers:{ctrlKey:1}, chars:""},
3708 "5", "Digit5
", KeyboardEvent.DOM_VK_5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3709 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_5,
3710 modifiers:{ctrlKey:1, shiftKey:1}, chars:""},
3711 "%
", "Digit5
", KeyboardEvent.DOM_VK_5, "%
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3712 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_5,
3713 modifiers:{altKey:1}, chars:"5"},
3714 "5", "Digit5
", KeyboardEvent.DOM_VK_5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3715 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_5,
3716 modifiers:{altKey:1, shiftKey:1}, chars:"%
"},
3717 "%
", "Digit5
", KeyboardEvent.DOM_VK_5, "%
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3718 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_6,
3719 modifiers:{}, chars:"6"},
3720 "6", "Digit6
", KeyboardEvent.DOM_VK_6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3721 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_6,
3722 modifiers:{shiftKey:1}, chars:"^
"},
3723 "^
", "Digit6
", KeyboardEvent.DOM_VK_6, "^
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3724 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_6,
3725 modifiers:{ctrlKey:1}, chars:""},
3726 "6", "Digit6
", KeyboardEvent.DOM_VK_6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3727 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_6,
3728 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u001E
"},
3729 "^
", "Digit6
", KeyboardEvent.DOM_VK_6, "^
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3730 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_6,
3731 modifiers:{altKey:1}, chars:"6"},
3732 "6", "Digit6
", KeyboardEvent.DOM_VK_6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3733 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_6,
3734 modifiers:{altKey:1, shiftKey:1}, chars:"^
"},
3735 "^
", "Digit6
", KeyboardEvent.DOM_VK_6, "^
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3736 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_7,
3737 modifiers:{}, chars:"7"},
3738 "7", "Digit7
", KeyboardEvent.DOM_VK_7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3739 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_7,
3740 modifiers:{shiftKey:1}, chars:"&
"},
3741 "&
", "Digit7
", KeyboardEvent.DOM_VK_7, "&
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3742 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_7,
3743 modifiers:{ctrlKey:1}, chars:""},
3744 "7", "Digit7
", KeyboardEvent.DOM_VK_7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3745 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_7,
3746 modifiers:{ctrlKey:1, shiftKey:1}, chars:""},
3747 "&
", "Digit7
", KeyboardEvent.DOM_VK_7, "&
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3748 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_7,
3749 modifiers:{altKey:1}, chars:"7"},
3750 "7", "Digit7
", KeyboardEvent.DOM_VK_7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3751 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_7,
3752 modifiers:{altKey:1, shiftKey:1}, chars:"&
"},
3753 "&
", "Digit7
", KeyboardEvent.DOM_VK_7, "&
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3754 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_8,
3755 modifiers:{}, chars:"8"},
3756 "8", "Digit8
", KeyboardEvent.DOM_VK_8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3757 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_8,
3758 modifiers:{shiftKey:1}, chars:"*
"},
3759 "*
", "Digit8
", KeyboardEvent.DOM_VK_8, "*
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3760 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_8,
3761 modifiers:{ctrlKey:1, }, chars:""},
3762 "8", "Digit8
", KeyboardEvent.DOM_VK_8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3763 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_8,
3764 modifiers:{ctrlKey:1, shiftKey:1}, chars:""},
3765 "*
", "Digit8
", KeyboardEvent.DOM_VK_8, "*
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3766 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_8,
3767 modifiers:{altKey:1}, chars:"8"},
3768 "8", "Digit8
", KeyboardEvent.DOM_VK_8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3769 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_8,
3770 modifiers:{altKey:1, shiftKey:1}, chars:"*
"},
3771 "*
", "Digit8
", KeyboardEvent.DOM_VK_8, "*
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3772 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_9,
3773 modifiers:{}, chars:"9"},
3774 "9", "Digit9
", KeyboardEvent.DOM_VK_9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3775 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_9,
3776 modifiers:{shiftKey:1}, chars:"(
"},
3777 "(
", "Digit9
", KeyboardEvent.DOM_VK_9, "(
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3778 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_9,
3779 modifiers:{ctrlKey:1}, chars:""},
3780 "9", "Digit9
", KeyboardEvent.DOM_VK_9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3781 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_9,
3782 modifiers:{ctrlKey:1, shiftKey:1}, chars:""},
3783 "(
", "Digit9
", KeyboardEvent.DOM_VK_9, "(
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3784 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_9,
3785 modifiers:{altKey:1}, chars:"9"},
3786 "9", "Digit9
", KeyboardEvent.DOM_VK_9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3787 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_9,
3788 modifiers:{altKey:1, shiftKey:1}, chars:"(
"},
3789 "(
", "Digit9
", KeyboardEvent.DOM_VK_9, "(
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3792 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_MINUS,
3793 modifiers:{}, chars:"-
"},
3794 "-
", "Minus
", KeyboardEvent.DOM_VK_HYPHEN_MINUS, "-
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3795 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_MINUS,
3796 modifiers:{shiftKey:1}, chars:"_
"},
3797 "_
", "Minus
", KeyboardEvent.DOM_VK_HYPHEN_MINUS, "_
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3798 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_MINUS,
3799 modifiers:{ctrlKey:1}, chars:""},
3800 "-
", "Minus
", KeyboardEvent.DOM_VK_HYPHEN_MINUS, "-
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3801 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_MINUS,
3802 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u001F
"},
3803 "_
", "Minus
", KeyboardEvent.DOM_VK_HYPHEN_MINUS, "_
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3804 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_MINUS,
3805 modifiers:{altKey:1}, chars:"-
"},
3806 "-
", "Minus
", KeyboardEvent.DOM_VK_HYPHEN_MINUS, "-
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3807 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_MINUS,
3808 modifiers:{altKey:1, shiftKey:1}, chars:"_
"},
3809 "_
", "Minus
", KeyboardEvent.DOM_VK_HYPHEN_MINUS, "_
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3810 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_PLUS,
3811 modifiers:{}, chars:"=
"},
3812 "=
", "Equal
", KeyboardEvent.DOM_VK_EQUALS, "=
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3813 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_PLUS,
3814 modifiers:{shiftKey:1}, chars:"+
"},
3815 "+
", "Equal
", KeyboardEvent.DOM_VK_EQUALS, "+
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3816 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_PLUS,
3817 modifiers:{ctrlKey:1}, chars:""},
3818 "=
", "Equal
", KeyboardEvent.DOM_VK_EQUALS, "=
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3819 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_PLUS,
3820 modifiers:{ctrlKey:1, shiftKey:1}, chars:""},
3821 "+
", "Equal
", KeyboardEvent.DOM_VK_EQUALS, "+
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3822 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_PLUS,
3823 modifiers:{altKey:1}, chars:"=
"},
3824 "=
", "Equal
", KeyboardEvent.DOM_VK_EQUALS, "=
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3825 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_PLUS,
3826 modifiers:{altKey:1, shiftKey:1}, chars:"+
"},
3827 "+
", "Equal
", KeyboardEvent.DOM_VK_EQUALS, "+
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3828 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_4,
3829 modifiers:{}, chars:"[
"},
3830 "[
", "BracketLeft
", KeyboardEvent.DOM_VK_OPEN_BRACKET, "[
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3831 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_4,
3832 modifiers:{shiftKey:1}, chars:"{
"},
3833 "{
", "BracketLeft
", KeyboardEvent.DOM_VK_OPEN_BRACKET, "{
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3834 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_4,
3835 modifiers:{ctrlKey:1}, chars:"\u001B
"},
3836 "[
", "BracketLeft
", KeyboardEvent.DOM_VK_OPEN_BRACKET, "[
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3837 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_4,
3838 modifiers:{ctrlKey:1, shiftKey:1}, chars:""},
3839 "{
", "BracketLeft
", KeyboardEvent.DOM_VK_OPEN_BRACKET, "{
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3840 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_4,
3841 modifiers:{altKey:1}, chars:"[
"},
3842 "[
", "BracketLeft
", KeyboardEvent.DOM_VK_OPEN_BRACKET, "[
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3843 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_4,
3844 modifiers:{altKey:1, shiftKey:1}, chars:"{
"},
3845 "{
", "BracketLeft
", KeyboardEvent.DOM_VK_OPEN_BRACKET, "{
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3846 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_6,
3847 modifiers:{}, chars:"]
"},
3848 "]
", "BracketRight
", KeyboardEvent.DOM_VK_CLOSE_BRACKET, "]
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3849 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_6,
3850 modifiers:{shiftKey:1}, chars:"}
"},
3851 "}
", "BracketRight
", KeyboardEvent.DOM_VK_CLOSE_BRACKET, "}
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3852 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_6,
3853 modifiers:{ctrlKey:1}, chars:"\u001D
"},
3854 "]
", "BracketRight
", KeyboardEvent.DOM_VK_CLOSE_BRACKET, "]
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3855 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_6,
3856 modifiers:{ctrlKey:1, shiftKey:1}, chars:""},
3857 "}
", "BracketRight
", KeyboardEvent.DOM_VK_CLOSE_BRACKET, "}
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3858 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_6,
3859 modifiers:{altKey:1}, chars:"]
"},
3860 "]
", "BracketRight
", KeyboardEvent.DOM_VK_CLOSE_BRACKET, "]
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3861 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_6,
3862 modifiers:{altKey:1, shiftKey:1}, chars:"}
"},
3863 "}
", "BracketRight
", KeyboardEvent.DOM_VK_CLOSE_BRACKET, "}
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3864 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_1,
3865 modifiers:{}, chars:";
"},
3866 ";
", "Semicolon
", KeyboardEvent.DOM_VK_SEMICOLON, ";
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3867 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_1,
3868 modifiers:{shiftKey:1}, chars:":
"},
3869 ":
", "Semicolon
", KeyboardEvent.DOM_VK_SEMICOLON, ":
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3870 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_1,
3871 modifiers:{ctrlKey:1}, chars:""},
3872 ";
", "Semicolon
", KeyboardEvent.DOM_VK_SEMICOLON, ";
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3873 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_1,
3874 modifiers:{ctrlKey:1, shiftKey:1}, chars:""},
3875 ":
", "Semicolon
", KeyboardEvent.DOM_VK_SEMICOLON, ":
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3876 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_1,
3877 modifiers:{altKey:1}, chars:";
"},
3878 ";
", "Semicolon
", KeyboardEvent.DOM_VK_SEMICOLON, ";
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3879 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_1,
3880 modifiers:{altKey:1, shiftKey:1}, chars:":
"},
3881 ":
", "Semicolon
", KeyboardEvent.DOM_VK_SEMICOLON, ":
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3882 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_7,
3883 modifiers:{}, chars:"'
"},
3884 "'
", "Quote
", KeyboardEvent.DOM_VK_QUOTE, "'
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3885 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_7,
3886 modifiers:{shiftKey:1}, chars:"\
""},
3887 "\"", "Quote
", KeyboardEvent.DOM_VK_QUOTE, "\
"", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3888 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_7,
3889 modifiers:{ctrlKey:
1}, chars:
""},
3890 "'",
"Quote", KeyboardEvent.DOM_VK_QUOTE,
"'", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3891 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_7,
3892 modifiers:{ctrlKey:
1, shiftKey:
1}, chars:
""},
3893 "\"", "Quote
", KeyboardEvent.DOM_VK_QUOTE, "\
"", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3894 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_7,
3895 modifiers:{altKey:
1}, chars:
"'"},
3896 "'",
"Quote", KeyboardEvent.DOM_VK_QUOTE,
"'", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3897 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_7,
3898 modifiers:{altKey:
1, shiftKey:
1}, chars:
"\""},
3899 "\
"",
"Quote", KeyboardEvent.DOM_VK_QUOTE,
"\"", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3900 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_5,
3901 modifiers:{}, chars:"\\
"},
3902 "\\
", "Backslash
", KeyboardEvent.DOM_VK_BACK_SLASH, "\\
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3903 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_5,
3904 modifiers:{shiftKey:1}, chars:"|
"},
3905 "|
", "Backslash
", KeyboardEvent.DOM_VK_BACK_SLASH, "|
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3906 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_5,
3907 modifiers:{ctrlKey:1}, chars:"\u001C
"},
3908 "\\
", "Backslash
", KeyboardEvent.DOM_VK_BACK_SLASH, "\\
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3909 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_5,
3910 modifiers:{ctrlKey:1, shiftKey:1}, chars:""},
3911 "|
", "Backslash
", KeyboardEvent.DOM_VK_BACK_SLASH, "|
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3912 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_5,
3913 modifiers:{altKey:1}, chars:"\\
"},
3914 "\\
", "Backslash
", KeyboardEvent.DOM_VK_BACK_SLASH, "\\
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3915 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_5,
3916 modifiers:{altKey:1, shiftKey:1}, chars:"|
"},
3917 "|
", "Backslash
", KeyboardEvent.DOM_VK_BACK_SLASH, "|
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3918 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_COMMA,
3919 modifiers:{}, chars:",
"},
3920 ",
", "Comma
", KeyboardEvent.DOM_VK_COMMA, ",
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3921 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_COMMA,
3922 modifiers:{shiftKey:1}, chars:"<
"},
3923 "<
", "Comma
", KeyboardEvent.DOM_VK_COMMA, "<
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3924 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_COMMA,
3925 modifiers:{ctrlKey:1}, chars:""},
3926 ",
", "Comma
", KeyboardEvent.DOM_VK_COMMA, ",
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3927 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_COMMA,
3928 modifiers:{ctrlKey:1, shiftKey:1}, chars:""},
3929 "<
", "Comma
", KeyboardEvent.DOM_VK_COMMA, "<
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3930 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_COMMA,
3931 modifiers:{altKey:1}, chars:",
"},
3932 ",
", "Comma
", KeyboardEvent.DOM_VK_COMMA, ",
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3933 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_COMMA,
3934 modifiers:{altKey:1, shiftKey:1}, chars:"<
"},
3935 "<
", "Comma
", KeyboardEvent.DOM_VK_COMMA, "<
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3936 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_PERIOD,
3937 modifiers:{}, chars:".
"},
3938 ".
", "Period
", KeyboardEvent.DOM_VK_PERIOD, ".
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3939 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_PERIOD,
3940 modifiers:{shiftKey:1}, chars:">"},
3941 ">", "Period
", KeyboardEvent.DOM_VK_PERIOD, ">", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3942 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_PERIOD,
3943 modifiers:{ctrlKey:1}, chars:""},
3944 ".
", "Period
", KeyboardEvent.DOM_VK_PERIOD, ".
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3945 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_PERIOD,
3946 modifiers:{ctrlKey:1, shiftKey:1}, chars:""},
3947 ">", "Period
", KeyboardEvent.DOM_VK_PERIOD, ">", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3948 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_PERIOD,
3949 modifiers:{altKey:1}, chars:".
"},
3950 ".
", "Period
", KeyboardEvent.DOM_VK_PERIOD, ".
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3951 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_PERIOD,
3952 modifiers:{altKey:1, shiftKey:1}, chars:">"},
3953 ">", "Period
", KeyboardEvent.DOM_VK_PERIOD, ">", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3954 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_2,
3955 modifiers:{}, chars:"/
"},
3956 "/
", "Slash
", KeyboardEvent.DOM_VK_SLASH, "/
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3957 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_2,
3958 modifiers:{shiftKey:1}, chars:"?
"},
3959 "?
", "Slash
", KeyboardEvent.DOM_VK_SLASH, "?
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3960 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_2,
3961 modifiers:{ctrlKey:1}, chars:""},
3962 "/
", "Slash
", KeyboardEvent.DOM_VK_SLASH, "/
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3963 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_2,
3964 modifiers:{ctrlKey:1, shiftKey:1}, chars:""},
3965 "?
", "Slash
", KeyboardEvent.DOM_VK_SLASH, "?
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3966 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_2,
3967 modifiers:{altKey:1}, chars:"/
"},
3968 "/
", "Slash
", KeyboardEvent.DOM_VK_SLASH, "/
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3969 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_2,
3970 modifiers:{altKey:1, shiftKey:1}, chars:"?
"},
3971 "?
", "Slash
", KeyboardEvent.DOM_VK_SLASH, "?
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3972 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_3,
3973 modifiers:{}, chars:"`
"},
3974 "`
", "Backquote
", KeyboardEvent.DOM_VK_BACK_QUOTE, "`
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3975 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_3,
3976 modifiers:{shiftKey:1}, chars:"~
"},
3977 "~
", "Backquote
", KeyboardEvent.DOM_VK_BACK_QUOTE, "~
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3978 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_3,
3979 modifiers:{ctrlKey:1}, chars:""},
3980 "`
", "Backquote
", KeyboardEvent.DOM_VK_BACK_QUOTE, "`
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3981 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_3,
3982 modifiers:{ctrlKey:1, shiftKey:1}, chars:""},
3983 "~
", "Backquote
", KeyboardEvent.DOM_VK_BACK_QUOTE, "~
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3984 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_3,
3985 modifiers:{altKey:1}, chars:"`
"},
3986 "`
", "Backquote
", KeyboardEvent.DOM_VK_BACK_QUOTE, "`
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3987 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_3,
3988 modifiers:{altKey:1, shiftKey:1}, chars:"~
"},
3989 "~
", "Backquote
", KeyboardEvent.DOM_VK_BACK_QUOTE, "~
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
3992 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD0,
3993 modifiers:{numLockKey:1}, chars:"0"},
3994 "0", "Numpad0
", KeyboardEvent.DOM_VK_NUMPAD0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
3995 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD1,
3996 modifiers:{numLockKey:1}, chars:"1"},
3997 "1", "Numpad1
", KeyboardEvent.DOM_VK_NUMPAD1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
3998 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD2,
3999 modifiers:{numLockKey:1}, chars:"2"},
4000 "2", "Numpad2
", KeyboardEvent.DOM_VK_NUMPAD2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4001 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD3,
4002 modifiers:{numLockKey:1}, chars:"3"},
4003 "3", "Numpad3
", KeyboardEvent.DOM_VK_NUMPAD3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4004 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD4,
4005 modifiers:{numLockKey:1}, chars:"4"},
4006 "4", "Numpad4
", KeyboardEvent.DOM_VK_NUMPAD4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4007 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD5,
4008 modifiers:{numLockKey:1}, chars:"5"},
4009 "5", "Numpad5
", KeyboardEvent.DOM_VK_NUMPAD5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4010 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD6,
4011 modifiers:{numLockKey:1}, chars:"6"},
4012 "6", "Numpad6
", KeyboardEvent.DOM_VK_NUMPAD6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4013 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD7,
4014 modifiers:{numLockKey:1}, chars:"7"},
4015 "7", "Numpad7
", KeyboardEvent.DOM_VK_NUMPAD7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4016 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD8,
4017 modifiers:{numLockKey:1}, chars:"8"},
4018 "8", "Numpad8
", KeyboardEvent.DOM_VK_NUMPAD8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4019 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD9,
4020 modifiers:{numLockKey:1}, chars:"9"},
4021 "9", "Numpad9
", KeyboardEvent.DOM_VK_NUMPAD9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4023 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_MULTIPLY,
4024 modifiers:{numLockKey:1}, chars:"*
"},
4025 "*
", "NumpadMultiply
", KeyboardEvent.DOM_VK_MULTIPLY, "*
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4026 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_MULTIPLY,
4027 modifiers:{numLockKey:1, shiftKey:1}, chars:"*
"},
4028 "*
", "NumpadMultiply
", KeyboardEvent.DOM_VK_MULTIPLY, "*
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4029 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_ADD,
4030 modifiers:{numLockKey:1}, chars:"+
"},
4031 "+
", "NumpadAdd
", KeyboardEvent.DOM_VK_ADD, "+
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4032 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_ADD,
4033 modifiers:{numLockKey:1, shiftKey:1}, chars:"+
"},
4034 "+
", "NumpadAdd
", KeyboardEvent.DOM_VK_ADD, "+
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4035 // VK_SEPARATOR is keycode for NEC's PC-98 series whose keyboard layout was
4036 // different from current PC's keyboard layout and it cannot connect to
4037 // current PC. Note that even if we synthesize WM_KEYDOWN with
4038 // VK_SEPARATOR, it doesn't work on Win7.
4039 //yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_SEPARATOR,
4040 // modifiers:{numLockKey:1}, chars:""},
4041 // "", "", KeyboardEvent.DOM_VK_SEPARATOR, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4042 //yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_SEPARATOR,
4043 // modifiers:{numLockKey:1, shiftKey:1}, chars:""},
4044 // "", "", KeyboardEvent.DOM_VK_SEPARATOR, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4045 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_SUBTRACT,
4046 modifiers:{numLockKey:1}, chars:"-
"},
4047 "-
", "NumpadSubtract
", KeyboardEvent.DOM_VK_SUBTRACT, "-
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4048 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_SUBTRACT,
4049 modifiers:{numLockKey:1, shiftKey:1}, chars:"-
"},
4050 "-
", "NumpadSubtract
", KeyboardEvent.DOM_VK_SUBTRACT, "-
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4051 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_DECIMAL,
4052 modifiers:{numLockKey:1}, chars:".
"},
4053 ".
", "NumpadDecimal
", KeyboardEvent.DOM_VK_DECIMAL, ".
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4054 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_DECIMAL,
4055 modifiers:{numLockKey:1, shiftKey:1}, chars:".
"},
4056 ".
", "NumpadDecimal
", KeyboardEvent.DOM_VK_DECIMAL, ".
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4057 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_DIVIDE,
4058 modifiers:{numLockKey:1}, chars:"/
"},
4059 "/
", "NumpadDivide
", KeyboardEvent.DOM_VK_DIVIDE, "/
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4060 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_DIVIDE,
4061 modifiers:{numLockKey:1, shiftKey:1}, chars:"/
"},
4062 "/
", "NumpadDivide
", KeyboardEvent.DOM_VK_DIVIDE, "/
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4063 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD_RETURN,
4064 modifiers:{numLockKey:1}, chars:"\r
"},
4065 "Enter
", "NumpadEnter
", KeyboardEvent.DOM_VK_RETURN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4066 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD_RETURN,
4067 modifiers:{numLockKey:1, shiftKey:1}, chars:"\r
"},
4068 "Enter
", "NumpadEnter
", KeyboardEvent.DOM_VK_RETURN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4070 // Numpad without NumLock
4071 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD_PRIOR,
4072 modifiers:{}, chars:""},
4073 "PageUp
", "Numpad9
", KeyboardEvent.DOM_VK_PAGE_UP, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4074 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD_NEXT,
4075 modifiers:{}, chars:""},
4076 "PageDown
", "Numpad3
", KeyboardEvent.DOM_VK_PAGE_DOWN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4077 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD_END,
4078 modifiers:{}, chars:""},
4079 "End
", "Numpad1
", KeyboardEvent.DOM_VK_END, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4080 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD_HOME,
4081 modifiers:{}, chars:""},
4082 "Home
", "Numpad7
", KeyboardEvent.DOM_VK_HOME, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4083 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD_LEFT,
4084 modifiers:{}, chars:""},
4085 "ArrowLeft
", "Numpad4
", KeyboardEvent.DOM_VK_LEFT, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4086 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD_UP,
4087 modifiers:{}, chars:""},
4088 "ArrowUp
", "Numpad8
", KeyboardEvent.DOM_VK_UP, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4089 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD_RIGHT,
4090 modifiers:{}, chars:""},
4091 "ArrowRight
", "Numpad6
", KeyboardEvent.DOM_VK_RIGHT, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4092 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD_DOWN,
4093 modifiers:{}, chars:""},
4094 "ArrowDown
", "Numpad2
", KeyboardEvent.DOM_VK_DOWN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4095 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD_INSERT,
4096 modifiers:{}, chars:""},
4097 "Insert
", "Numpad0
", KeyboardEvent.DOM_VK_INSERT, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4098 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD_DELETE,
4099 modifiers:{}, chars:""},
4100 "Delete
", "NumpadDecimal
", KeyboardEvent.DOM_VK_DELETE, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4101 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_CLEAR,
4102 modifiers:{}, chars:""},
4103 "Clear
", "Numpad5
", KeyboardEvent.DOM_VK_CLEAR, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4105 // Even if widget receives unknown keycode, it should dispatch key events
4106 // whose keycode is 0 rather than native keycode.
4107 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:0x3A,
4108 modifiers:{numLockKey:1}, chars:""},
4109 "Unidentified
", "", 0, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4113 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_0,
4114 modifiers:{}, chars:"\u00E0
"},
4115 "\u00E0
", "Digit0
", KeyboardEvent.DOM_VK_0, "\u00E0
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4116 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_0,
4117 modifiers:{shiftKey:1}, chars:"0"},
4118 "0", "Digit0
", KeyboardEvent.DOM_VK_0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4119 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_1,
4120 modifiers:{}, chars:"&
"},
4121 "&
", "Digit1
", KeyboardEvent.DOM_VK_1, "&
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4122 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_1,
4123 modifiers:{shiftKey:1}, chars:"1"},
4124 "1", "Digit1
", KeyboardEvent.DOM_VK_1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4125 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_2,
4126 modifiers:{}, chars:"\u00E9
"},
4127 "\u00E9
", "Digit2
", KeyboardEvent.DOM_VK_2, "\u00E9
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4128 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_2,
4129 modifiers:{shiftKey:1}, chars:"2"},
4130 "2", "Digit2
", KeyboardEvent.DOM_VK_2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4131 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_3,
4132 modifiers:{}, chars:"\
""},
4133 "\"", "Digit3
", KeyboardEvent.DOM_VK_3, "\
"", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4134 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_3,
4135 modifiers:{shiftKey:
1}, chars:
"3"},
4136 "3",
"Digit3", KeyboardEvent.DOM_VK_3,
"3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4137 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_4,
4138 modifiers:{}, chars:
"'"},
4139 "'",
"Digit4", KeyboardEvent.DOM_VK_4,
"'", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4140 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_4,
4141 modifiers:{shiftKey:
1}, chars:
"4"},
4142 "4",
"Digit4", KeyboardEvent.DOM_VK_4,
"4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4143 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_5,
4144 modifiers:{}, chars:
"("},
4145 "(",
"Digit5", KeyboardEvent.DOM_VK_5,
"(", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4146 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_5,
4147 modifiers:{shiftKey:
1}, chars:
"5"},
4148 "5",
"Digit5", KeyboardEvent.DOM_VK_5,
"5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4149 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_6,
4150 modifiers:{}, chars:
"-"},
4151 "-",
"Digit6", KeyboardEvent.DOM_VK_6,
"-", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4152 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_6,
4153 modifiers:{shiftKey:
1}, chars:
"6"},
4154 "6",
"Digit6", KeyboardEvent.DOM_VK_6,
"6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4155 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_7,
4156 modifiers:{}, chars:
"\u00E8"},
4157 "\u00E8",
"Digit7", KeyboardEvent.DOM_VK_7,
"\u00E8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4158 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_7,
4159 modifiers:{shiftKey:
1}, chars:
"7"},
4160 "7",
"Digit7", KeyboardEvent.DOM_VK_7,
"7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4161 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_8,
4162 modifiers:{}, chars:
"_"},
4163 "_",
"Digit8", KeyboardEvent.DOM_VK_8,
"_", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4164 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_8,
4165 modifiers:{shiftKey:
1}, chars:
"8"},
4166 "8",
"Digit8", KeyboardEvent.DOM_VK_8,
"8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4167 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_9,
4168 modifiers:{}, chars:
"\u00E7"},
4169 "\u00E7",
"Digit9", KeyboardEvent.DOM_VK_9,
"\u00E7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4170 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_9,
4171 modifiers:{shiftKey:
1}, chars:
"9"},
4172 "9",
"Digit9", KeyboardEvent.DOM_VK_9,
"9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4174 // Numeric with ShiftLock
4175 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_0,
4176 modifiers:{capsLockKey:
1}, chars:
"0"},
4177 "0",
"Digit0", KeyboardEvent.DOM_VK_0,
"0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4178 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_0,
4179 modifiers:{capsLockKey:
1, shiftKey:
1}, chars:
"\u00E0"},
4180 "\u00E0",
"Digit0", KeyboardEvent.DOM_VK_0,
"\u00E0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4181 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_1,
4182 modifiers:{capsLockKey:
1}, chars:
"1"},
4183 "1",
"Digit1", KeyboardEvent.DOM_VK_1,
"1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4184 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_1,
4185 modifiers:{capsLockKey:
1, shiftKey:
1}, chars:
"&"},
4186 "&",
"Digit1", KeyboardEvent.DOM_VK_1,
"&", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4187 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_2,
4188 modifiers:{capsLockKey:
1}, chars:
"2"},
4189 "2",
"Digit2", KeyboardEvent.DOM_VK_2,
"2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4190 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_2,
4191 modifiers:{capsLockKey:
1, shiftKey:
1}, chars:
"\u00E9"},
4192 "\u00E9",
"Digit2", KeyboardEvent.DOM_VK_2,
"\u00E9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4193 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_3,
4194 modifiers:{capsLockKey:
1}, chars:
"3"},
4195 "3",
"Digit3", KeyboardEvent.DOM_VK_3,
"3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4196 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_3,
4197 modifiers:{capsLockKey:
1, shiftKey:
1}, chars:
"\""},
4198 "\
"",
"Digit3", KeyboardEvent.DOM_VK_3,
"\"", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4199 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_4,
4200 modifiers:{capsLockKey:1}, chars:"4"},
4201 "4", "Digit4
", KeyboardEvent.DOM_VK_4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4202 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_4,
4203 modifiers:{capsLockKey:1, shiftKey:1}, chars:"'
"},
4204 "'
", "Digit4
", KeyboardEvent.DOM_VK_4, "'
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4205 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_5,
4206 modifiers:{capsLockKey:1}, chars:"5"},
4207 "5", "Digit5
", KeyboardEvent.DOM_VK_5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4208 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_5,
4209 modifiers:{capsLockKey:1, shiftKey:1}, chars:"(
"},
4210 "(
", "Digit5
", KeyboardEvent.DOM_VK_5, "(
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4211 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_6,
4212 modifiers:{capsLockKey:1}, chars:"6"},
4213 "6", "Digit6
", KeyboardEvent.DOM_VK_6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4214 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_6,
4215 modifiers:{capsLockKey:1, shiftKey:1}, chars:"-
"},
4216 "-
", "Digit6
", KeyboardEvent.DOM_VK_6, "-
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4217 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_7,
4218 modifiers:{capsLockKey:1}, chars:"7"},
4219 "7", "Digit7
", KeyboardEvent.DOM_VK_7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4220 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_7,
4221 modifiers:{capsLockKey:1, shiftKey:1}, chars:"\u00E8
"},
4222 "\u00E8
", "Digit7
", KeyboardEvent.DOM_VK_7, "\u00E8
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4223 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_8,
4224 modifiers:{capsLockKey:1}, chars:"8"},
4225 "8", "Digit8
", KeyboardEvent.DOM_VK_8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4226 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_8,
4227 modifiers:{capsLockKey:1, shiftKey:1}, chars:"_
"},
4228 "_
", "Digit8
", KeyboardEvent.DOM_VK_8, "_
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4229 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_9,
4230 modifiers:{capsLockKey:1}, chars:"9"},
4231 "9", "Digit9
", KeyboardEvent.DOM_VK_9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4232 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_9,
4233 modifiers:{capsLockKey:1, shiftKey:1}, chars:"\u00E7
"},
4234 "\u00E7
", "Digit9
", KeyboardEvent.DOM_VK_9, "\u00E7
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4237 // If the key doesn't cause ASCII character even with or without Shift key, keyCode value should be same as
4238 // the key which causes the virtual keycode on ANSI keyboard layout.
4239 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_7,
4240 modifiers:{}, chars:"\u00B2
"},
4241 "\u00B2
", "Backquote
", KeyboardEvent.DOM_VK_QUOTE, "\u00B2
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4242 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_7,
4243 modifiers:{shiftKey:1}, chars:""},
4244 "", "Backquote
", KeyboardEvent.DOM_VK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4245 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_4,
4246 modifiers:{}, chars:")
"},
4247 ")
", "Minus
", KeyboardEvent.DOM_VK_CLOSE_PAREN, ")
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4248 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_4,
4249 modifiers:{shiftKey:1}, chars:"\u00B0
"},
4250 "\u00B0
", "Minus
", KeyboardEvent.DOM_VK_CLOSE_PAREN, "\u00B0
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4251 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_PLUS,
4252 modifiers:{}, chars:"=
"},
4253 "=
", "Equal
", KeyboardEvent.DOM_VK_EQUALS, "=
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4254 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_PLUS,
4255 modifiers:{shiftKey:1}, chars:"+
"},
4256 "+
", "Equal
", KeyboardEvent.DOM_VK_EQUALS, "+
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4257 //yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_6,
4258 // modifiers:{}, chars:""},
4259 // "Dead
", "BracketLeft
", KeyboardEvent.DOM_VK_CIRCUMFLEX, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); // Dead-key
4260 //yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_6,
4261 // modifiers:{shiftKey:1}, chars:""},
4262 // ["^^
", "^
", "^
", "^
"], "BracketLeft
", KeyboardEvent.DOM_VK_CIRCUMFLEX, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); // Dead-key
4263 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_1,
4264 modifiers:{}, chars:"$
"},
4265 "$
", "BracketRight
", KeyboardEvent.DOM_VK_DOLLAR, "$
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4266 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_1,
4267 modifiers:{shiftKey:1}, chars:"\u00A3
"},
4268 "\u00A3
", "BracketRight
", KeyboardEvent.DOM_VK_DOLLAR, "\u00A3
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4269 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_3,
4270 modifiers:{}, chars:"\u00F9
"},
4271 "\u00F9
", "Quote
", KeyboardEvent.DOM_VK_PERCENT, "\u00F9
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4272 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_3,
4273 modifiers:{shiftKey:1}, chars:"%
"},
4274 "%
", "Quote
", KeyboardEvent.DOM_VK_PERCENT, "%
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4275 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_5,
4276 modifiers:{}, chars:"*
"},
4277 "*
", "Backslash
", KeyboardEvent.DOM_VK_ASTERISK, "*
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4278 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_5,
4279 modifiers:{shiftKey:1}, chars:"\u00B5
"},
4280 "\u00B5
", "Backslash
", KeyboardEvent.DOM_VK_ASTERISK, "\u00B5
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4281 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_102,
4282 modifiers:{}, chars:"<
"},
4283 "<
", "IntlBackslash
", KeyboardEvent.DOM_VK_LESS_THAN, "<
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4284 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_102,
4285 modifiers:{shiftKey:1}, chars:">"},
4286 ">", "IntlBackslash
", KeyboardEvent.DOM_VK_LESS_THAN, ">", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4287 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_COMMA,
4288 modifiers:{}, chars:",
"},
4289 ",
", "KeyM
", KeyboardEvent.DOM_VK_COMMA, ",
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4290 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_COMMA,
4291 modifiers:{shiftKey:1}, chars:"?
"},
4292 "?
", "KeyM
", KeyboardEvent.DOM_VK_COMMA, "?
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4293 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_PERIOD,
4294 modifiers:{}, chars:";
"},
4295 ";
", "Comma
", KeyboardEvent.DOM_VK_SEMICOLON, ";
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4296 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_PERIOD,
4297 modifiers:{shiftKey:1}, chars:".
"},
4298 ".
", "Comma
", KeyboardEvent.DOM_VK_SEMICOLON, ".
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4299 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_2,
4300 modifiers:{}, chars:":
"},
4301 ":
", "Period
", KeyboardEvent.DOM_VK_COLON, ":
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4302 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_2,
4303 modifiers:{shiftKey:1}, chars:"/
"},
4304 "/
", "Period
", KeyboardEvent.DOM_VK_COLON, "/
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4305 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_8,
4306 modifiers:{}, chars:"!
"},
4307 "!
", "Slash
", KeyboardEvent.DOM_VK_EXCLAMATION, "!
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4308 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_8,
4309 modifiers:{shiftKey:1}, chars:"\u00A7
"},
4310 "\u00A7
", "Slash
", KeyboardEvent.DOM_VK_EXCLAMATION, "\u00A7
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4312 // OEM keys with ShiftLock
4313 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_7,
4314 modifiers:{capsLockKey:1}, chars:"\u00B2
"},
4315 "\u00B2
", "Backquote
", KeyboardEvent.DOM_VK_QUOTE, "\u00B2
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4316 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_7,
4317 modifiers:{capsLockKey:1, shiftKey:1}, chars:""},
4318 "", "Backquote
", KeyboardEvent.DOM_VK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4319 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_4,
4320 modifiers:{capsLockKey:1}, chars:"\u00B0
"},
4321 "\u00B0
", "Minus
", KeyboardEvent.DOM_VK_CLOSE_PAREN, "\u00B0
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4322 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_4,
4323 modifiers:{capsLockKey:1, shiftKey:1}, chars:")
"},
4324 ")
", "Minus
", KeyboardEvent.DOM_VK_CLOSE_PAREN, ")
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4325 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_PLUS,
4326 modifiers:{capsLockKey:1}, chars:"+
"},
4327 "+
", "Equal
", KeyboardEvent.DOM_VK_EQUALS, "+
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4328 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_PLUS,
4329 modifiers:{capsLockKey:1, shiftKey:1}, chars:"=
"},
4330 "=
", "Equal
", KeyboardEvent.DOM_VK_EQUALS, "=
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4331 //yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_6,
4332 // modifiers:{capsLockKey:1}, chars:""},
4333 // "Dead
", "BracketLeft
", KeyboardLayout.DOM_VK_CLOSE_BRACKET, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); // Dead-key
4334 //yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_6,
4335 // modifiers:{capsLockKey:1, shiftKey:1}, chars:""},
4336 // ["\u00A8\u00A8
", "\u00A8
", "\u00A8
", "\u00A8
"], "BracketLeft
", KeyboardLayout.DOM_VK_CLOSE_BRACKET, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); // Dead-key
4337 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_1,
4338 modifiers:{capsLockKey:1}, chars:"\u00A3
"},
4339 "\u00A3
", "BracketRight
", KeyboardEvent.DOM_VK_DOLLAR, "\u00A3
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4340 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_1,
4341 modifiers:{capsLockKey:1, shiftKey:1}, chars:"$
"},
4342 "$
", "BracketRight
", KeyboardEvent.DOM_VK_DOLLAR, "$
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4343 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_3,
4344 modifiers:{capsLockKey:1}, chars:"%
"},
4345 "%
", "Quote
", KeyboardEvent.DOM_VK_PERCENT, "%
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4346 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_3,
4347 modifiers:{capsLockKey:1, shiftKey:1}, chars:"\u00F9
"},
4348 "\u00F9
", "Quote
", KeyboardEvent.DOM_VK_PERCENT, "\u00F9
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4349 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_5,
4350 modifiers:{capsLockKey:1}, chars:"\u00B5
"},
4351 "\u00B5
", "Backslash
", KeyboardEvent.DOM_VK_ASTERISK, "\u00B5
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4352 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_5,
4353 modifiers:{capsLockKey:1, shiftKey:1}, chars:"*
"},
4354 "*
", "Backslash
", KeyboardEvent.DOM_VK_ASTERISK, "*
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4355 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_102,
4356 modifiers:{capsLockKey:1}, chars:"<
"},
4357 "<
", "IntlBackslash
", KeyboardEvent.DOM_VK_LESS_THAN, "<
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4358 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_102,
4359 modifiers:{capsLockKey:1, shiftKey:1}, chars:">"},
4360 ">", "IntlBackslash
", KeyboardEvent.DOM_VK_LESS_THAN, ">", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4361 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_COMMA,
4362 modifiers:{capsLockKey:1}, chars:"?
"},
4363 "?
", "KeyM
", KeyboardEvent.DOM_VK_COMMA, "?
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4364 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_COMMA,
4365 modifiers:{capsLockKey:1, shiftKey:1}, chars:",
"},
4366 ",
", "KeyM
", KeyboardEvent.DOM_VK_COMMA, ",
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4367 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_PERIOD,
4368 modifiers:{capsLockKey:1}, chars:".
"},
4369 ".
", "Comma
", KeyboardEvent.DOM_VK_SEMICOLON, ".
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4370 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_PERIOD,
4371 modifiers:{capsLockKey:1, shiftKey:1}, chars:";
"},
4372 ";
", "Comma
", KeyboardEvent.DOM_VK_SEMICOLON, ";
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4373 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_2,
4374 modifiers:{capsLockKey:1}, chars:"/
"},
4375 "/
", "Period
", KeyboardEvent.DOM_VK_COLON, "/
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4376 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_2,
4377 modifiers:{capsLockKey:1, shiftKey:1}, chars:":
"},
4378 ":
", "Period
", KeyboardEvent.DOM_VK_COLON, ":
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4379 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_8,
4380 modifiers:{capsLockKey:1}, chars:"\u00A7
"},
4381 "\u00A7
", "Slash
", KeyboardEvent.DOM_VK_EXCLAMATION, "\u00A7
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4382 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_8,
4383 modifiers:{capsLockKey:1, shiftKey:1}, chars:"!
"},
4384 "!
", "Slash
", KeyboardEvent.DOM_VK_EXCLAMATION, "!
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4387 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_0,
4388 modifiers:{altGrKey:1}, chars:"@
"},
4389 "@
", "Digit0
", KeyboardEvent.DOM_VK_0, "@
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4390 // AltGr + Digit1 does not cause text input in French layout. In this case,
4391 // AltGr shouldn't be used for a modifier of shortcut. Therefore, not
4392 // receiving `keypress` event even in the system group is fine.
4393 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_1,
4394 modifiers:{altGrKey:1}, chars:""},
4395 "&
", "Digit1
", KeyboardEvent.DOM_VK_1, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4396 //yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_2,
4397 // modifiers:{altGrKey:1}, chars:""},
4398 // "Dead
", "Digit2
", KeyboardEvent.DOM_VK_2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); // Dead-key
4399 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_3,
4400 modifiers:{altGrKey:1}, chars:"#
"},
4401 "#
", "Digit3
", KeyboardEvent.DOM_VK_3, "#
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4402 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_4,
4403 modifiers:{altGrKey:1}, chars:"{
"},
4404 "{
", "Digit4
", KeyboardEvent.DOM_VK_4, "{
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4405 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_5,
4406 modifiers:{altGrKey:1}, chars:"[
"},
4407 "[
", "Digit5
", KeyboardEvent.DOM_VK_5, "[
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4408 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_6,
4409 modifiers:{altGrKey:1}, chars:"|
"},
4410 "|
", "Digit6
", KeyboardEvent.DOM_VK_6, "|
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4411 //yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_7,
4412 // modifiers:{altGrKey:1}, chars:""},
4413 // "Dead
", "Digit7
", KeyboardEvent.DOM_VK_7, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); // Dead-key
4414 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_8,
4415 modifiers:{altGrKey:1}, chars:"\\
"},
4416 "\\
", "Digit8
", KeyboardEvent.DOM_VK_8, "\\
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4417 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_9,
4418 modifiers:{altGrKey:1}, chars:"^
"},
4419 "^
", "Digit9
", KeyboardEvent.DOM_VK_9, "^
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4420 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_4,
4421 modifiers:{altGrKey:1}, chars:"]
"},
4422 "]
", "Minus
", KeyboardEvent.DOM_VK_CLOSE_PAREN, "]
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4423 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_PLUS,
4424 modifiers:{altGrKey:1}, chars:"}
"},
4425 "}
", "Equal
", KeyboardEvent.DOM_VK_EQUALS, "}
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4427 // AltGr emulated with Ctrl and Alt
4428 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_0,
4429 modifiers:{ctrlKey:1, altKey:1}, chars:"@
", isInputtingCharacters:true},
4430 "@
", "Digit0
", KeyboardEvent.DOM_VK_0, "@
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4431 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_0,
4432 modifiers:{ctrlKey:1, altKey:1, shiftKey:1}, chars:"", isInputtingCharacters:false},
4433 "0", "Digit0
", KeyboardEvent.DOM_VK_0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4434 // Different from AltGr + Digit1 case, Ctrl + Alt + Digit1 should be
4435 // available as a shortcut key. Therefore, `keypress` event needs to be
4437 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_1,
4438 modifiers:{ctrlKey:1, altKey:1}, chars:"", isInputtingCharacters:false},
4439 "&
", "Digit1
", KeyboardEvent.DOM_VK_1, "&
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4440 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_1,
4441 modifiers:{ctrlKey:1, altKey:1, shiftKey:1}, chars:"", isInputtingCharacters:false},
4442 "1", "Digit1
", KeyboardEvent.DOM_VK_1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4445 yield testKey({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:WIN_VK_OEM_2,
4446 modifiers:{}, chars:"#
"},
4447 "#
", "Backslash
", KeyboardEvent.DOM_VK_HASH, "#
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4448 yield testKey({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:WIN_VK_OEM_2,
4449 modifiers:{shiftKey:1}, chars:"'
"},
4450 "'
", "Backslash
", KeyboardEvent.DOM_VK_HASH, "'
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4453 if (OS_VERSION >= WIN7) {
4454 yield testKey({layout:KEYBOARD_LAYOUT_KHMER, keyCode:WIN_VK_2,
4455 modifiers:{}, chars:"\u17E2
"},
4456 "\u17E2
", "Digit2
", KeyboardEvent.DOM_VK_2, "\u17E2
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4457 yield testKey({layout:KEYBOARD_LAYOUT_KHMER, keyCode:WIN_VK_2,
4458 modifiers:{shiftKey:1}, chars:"\u17D7
"},
4459 "\u17D7
", "Digit2
", KeyboardEvent.DOM_VK_2, "\u17D7
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4460 yield testKey({layout:KEYBOARD_LAYOUT_KHMER, keyCode:WIN_VK_2, // Ctrl+2 should cause inputting Euro sign.
4461 modifiers:{ctrlKey:1}, chars:"\u20AC
", isInputtingCharacters:true},
4462 "\u20AC
", "Digit2
", KeyboardEvent.DOM_VK_2, "\u20AC
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4463 yield testKey({layout:KEYBOARD_LAYOUT_KHMER, keyCode:WIN_VK_2, // Ctrl+Shift+2 shouldn't cause any input.
4464 modifiers:{ctrlKey:1, shiftKey:1}, chars:""},
4465 "\u17D7
", "Digit2
", KeyboardEvent.DOM_VK_2, "\u17D7
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4466 yield testKey({layout:KEYBOARD_LAYOUT_KHMER, keyCode:WIN_VK_2,
4467 modifiers:{altKey:1}, chars:"\u17E2
"},
4468 "\u17E2
", "Digit2
", KeyboardEvent.DOM_VK_2, "\u17E2
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4469 yield testKey({layout:KEYBOARD_LAYOUT_KHMER, keyCode:WIN_VK_2,
4470 modifiers:{altKey:1, shiftKey:1}, chars:"\u17D7
"},
4471 "\u17D7
", "Digit2
", KeyboardEvent.DOM_VK_2, "\u17D7
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4472 yield testKey({layout:KEYBOARD_LAYOUT_KHMER, keyCode:WIN_VK_2,
4473 modifiers:{altGrKey:1}, chars:"2"},
4474 "2", "Digit2
", KeyboardEvent.DOM_VK_2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4475 yield testKey({layout:KEYBOARD_LAYOUT_KHMER, keyCode:WIN_VK_2,
4476 modifiers:{altGrKey:1, shiftKey:1}, chars:"\u19E2
"},
4477 "\u19E2
", "Digit2
", KeyboardEvent.DOM_VK_2, "\u19E2
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4481 yield testKey({layout:KEYBOARD_LAYOUT_NORWEGIAN, keyCode:WIN_VK_OEM_5,
4482 modifiers:{}, chars:"|
"},
4483 "|
", "Backquote
", KeyboardEvent.DOM_VK_PIPE, "|
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4484 yield testKey({layout:KEYBOARD_LAYOUT_NORWEGIAN, keyCode:WIN_VK_OEM_5,
4485 modifiers:{shiftKey:1}, chars:"\u00A7
"},
4486 "\u00A7
", "Backquote
", KeyboardEvent.DOM_VK_PIPE, "\u00A7
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4489 yield testKey({layout:KEYBOARD_LAYOUT_BRAZILIAN_ABNT, keyCode:WIN_VK_ABNT_C1,
4490 modifiers:{}, chars:"/
"},
4491 "/
", "IntlBackslash
", KeyboardEvent.DOM_VK_SLASH, "/
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4492 yield testKey({layout:KEYBOARD_LAYOUT_BRAZILIAN_ABNT, keyCode:WIN_VK_ABNT_C1,
4493 modifiers:{shiftKey:1}, chars:"?
"},
4494 "?
", "IntlBackslash
", KeyboardEvent.DOM_VK_SLASH, "?
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4495 yield testKey({layout:KEYBOARD_LAYOUT_BRAZILIAN_ABNT, keyCode:WIN_VK_ABNT_C2,
4496 modifiers:{numLockKey:1}, chars:".
"},
4497 ".
", "NumpadComma
", KeyboardEvent.DOM_VK_SEPARATOR, ".
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4498 yield testKey({layout:KEYBOARD_LAYOUT_BRAZILIAN_ABNT, keyCode:WIN_VK_DECIMAL,
4499 modifiers:{numLockKey:1}, chars:",
"},
4500 ",
", "NumpadDecimal
", KeyboardEvent.DOM_VK_DECIMAL, ",
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4503 // The separator key on JIS keyboard for Mac doesn't cause any character even with Japanese keyboard layout.
4504 yield testKey({layout:KEYBOARD_LAYOUT_JAPANESE, keyCode:WIN_VK_ABNT_C2,
4505 modifiers:{numLockKey:1}, chars:""},
4506 "", "NumpadComma
", KeyboardEvent.DOM_VK_SEPARATOR, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4507 yield testKey({layout:KEYBOARD_LAYOUT_JAPANESE, keyCode:WIN_VK_DECIMAL,
4508 modifiers:{numLockKey:1}, chars:".
"},
4509 ".
", "NumpadDecimal
", KeyboardEvent.DOM_VK_DECIMAL, ".
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD);
4511 // Dead keys on any layouts
4512 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_6,
4513 modifiers:{}, chars:""},
4514 "Dead
", "BracketLeft
", KeyboardEvent.DOM_VK_CIRCUMFLEX, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4515 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_6,
4516 modifiers:{}, chars:"^^
"},
4517 ["^^
", "^
", "^
", "^
"], "BracketLeft
", KeyboardEvent.DOM_VK_CIRCUMFLEX, "^^
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4519 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_6,
4520 modifiers:{}, chars:""},
4521 "Dead
", "BracketLeft
", KeyboardEvent.DOM_VK_CIRCUMFLEX, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4522 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_A,
4523 modifiers:{}, chars:"\u00E2
"},
4524 ["\u00E2
", "\u00E2
", "a
"], "KeyQ
", KeyboardEvent.DOM_VK_A, "\u00E2
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4526 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_6,
4527 modifiers:{}, chars:""},
4528 "Dead
", "BracketLeft
", KeyboardEvent.DOM_VK_CIRCUMFLEX, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4529 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_A,
4530 modifiers:{shiftKey:1}, chars:"\u00C2
"},
4531 ["\u00C2
", "\u00C2
", "A
"], "KeyQ
", KeyboardEvent.DOM_VK_A, "\u00C2
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4533 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_6,
4534 modifiers:{}, chars:""},
4535 "Dead
", "BracketLeft
", KeyboardEvent.DOM_VK_CIRCUMFLEX, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4536 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_Q,
4537 modifiers:{}, chars:"^q
"},
4538 ["^q
", "^
", "q
", "q
"], "KeyA
", KeyboardEvent.DOM_VK_Q, "^q
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4540 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_6,
4541 modifiers:{shiftKey:1}, chars:""},
4542 "Dead
", "BracketLeft
", KeyboardEvent.DOM_VK_CIRCUMFLEX, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4543 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_6,
4544 modifiers:{shiftKey:1}, chars:"\u00A8\u00A8
"},
4545 ["\u00A8\u00A8
", "\u00A8
", "\u00A8
", "\u00A8
"], "BracketLeft
", KeyboardEvent.DOM_VK_CIRCUMFLEX, "\u00A8\u00A8
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4547 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_6,
4548 modifiers:{shiftKey:1}, chars:""},
4549 "Dead
", "BracketLeft
", KeyboardEvent.DOM_VK_CIRCUMFLEX, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4550 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_A,
4551 modifiers:{shiftKey:1}, chars:"\u00C4
"},
4552 ["\u00C4
", "\u00C4
", "A
"], "KeyQ
", KeyboardEvent.DOM_VK_A, "\u00C4
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4554 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_6,
4555 modifiers:{shiftKey:1}, chars:""},
4556 "Dead
", "BracketLeft
", KeyboardEvent.DOM_VK_CIRCUMFLEX, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4557 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_A,
4558 modifiers:{}, chars:"\u00E4
"},
4559 ["\u00E4
", "\u00E4
", "a
"], "KeyQ
", KeyboardEvent.DOM_VK_A, "\u00E4
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4561 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_6,
4562 modifiers:{shiftKey:1}, chars:""},
4563 "Dead
", "BracketLeft
", KeyboardEvent.DOM_VK_CIRCUMFLEX, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4564 yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_Q,
4565 modifiers:{shiftKey:1}, chars:"\u00A8Q
"},
4566 ["\u00A8Q
", "\u00A8
", "Q
", "Q
"], "KeyA
", KeyboardEvent.DOM_VK_Q, "\u00A8Q
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4568 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1,
4569 modifiers:{}, chars:""},
4570 "Dead
", "BracketLeft
", KeyboardEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4571 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1,
4572 modifiers:{}, chars:"``
"},
4573 ["``
", "`
", "`
", "`
"], "BracketLeft
", KeyboardEvent.DOM_VK_BACK_QUOTE, "``
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4575 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1,
4576 modifiers:{}, chars:""},
4577 "Dead
", "BracketLeft
", KeyboardEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4578 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_A,
4579 modifiers:{}, chars:"\u00E0
"},
4580 ["\u00E0
", "\u00E0
", "a
"], "KeyA
", KeyboardEvent.DOM_VK_A, "\u00E0
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4582 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1,
4583 modifiers:{}, chars:""},
4584 "Dead
", "BracketLeft
", KeyboardEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4585 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_A,
4586 modifiers:{shiftKey:1}, chars:"\u00C0
"},
4587 ["\u00C0
", "\u00C0
", "A
"], "KeyA
", KeyboardEvent.DOM_VK_A, "\u00C0
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4589 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1,
4590 modifiers:{}, chars:""},
4591 "Dead
", "BracketLeft
", KeyboardEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4592 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_Q,
4593 modifiers:{}, chars:"`q
"},
4594 ["`q
", "`
", "q
", "q
"], "KeyQ
", KeyboardEvent.DOM_VK_Q, "`q
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4596 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1,
4597 modifiers:{shiftKey:1}, chars:""},
4598 "Dead
", "BracketLeft
", KeyboardEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4599 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1,
4600 modifiers:{shiftKey:1}, chars:"^^
"},
4601 ["^^
", "^
", "^
", "^
"], "BracketLeft
", KeyboardEvent.DOM_VK_BACK_QUOTE, "^^
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4603 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1,
4604 modifiers:{shiftKey:1}, chars:""},
4605 "Dead
", "BracketLeft
", KeyboardEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4606 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_A,
4607 modifiers:{shiftKey:1}, chars:"\u00C2
"},
4608 ["\u00C2
", "\u00C2
", "A
"], "KeyA
", KeyboardEvent.DOM_VK_A, "\u00C2
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4610 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1,
4611 modifiers:{shiftKey:1}, chars:""},
4612 "Dead
", "BracketLeft
", KeyboardEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4613 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_A,
4614 modifiers:{}, chars:"\u00E2
"},
4615 ["\u00E2
", "\u00E2
", "a
"], "KeyA
", KeyboardEvent.DOM_VK_A, "\u00E2
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4617 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1,
4618 modifiers:{shiftKey:1}, chars:""},
4619 "Dead
", "BracketLeft
", KeyboardEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4620 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_Q,
4621 modifiers:{shiftKey:1}, chars:"^Q
"},
4622 ["^Q
", "^
", "Q
", "Q
"], "KeyQ
", KeyboardEvent.DOM_VK_Q, "^Q
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4624 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_7,
4625 modifiers:{}, chars:""},
4626 "Dead
", "Quote
", KeyboardEvent.DOM_VK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4627 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_7,
4628 modifiers:{}, chars:"\u00B4\u00B4
"},
4629 ["\u00B4\u00B4
", "\u00B4
", "\u00B4
", "\u00B4
"], "Quote
", KeyboardEvent.DOM_VK_QUOTE, "\u00B4\u00B4
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4631 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_7,
4632 modifiers:{}, chars:""},
4633 "Dead
", "Quote
", KeyboardEvent.DOM_VK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4634 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_A,
4635 modifiers:{}, chars:"\u00E1
"},
4636 ["\u00E1
", "\u00E1
", "a
"], "KeyA
", KeyboardEvent.DOM_VK_A, "\u00E1
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4638 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_7,
4639 modifiers:{}, chars:""},
4640 "Dead
", "Quote
", KeyboardEvent.DOM_VK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4641 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_A,
4642 modifiers:{shiftKey:1}, chars:"\u00C1
"},
4643 ["\u00C1
", "\u00C1
", "A
"], "KeyA
", KeyboardEvent.DOM_VK_A, "\u00C1
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4645 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_7,
4646 modifiers:{}, chars:""},
4647 "Dead
", "Quote
", KeyboardEvent.DOM_VK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4648 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_Q,
4649 modifiers:{}, chars:"\u00B4q
"},
4650 ["\u00B4q
", "\u00B4
", "q
", "q
"], "KeyQ
", KeyboardEvent.DOM_VK_Q, "\u00B4q
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4652 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_7,
4653 modifiers:{shiftKey:1}, chars:""},
4654 "Dead
", "Quote
", KeyboardEvent.DOM_VK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4655 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_7,
4656 modifiers:{shiftKey:1}, chars:"\u00A8\u00A8
"},
4657 ["\u00A8\u00A8
", "\u00A8
", "\u00A8
", "\u00A8
"], "Quote
", KeyboardEvent.DOM_VK_QUOTE, "\u00A8\u00A8
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4659 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_7,
4660 modifiers:{shiftKey:1}, chars:""},
4661 "Dead
", "Quote
", KeyboardEvent.DOM_VK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4662 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_A,
4663 modifiers:{shiftKey:1}, chars:"\u00C4
"},
4664 ["\u00C4
", "\u00C4
", "A
"], "KeyA
", KeyboardEvent.DOM_VK_A, "\u00C4
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4666 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_7,
4667 modifiers:{shiftKey:1}, chars:""},
4668 "Dead
", "Quote
", KeyboardEvent.DOM_VK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4669 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_A,
4670 modifiers:{}, chars:"\u00E4
"},
4671 ["\u00E4
", "\u00E4
", "a
"], "KeyA
", KeyboardEvent.DOM_VK_A, "\u00E4
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4673 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_7,
4674 modifiers:{shiftKey:1}, chars:""},
4675 "Dead
", "Quote
", KeyboardEvent.DOM_VK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4676 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_Q,
4677 modifiers:{shiftKey:1}, chars:"\u00A8Q
"},
4678 ["\u00A8Q
", "\u00A8
", "Q
", "Q
"], "KeyQ
", KeyboardEvent.DOM_VK_Q, "\u00A8Q
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4680 yield testKey({layout:KEYBOARD_LAYOUT_NORWEGIAN, keyCode:WIN_VK_OEM_1,
4681 modifiers:{altGrKey:1}, chars:""},
4682 "Dead
", "BracketRight
", KeyboardEvent.DOM_VK_CIRCUMFLEX, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4683 yield testKey({layout:KEYBOARD_LAYOUT_NORWEGIAN, keyCode:WIN_VK_A,
4684 modifiers:{}, chars:"\u00E3
"},
4685 ["\u00E3
", "\u00E3
", "a
"], "KeyA
", KeyboardEvent.DOM_VK_A, "\u00E3
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4687 yield testKey({layout:KEYBOARD_LAYOUT_NORWEGIAN, keyCode:WIN_VK_OEM_1,
4688 modifiers:{ctrlKey:1, altKey:1}, chars:""},
4689 "Dead
", "BracketRight
", KeyboardEvent.DOM_VK_CIRCUMFLEX, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4690 yield testKey({layout:KEYBOARD_LAYOUT_NORWEGIAN, keyCode:WIN_VK_A,
4691 modifiers:{}, chars:"\u00E3
"},
4692 ["\u00E3
", "\u00E3
", "a
"], "KeyA
", KeyboardEvent.DOM_VK_A, "\u00E3
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4694 if (OS_VERSION >= WIN8) {
4695 // On Russian Mnemonic layout, both 'KeyS' and 'KeyC' are dead key. However, the sequence 'KeyS' -> 'KeyC' causes a composite character.
4696 yield testKey({layout:KEYBOARD_LAYOUT_RUSSIAN_MNEMONIC, keyCode:WIN_VK_S,
4697 modifiers:{}, chars:""},
4698 "Dead
", "KeyS
", KeyboardEvent.DOM_VK_S, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4699 yield testKey({layout:KEYBOARD_LAYOUT_RUSSIAN_MNEMONIC, keyCode:WIN_VK_S,
4700 modifiers:{}, chars:"\u0441\u0441
"},
4701 ["\u0441\u0441
", "\u0441
", "\u0441
", "\u0441
"], "KeyS
", KeyboardEvent.DOM_VK_S, "\u0441\u0441
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4703 yield testKey({layout:KEYBOARD_LAYOUT_RUSSIAN_MNEMONIC, keyCode:WIN_VK_C,
4704 modifiers:{}, chars:""},
4705 "Dead
", "KeyC
", KeyboardEvent.DOM_VK_C, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4706 yield testKey({layout:KEYBOARD_LAYOUT_RUSSIAN_MNEMONIC, keyCode:WIN_VK_C,
4707 modifiers:{}, chars:"\u0446\u0446
"},
4708 ["\u0446\u0446
", "\u0446
", "\u0446
", "\u0446
"], "KeyC
", KeyboardEvent.DOM_VK_C, "\u0446\u0446
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4710 yield testKey({layout:KEYBOARD_LAYOUT_RUSSIAN_MNEMONIC, keyCode:WIN_VK_S,
4711 modifiers:{}, chars:""},
4712 "Dead
", "KeyS
", KeyboardEvent.DOM_VK_S, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4713 yield testKey({layout:KEYBOARD_LAYOUT_RUSSIAN_MNEMONIC, keyCode:WIN_VK_C,
4714 modifiers:{}, chars:"\u0449
"},
4715 ["\u0449
", "\u0449
", "\u0446
"], "KeyC
", KeyboardEvent.DOM_VK_C, "\u0449
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4718 // When Alt key is pressed, dead key sequence is generated with WM_SYSKEYDOWN, WM_SYSDEADCHAR, WM_SYSCHAR and WM_SYSKEYUP.
4719 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1,
4720 modifiers:{altKey:1}, chars:""},
4721 "Dead
", "BracketLeft
", KeyboardEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4722 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1,
4723 modifiers:{altKey:1}, chars:"``
"},
4724 ["``
", "`
", "`
", "`
"], "BracketLeft
", KeyboardEvent.DOM_VK_BACK_QUOTE, "``
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4726 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1,
4727 modifiers:{altKey:1}, chars:""},
4728 "Dead
", "BracketLeft
", KeyboardEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4729 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_A,
4730 modifiers:{altKey:1}, chars:"\u00E0
"},
4731 ["\u00E0
", "\u00E0
", "a
"], "KeyA
", KeyboardEvent.DOM_VK_A, "\u00E0
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4733 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1,
4734 modifiers:{altKey:1}, chars:""},
4735 "Dead
", "BracketLeft
", KeyboardEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4736 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_A,
4737 modifiers:{altKey:1, shiftKey:1}, chars:"\u00C0
"},
4738 ["\u00C0
", "\u00C0
", "A
"], "KeyA
", KeyboardEvent.DOM_VK_A, "\u00C0
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4740 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1,
4741 modifiers:{altKey:1}, chars:""},
4742 "Dead
", "BracketLeft
", KeyboardEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4743 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_Q,
4744 modifiers:{altKey:1}, chars:"`q
"},
4745 ["`q
", "`
", "q
", "q
"], "KeyQ
", KeyboardEvent.DOM_VK_Q, "`q
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4747 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1,
4748 modifiers:{altKey:1, shiftKey:1}, chars:""},
4749 "Dead
", "BracketLeft
", KeyboardEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4750 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1,
4751 modifiers:{altKey:1, shiftKey:1}, chars:"^^
"},
4752 ["^^
", "^
", "^
", "^
"], "BracketLeft
", KeyboardEvent.DOM_VK_BACK_QUOTE, "^^
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4754 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1,
4755 modifiers:{altKey:1, shiftKey:1}, chars:""},
4756 "Dead
", "BracketLeft
", KeyboardEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4757 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_A,
4758 modifiers:{altKey:1, shiftKey:1}, chars:"\u00C2
"},
4759 ["\u00C2
", "\u00C2
", "A
"], "KeyA
", KeyboardEvent.DOM_VK_A, "\u00C2
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4761 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1,
4762 modifiers:{altKey:1, shiftKey:1}, chars:""},
4763 "Dead
", "BracketLeft
", KeyboardEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4764 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_A,
4765 modifiers:{altKey:1}, chars:"\u00E2
"},
4766 ["\u00E2
", "\u00E2
", "a
"], "KeyA
", KeyboardEvent.DOM_VK_A, "\u00E2
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4768 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1,
4769 modifiers:{altKey:1, shiftKey:1}, chars:""},
4770 "Dead
", "BracketLeft
", KeyboardEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4771 yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_Q,
4772 modifiers:{altKey:1, shiftKey:1}, chars:"^Q
"},
4773 ["^Q
", "^
", "Q
", "Q
"], "KeyQ
", KeyboardEvent.DOM_VK_Q, "^Q
", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD);
4780 yield* testKeysOnWindows();
4781 } else if (IS_MAC) {
4782 yield* testKeysOnMac();
4788 // Test the activation (or not) of an HTML accesskey
4789 function* runAccessKeyTests()
4791 var button = document.getElementById("button
");
4792 var activationCount;
4799 // The first parameter is the complete input event. The second and third parameters are
4800 // what to test against.
4801 function testKey(aEvent, aAccessKey, aShouldActivate)
4803 activationCount = 0;
4804 button.setAttribute("accesskey
", aAccessKey);
4806 return synthesizeKey(aEvent, "button
", function() {
4808 var currentTestName = eventToString(aEvent);
4810 is(activationCount, aShouldActivate ? 1 : 0,
4811 currentTestName + ", activating '
" + aAccessKey + "'
");
4817 button.addEventListener("click
", onClick);
4819 // These tests have to be per-plaform.
4821 // Basic sanity checks
4822 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A,
4823 modifiers:{}, chars:"a
", unmodifiedChars:"a
"},
4825 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A,
4826 modifiers:{ctrlKey:1}, chars:"\u0001
", unmodifiedChars:"a
"},
4828 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A,
4829 modifiers:{ctrlKey:1}, chars:"\u0001
", unmodifiedChars:"a
"},
4832 // Shift-ctrl does not activate accesskeys
4833 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A,
4834 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0001
", unmodifiedChars:"A
"},
4836 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A,
4837 modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0001
", unmodifiedChars:"A
"},
4839 // Alt-ctrl activate accesskeys
4840 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A,
4841 modifiers:{ctrlKey:1, altKey:1}, chars:"\u0001
", unmodifiedChars:"a
"},
4843 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A,
4844 modifiers:{ctrlKey:1, altKey:1}, chars:"\u0001
", unmodifiedChars:"a
"},
4847 // Greek layout can activate a Latin accesskey
4848 yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:MAC_VK_ANSI_A,
4849 modifiers:{ctrlKey:1, altKey:1}, chars:"\u0001
", unmodifiedChars:"\u03b1
"},
4851 yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:MAC_VK_ANSI_A,
4852 modifiers:{ctrlKey:1, altKey:1}, chars:"\u0001
", unmodifiedChars:"\u03b1
"},
4854 // ... and a Greek accesskey!
4855 yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:MAC_VK_ANSI_A,
4856 modifiers:{ctrlKey:1, altKey:1}, chars:"\u0001
", unmodifiedChars:"\u03b1
"},
4858 yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:MAC_VK_ANSI_A,
4859 modifiers:{ctrlKey:1, altKey:1}, chars:"\u0001
", unmodifiedChars:"\u03b1
"},
4863 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Period,
4864 modifiers:{ctrlKey:1, altKey:1}, chars:".
", unmodifiedChars:".
"},
4867 // German (KCHR/KeyTranslate case)
4868 yield testKey({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:MAC_VK_ANSI_A,
4869 modifiers:{ctrlKey:1, altKey:1}, chars:"a
", unmodifiedChars:"a
"},
4871 yield testKey({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:MAC_VK_ANSI_A,
4872 modifiers:{ctrlKey:1, altKey:1}, chars:"a
", unmodifiedChars:"a
"},
4874 yield testKey({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:MAC_VK_ANSI_LeftBracket,
4875 modifiers:{ctrlKey:1, altKey:1}, chars:"\u00fc
", unmodifiedChars:"\u00fc
"},
4877 yield testKey({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:MAC_VK_ANSI_LeftBracket,
4878 modifiers:{ctrlKey:1, altKey:1}, chars:"\u00fc
", unmodifiedChars:"\u00fc
"},
4882 // Basic sanity checks
4883 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A,
4884 modifiers:{}, chars:"a
"},
4886 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A,
4887 modifiers:{shiftKey:1, altKey:1}, chars:"A
"},
4889 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A,
4890 modifiers:{shiftKey:1, altKey:1}, chars:"A
"},
4893 // shift-alt-ctrl does not activate accesskeys
4894 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A,
4895 modifiers:{ctrlKey:1, shiftKey:1, altKey:1}, chars:""},
4897 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A,
4898 modifiers:{ctrlKey:1, shiftKey:1, altKey:1}, chars:""},
4901 // Greek layout can activate a Latin accesskey
4902 yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:WIN_VK_A,
4903 modifiers:{shiftKey:1, altKey:1}, chars:"\u0391
"},
4905 yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:WIN_VK_A,
4906 modifiers:{shiftKey:1, altKey:1}, chars:"\u0391
"},
4908 // ... and a Greek accesskey!
4909 yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:WIN_VK_A,
4910 modifiers:{shiftKey:1, altKey:1}, chars:"\u0391
"},
4912 yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:WIN_VK_A,
4913 modifiers:{shiftKey:1, altKey:1}, chars:"\u0391
"},
4917 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_PERIOD,
4918 modifiers:{shiftKey:1, altKey:1}, chars:".
", unmodifiedChars:".
"},
4922 button.removeEventListener("click
", onClick);
4925 function* runXULKeyTests()
4927 var commandElements = {
4928 expectedCommand: document.getElementById("expectedCommand
"),
4929 unexpectedCommand: document.getElementById("unexpectedCommand
"),
4930 expectedReservedCommand: document.getElementById("expectedReservedCommand
")
4932 // Enable all command elements.
4933 for (var id in commandElements) {
4934 commandElements[id].removeAttribute("disabled
");
4939 function onKeyInDefaultEventGroup(aDOMEvent)
4941 if (isModifierKeyEvent(aDOMEvent)) {
4944 keyEvents.push({ type: aDOMEvent.type, group: "default
", phase: getPhase(aDOMEvent), currentTarget: eventTargetToString(aDOMEvent.currentTarget) });
4947 function onKeyInSystemEventGroup(aDOMEvent)
4949 if (isModifierKeyEvent(aDOMEvent)) {
4952 keyEvents.push({ type: aDOMEvent.type, group: "system
", phase: getPhase(aDOMEvent), currentTarget: eventTargetToString(aDOMEvent.currentTarget) });
4955 var buttonParent = document.getElementById("button
").parentNode;
4956 buttonParent.addEventListener("keydown
", onKeyInDefaultEventGroup, true);
4957 buttonParent.addEventListener("keypress
", onKeyInDefaultEventGroup, true);
4958 buttonParent.addEventListener("keydown
", onKeyInDefaultEventGroup);
4959 buttonParent.addEventListener("keypress
", onKeyInDefaultEventGroup);
4960 SpecialPowers.addSystemEventListener(buttonParent, "keydown
", onKeyInSystemEventGroup, true);
4961 SpecialPowers.addSystemEventListener(buttonParent, "keypress
", onKeyInSystemEventGroup, true);
4962 SpecialPowers.addSystemEventListener(buttonParent, "keydown
", onKeyInSystemEventGroup, false);
4963 SpecialPowers.addSystemEventListener(buttonParent, "keypress
", onKeyInSystemEventGroup, false);
4965 function finializeKeyElementTest()
4967 buttonParent.removeEventListener("keydown
", onKeyInDefaultEventGroup, true);
4968 buttonParent.removeEventListener("keypress
", onKeyInDefaultEventGroup, true);
4969 buttonParent.removeEventListener("keydown
", onKeyInDefaultEventGroup);
4970 buttonParent.removeEventListener("keypress
", onKeyInDefaultEventGroup);
4971 SpecialPowers.removeSystemEventListener(buttonParent, "keydown
", onKeyInSystemEventGroup, true);
4972 SpecialPowers.removeSystemEventListener(buttonParent, "keypress
", onKeyInSystemEventGroup, true);
4973 SpecialPowers.removeSystemEventListener(buttonParent, "keydown
", onKeyInSystemEventGroup, false);
4974 SpecialPowers.removeSystemEventListener(buttonParent, "keypress
", onKeyInSystemEventGroup, false);
4977 // If aKeyElement is empty string, this function tests if the event kicks
4979 function testKeyElement(aEvent, aKeyElementId)
4981 var testName = "testKeyElement (with non-reserved command element):
" + eventToString(aEvent) + " ";
4982 var keyElement = aKeyElementId == "" ? null : document.getElementById(aKeyElementId);
4984 keyElement.setAttribute("command
", "expectedCommand
");
4987 /* eslint-disable-next-line no-shadow */
4988 for (var id in commandElements) {
4989 commandElements[id].activeCount = 0;
4993 return synthesizeKey(aEvent, "button
", function() {
4995 is(commandElements.expectedCommand.activeCount, 1, testName + "the command element (id='expectedCommand') should be preformed
");
4997 is(commandElements.expectedCommand.activeCount, 0, testName + "the command element (id='expectedCommand') shouldn't be preformed
");
4999 is(commandElements.unexpectedCommand.activeCount, 0, testName + "the command element (id='unexpectedCommand') shouldn't be preformed
");
5000 is(commandElements.expectedReservedCommand.activeCount, 0, testName + "the command element (id='expectedReservedCommand') shouldn't be preformed
");
5002 function checkFiredEvents()
5004 let expectKeyPressEvent = aKeyElementId != "" ||
5005 ((aEvent.modifiers.ctrlKey || aEvent.modifiers.altKey || aEvent.modifiers.metaKey) &&
5006 (!IS_WIN || !aEvent.modifiers.altGrKey));
5007 is(keyEvents.length, expectKeyPressEvent ? 8 : 4, testName + "wrong number events fired
");
5008 is(JSON.stringify(keyEvents[0]), JSON.stringify({ type: "keydown
", group: "default
", phase: "capture
", currentTarget: eventTargetToString(buttonParent) }), testName + "keydown event should be fired on chrome in the default event group #
0");
5009 is(JSON.stringify(keyEvents[1]), JSON.stringify({ type: "keydown
", group: "default
", phase: "bubble
", currentTarget: eventTargetToString(buttonParent) }), testName + "keydown event should be fired on chrome in the default event group #
1");
5011 is(JSON.stringify(keyEvents[2]), JSON.stringify({ type: "keydown
", group: "system
", phase: "capture
", currentTarget: eventTargetToString(buttonParent) }), testName + "keydown event should be fired on chrome in the system event group #
2");
5012 is(JSON.stringify(keyEvents[3]), JSON.stringify({ type: "keydown
", group: "system
", phase: "bubble
", currentTarget: eventTargetToString(buttonParent) }), testName + "keydown event should be fired on chrome in the system event group #
3");
5014 if (expectKeyPressEvent) {
5015 is(JSON.stringify(keyEvents[4]), JSON.stringify({ type: "keypress
", group: "default
", phase: "capture
", currentTarget: eventTargetToString(buttonParent) }), testName + "keypress event should be fired on chrome in the default event group #
4");
5016 is(JSON.stringify(keyEvents[5]), JSON.stringify({ type: "keypress
", group: "default
", phase: "bubble
", currentTarget: eventTargetToString(buttonParent) }), testName + "keypress event should be fired on chrome in the default event group #
5");
5018 is(JSON.stringify(keyEvents[6]), JSON.stringify({ type: "keypress
", group: "system
", phase: "capture
", currentTarget: eventTargetToString(buttonParent) }), testName + "keypress event should be fired on chrome in the system event group #
6");
5019 is(JSON.stringify(keyEvents[7]), JSON.stringify({ type: "keypress
", group: "system
", phase: "bubble
", currentTarget: eventTargetToString(buttonParent) }), testName + "keypress event should be fired on chrome in the system event group #
7");
5026 testName = "testKeyElement (with reserved command element):
" + eventToString(aEvent) + " ";
5027 keyElement.setAttribute("command
", "expectedReservedCommand
");
5029 for (id in commandElements) {
5030 commandElements[id].activeCount = 0;
5033 synthesizeKey(aEvent, "button
", function() {
5034 is(commandElements.expectedCommand.activeCount, 0, testName + "the command element (id='expectedCommand') shouldn't be preformed
");
5035 is(commandElements.unexpectedCommand.activeCount, 0, testName + "the command element (id='unexpectedCommand') shouldn't be preformed
");
5036 is(commandElements.expectedReservedCommand.activeCount, 1, testName + "the command element (id='expectedReservedCommand') should be preformed
");
5041 keyElement.setAttribute("command
", "unexpectedCommand
");
5047 keyElement.setAttribute("command
", "unexpectedCommand
");
5055 yield testKeyElement({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Semicolon,
5056 modifiers:{metaKey:1}, chars:";
", unmodifiedChars:";
"},
5058 yield testKeyElement({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Semicolon,
5059 modifiers:{metaKey:1, shiftKey:1}, chars:";
", unmodifiedChars:":
"},
5061 yield testKeyElement({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Quote,
5062 modifiers:{metaKey:1}, chars:"'
", unmodifiedChars:"'
"},
5063 "reservedUnshiftedKey
");
5064 yield testKeyElement({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Quote,
5065 modifiers:{metaKey:1, shiftKey:1}, chars:"\
"", unmodifiedChars:
"'"},
5066 "reservedShiftedKey");
5069 yield testKeyElement({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_1,
5070 modifiers:{ctrlKey:
1}, chars:
""},
5072 yield testKeyElement({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_1,
5073 modifiers:{ctrlKey:
1, shiftKey:
1}, chars:
""},
5075 yield testKeyElement({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_7,
5076 modifiers:{ctrlKey:
1}, chars:
""},
5077 "reservedUnshiftedKey");
5078 yield testKeyElement({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_7,
5079 modifiers:{ctrlKey:
1, shiftKey:
1}, chars:
""},
5080 "reservedShiftedKey");
5085 yield testKeyElement({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_F,
5086 modifiers:{metaKey:
1, altKey:
1}, chars:
"\u0192", unmodifiedChars:
"f"},
5090 yield testKeyElement({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_F,
5091 modifiers:{ctrlKey:
1, altKey:
1}, chars:
"\u0006"},
5097 yield testKeyElement({layout:KEYBOARD_LAYOUT_SWEDISH, keyCode:MAC_VK_ANSI_Minus,
5098 modifiers:{metaKey:
1, shiftKey:
1}, chars:
"+", unmodifiedChars:
"?"},
5102 yield testKeyElement({layout:KEYBOARD_LAYOUT_SWEDISH, keyCode:WIN_VK_OEM_PLUS,
5103 modifiers:{ctrlKey:
1, shiftKey:
1}, chars:
""},
5105 // For testing if Ctrl+? is kicked without Shift state, temporarily disable
5106 // Ctrl-+ key element.
5107 var unshiftedPlusKeyElement = document.getElementById(
"unshiftedPlus");
5108 unshiftedPlusKeyElement.setAttribute(
"disabled",
"true");
5109 yield testKeyElement({layout:KEYBOARD_LAYOUT_SWEDISH, keyCode:WIN_VK_OEM_PLUS,
5110 modifiers:{ctrlKey:
1}, chars:
""},
5112 unshiftedPlusKeyElement.removeAttribute(
"disabled");
5117 yield testKeyElement({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_X,
5118 modifiers:{ctrlKey:
1}, chars:
"\u0018"},
5120 yield testKeyElement({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_X,
5121 modifiers:{ctrlKey:
1, shiftKey:
1}, chars:
"\u0018"},
5123 yield testKeyElement({layout:KEYBOARD_LAYOUT_ARABIC, keyCode:WIN_VK_X,
5124 modifiers:{ctrlKey:
1}, chars:
"\u0018"},
5126 yield testKeyElement({layout:KEYBOARD_LAYOUT_ARABIC, keyCode:WIN_VK_X,
5127 modifiers:{ctrlKey:
1, shiftKey:
1}, chars:
"\u0018"},
5129 yield testKeyElement({layout:KEYBOARD_LAYOUT_HEBREW, keyCode:WIN_VK_X,
5130 modifiers:{ctrlKey:
1}, chars:
"\u0018"},
5132 yield testKeyElement({layout:KEYBOARD_LAYOUT_HEBREW, keyCode:WIN_VK_X,
5133 modifiers:{ctrlKey:
1, shiftKey:
1}, chars:
"\u0018"},
5135 yield testKeyElement({layout:KEYBOARD_LAYOUT_JAPANESE, keyCode:WIN_VK_OEM_PLUS,
5136 modifiers:{ctrlKey:
1, shiftKey:
1}, chars:
""},
5142 yield testKeyElement({layout:KEYBOARD_LAYOUT_THAI, keyCode:WIN_VK_1,
5143 modifiers:{ctrlKey:
1}, chars:
""},
5145 yield testKeyElement({layout:KEYBOARD_LAYOUT_THAI, keyCode:WIN_VK_1,
5146 modifiers:{ctrlKey:
1, shiftKey:
1}, chars:
""},
5148 yield testKeyElement({layout:KEYBOARD_LAYOUT_THAI, keyCode:WIN_VK_OEM_PLUS,
5149 modifiers:{ctrlKey:
1}, chars:
""},
5151 yield testKeyElement({layout:KEYBOARD_LAYOUT_THAI, keyCode:WIN_VK_OEM_PLUS,
5152 modifiers:{ctrlKey:
1, shiftKey:
1}, chars:
""},
5158 // Ctrl + Alt + foo should be performed only when AltGr key is not
5159 // pressed, i.e., only when Ctrl key and left Alt key are pressed if
5160 // active keyboard layout has AltGr key.
5161 yield testKeyElement({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:WIN_VK_A,
5162 modifiers:{altGrKey:
1}, chars:
""},
5164 yield testKeyElement({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:WIN_VK_A,
5165 modifiers:{ctrlKey:
1, altGrKey:
1}, chars:
""},
5167 yield testKeyElement({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:WIN_VK_A,
5168 modifiers:{altKey:
1, altGrKey:
1}, chars:
""},
5170 yield testKeyElement({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:WIN_VK_A,
5171 modifiers:{ctrlKey:
1, altKey:
1}, chars:
""},
5173 yield testKeyElement({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:WIN_VK_A,
5174 modifiers:{ctrlKey:
1, altKey:
1, altGrKey:
1}, chars:
""},
5178 for (id in commandElements) {
5179 commandElements[id].setAttribute(
"disabled",
"true");
5181 finializeKeyElementTest();
5184 function* runReservedKeyTests()
5186 var browser = document.getElementById(
"browser");
5188 browser.contentWindow,
5189 browser.contentDocument,
5190 browser.contentDocument.documentElement,
5191 browser.contentDocument.body,
5192 browser.contentDocument.getElementById(
"content_button")
5195 for (var i =
0; i < contents.length; i++) {
5196 contents[i].addEventListener(
"keydown", onKeyInDefaultEventGroup, true);
5197 contents[i].addEventListener(
"keypress", onKeyInDefaultEventGroup, true);
5198 contents[i].addEventListener(
"keydown", onKeyInDefaultEventGroup);
5199 contents[i].addEventListener(
"keypress", onKeyInDefaultEventGroup);
5200 SpecialPowers.addSystemEventListener(contents[i],
"keydown", onKeyInSystemEventGroup, true);
5201 SpecialPowers.addSystemEventListener(contents[i],
"keypress", onKeyInSystemEventGroup, true);
5202 SpecialPowers.addSystemEventListener(contents[i],
"keydown", onKeyInSystemEventGroup, false);
5203 SpecialPowers.addSystemEventListener(contents[i],
"keypress", onKeyInSystemEventGroup, false);
5208 function onKeyInDefaultEventGroup(aDOMEvent)
5210 if (isModifierKeyEvent(aDOMEvent)) {
5213 keyEvents.push({ type: aDOMEvent.type, group:
"default", phase: getPhase(aDOMEvent), currentTarget: eventTargetToString(aDOMEvent.currentTarget) });
5216 function onKeyInSystemEventGroup(aDOMEvent)
5218 if (isModifierKeyEvent(aDOMEvent)) {
5221 keyEvents.push({ type: aDOMEvent.type, group:
"system", phase: getPhase(aDOMEvent), currentTarget: eventTargetToString(aDOMEvent.currentTarget) });
5222 // prevents reserved default action
5223 if (aDOMEvent.type ==
"keypress" &&
5224 aDOMEvent.eventPhase == aDOMEvent.BUBBLING_PHASE &&
5225 aDOMEvent.currentTarget == browser.contentWindow) {
5226 aDOMEvent.preventDefault();
5230 function finializeKeyElementTest()
5232 /* eslint-disable-next-line no-shadow */
5233 for (var i =
0; i < contents.length; i++) {
5234 contents[i].removeEventListener(
"keydown", onKeyInDefaultEventGroup, true);
5235 contents[i].removeEventListener(
"keypress", onKeyInDefaultEventGroup, true);
5236 contents[i].removeEventListener(
"keydown", onKeyInDefaultEventGroup);
5237 contents[i].removeEventListener(
"keypress", onKeyInDefaultEventGroup);
5238 SpecialPowers.removeSystemEventListener(contents[i],
"keydown", onKeyInSystemEventGroup, true);
5239 SpecialPowers.removeSystemEventListener(contents[i],
"keypress", onKeyInSystemEventGroup, true);
5240 SpecialPowers.removeSystemEventListener(contents[i],
"keydown", onKeyInSystemEventGroup, false);
5241 SpecialPowers.removeSystemEventListener(contents[i],
"keypress", onKeyInSystemEventGroup, false);
5245 function testReservedKey(aEvent)
5248 return synthesizeKey(aEvent,
"content_button", function() {
5249 let testName =
"testReservedKey: " + eventToString(aEvent) +
" ";
5250 is(keyEvents.length,
20, testName +
"wrong number events fired");
5251 is(JSON.stringify(keyEvents[
0]), JSON.stringify({ type:
"keydown", group:
"system", phase:
"capture", currentTarget: eventTargetToString(contents[
0]) }), testName +
"keydown event should be fired on content only in the system event group #0");
5252 is(JSON.stringify(keyEvents[
1]), JSON.stringify({ type:
"keydown", group:
"system", phase:
"capture", currentTarget: eventTargetToString(contents[
1]) }), testName +
"keydown event should be fired on content only in the system event group #1");
5253 is(JSON.stringify(keyEvents[
2]), JSON.stringify({ type:
"keydown", group:
"system", phase:
"capture", currentTarget: eventTargetToString(contents[
2]) }), testName +
"keydown event should be fired on content only in the system event group #2");
5254 is(JSON.stringify(keyEvents[
3]), JSON.stringify({ type:
"keydown", group:
"system", phase:
"capture", currentTarget: eventTargetToString(contents[
3]) }), testName +
"keydown event should be fired on content only in the system event group #3");
5256 is(JSON.stringify(keyEvents[
4]), JSON.stringify({ type:
"keydown", group:
"system", phase:
"target", currentTarget: eventTargetToString(contents[
4]) }), testName +
"keydown event should be fired on content only in the system event group #4");
5257 is(JSON.stringify(keyEvents[
5]), JSON.stringify({ type:
"keydown", group:
"system", phase:
"target", currentTarget: eventTargetToString(contents[
4]) }), testName +
"keydown event should be fired on content only in the system event group #5");
5259 is(JSON.stringify(keyEvents[
6]), JSON.stringify({ type:
"keydown", group:
"system", phase:
"bubble", currentTarget: eventTargetToString(contents[
3]) }), testName +
"keydown event should be fired on content only in the system event group #6");
5260 is(JSON.stringify(keyEvents[
7]), JSON.stringify({ type:
"keydown", group:
"system", phase:
"bubble", currentTarget: eventTargetToString(contents[
2]) }), testName +
"keydown event should be fired on content only in the system event group #7");
5261 is(JSON.stringify(keyEvents[
8]), JSON.stringify({ type:
"keydown", group:
"system", phase:
"bubble", currentTarget: eventTargetToString(contents[
1]) }), testName +
"keydown event should be fired on content only in the system event group #8");
5262 is(JSON.stringify(keyEvents[
9]), JSON.stringify({ type:
"keydown", group:
"system", phase:
"bubble", currentTarget: eventTargetToString(contents[
0]) }), testName +
"keydown event should be fired on content only in the system event group #9");
5264 is(JSON.stringify(keyEvents[
10]), JSON.stringify({ type:
"keypress", group:
"system", phase:
"capture", currentTarget: eventTargetToString(contents[
0]) }), testName +
"keypress event should be fired on content only in the system event group #10");
5265 is(JSON.stringify(keyEvents[
11]), JSON.stringify({ type:
"keypress", group:
"system", phase:
"capture", currentTarget: eventTargetToString(contents[
1]) }), testName +
"keypress event should be fired on content only in the system event group #11");
5266 is(JSON.stringify(keyEvents[
12]), JSON.stringify({ type:
"keypress", group:
"system", phase:
"capture", currentTarget: eventTargetToString(contents[
2]) }), testName +
"keypress event should be fired on content only in the system event group #12");
5267 is(JSON.stringify(keyEvents[
13]), JSON.stringify({ type:
"keypress", group:
"system", phase:
"capture", currentTarget: eventTargetToString(contents[
3]) }), testName +
"keypress event should be fired on content only in the system event group #13");
5269 is(JSON.stringify(keyEvents[
14]), JSON.stringify({ type:
"keypress", group:
"system", phase:
"target", currentTarget: eventTargetToString(contents[
4]) }), testName +
"keypress event should be fired on content only in the system event group #14");
5270 is(JSON.stringify(keyEvents[
15]), JSON.stringify({ type:
"keypress", group:
"system", phase:
"target", currentTarget: eventTargetToString(contents[
4]) }), testName +
"keypress event should be fired on content only in the system event group #15");
5272 is(JSON.stringify(keyEvents[
16]), JSON.stringify({ type:
"keypress", group:
"system", phase:
"bubble", currentTarget: eventTargetToString(contents[
3]) }), testName +
"keypress event should be fired on content only in the system event group #16");
5273 is(JSON.stringify(keyEvents[
17]), JSON.stringify({ type:
"keypress", group:
"system", phase:
"bubble", currentTarget: eventTargetToString(contents[
2]) }), testName +
"keypress event should be fired on content only in the system event group #17");
5274 is(JSON.stringify(keyEvents[
18]), JSON.stringify({ type:
"keypress", group:
"system", phase:
"bubble", currentTarget: eventTargetToString(contents[
1]) }), testName +
"keypress event should be fired on content only in the system event group #18");
5275 is(JSON.stringify(keyEvents[
19]), JSON.stringify({ type:
"keypress", group:
"system", phase:
"bubble", currentTarget: eventTargetToString(contents[
0]) }), testName +
"keypress event should be fired on content only in the system event group #19");
5282 // Cmd+T is reserved for opening new tab.
5283 yield testReservedKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_T,
5284 modifiers:{metaKey:
1}, chars:
"t", unmodifiedChars:
"t"});
5285 } else if (IS_WIN) {
5286 // Ctrl+T is reserved for opening new tab.
5287 yield testReservedKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_T,
5288 modifiers:{ctrlKey:
1}, chars:
"\u0014"});
5289 yield testReservedKey({layout:KEYBOARD_LAYOUT_ARABIC, keyCode:WIN_VK_T,
5290 modifiers:{ctrlKey:
1}, chars:
"\u0014"});
5293 finializeKeyElementTest();
5296 function* runTextInputTests()
5298 var textbox = document.getElementById(
"textbox");
5300 function testKey(aEvent, aExpectText) {
5304 /* eslint-disable-next-line no-shadow */
5305 var currentTestName = eventToString(aEvent);
5307 // Check if the text comes with keypress events rather than composition events.
5309 /* eslint-disable-next-line no-shadow */
5310 function onKeypress(aEvent) {
5312 if (keypress ==
1 && aExpectText ==
"") {
5313 if (!aEvent.ctrlKey && !aEvent.altKey) {
5314 is(aEvent.charCode,
0,
5315 currentTestName +
", the charCode value should be 0 when it shouldn't cause inputting text");
5319 if (keypress
> aExpectText.length) {
5320 ok(false, currentTestName +
" causes too many keypress events");
5323 is(aEvent.key, aExpectText[keypress -
1],
5324 currentTestName +
", " + keypress +
"th keypress event's key value should be '" + aExpectText[keypress -
1] +
"'");
5325 is(aEvent.charCode, aExpectText.charCodeAt(keypress -
1),
5326 currentTestName +
", " + keypress +
"th keypress event's charCode value should be 0x" + parseInt(aExpectText.charCodeAt(keypress -
1),
16));
5328 textbox.addEventListener(
"keypress", onKeypress, true);
5330 return synthesizeKey(aEvent,
"textbox", () =
> {
5331 textbox.removeEventListener(
"keypress", onKeypress, true);
5332 if (aExpectText ==
"") {
5333 if (aEvent.modifiers.ctrlKey || aEvent.modifiers.altKey) {
5335 currentTestName +
" should cause one keypress event because it should be available for shortcut key");
5338 currentTestName +
" should cause no keypress event because simple key press only with Shift/AltGraph " +
5339 "or without any modifiers shouldn't match with a shortcut key");
5342 is(keypress, aExpectText.length,
5343 currentTestName +
" should cause " + aExpectText.length +
" keypress events");
5344 is(textbox.value, aExpectText,
5345 currentTestName +
" does not input correct text.");
5353 yield testKey({layout:KEYBOARD_LAYOUT_ARABIC_PC, keyCode:MAC_VK_ANSI_G,
5354 modifiers:{shiftKey:
1}, chars:
"\u0644\u0623", unmodifiedChars:
"\u0644\u0623"},
5356 yield testKey({layout:KEYBOARD_LAYOUT_ARABIC_PC, keyCode:MAC_VK_ANSI_T,
5357 modifiers:{shiftKey:
1}, chars:
"\u0644\u0625", unmodifiedChars:
"\u0644\u0625"},
5359 yield testKey({layout:KEYBOARD_LAYOUT_ARABIC_PC, keyCode:MAC_VK_ANSI_B,
5360 modifiers:{shiftKey:
1}, chars:
"\u0644\u0622", unmodifiedChars:
"\u0644\u0622"},
5362 yield testKey({layout:KEYBOARD_LAYOUT_ARABIC_PC, keyCode:MAC_VK_ANSI_B,
5363 modifiers:{}, chars:
"\u0644\u0627", unmodifiedChars:
"\u0644\u0627"},
5365 } else if (IS_WIN) {
5366 // Basic sanity checks
5367 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A,
5368 modifiers:{}, chars:
"a"},
5370 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A,
5371 modifiers:{shiftKey:
1}, chars:
"A"},
5373 // When Ctrl+Alt are pressed, any text should not be inputted.
5374 yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A,
5375 modifiers:{ctrlKey:
1, altKey:
1}, chars:
""},
5377 // AltGr should input only when it's mapped to a character
5378 yield testKey({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:WIN_VK_0,
5379 modifiers:{altGrKey:
1}, chars:
"}"},
5381 yield testKey({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:WIN_VK_A,
5382 modifiers:{altGrKey:
1}, chars:
""},
5384 yield testKey({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:WIN_VK_A,
5385 modifiers:{ctrlKey:
1, altKey:
1}, chars:
""},
5388 // Lithuanian AltGr should be consumed at
9/
0 keys pressed
5389 yield testKey({layout:KEYBOARD_LAYOUT_LITHUANIAN, keyCode:WIN_VK_8,
5390 modifiers:{}, chars:
"\u016B"},
5392 yield testKey({layout:KEYBOARD_LAYOUT_LITHUANIAN, keyCode:WIN_VK_9,
5393 modifiers:{}, chars:
"9"},
5395 yield testKey({layout:KEYBOARD_LAYOUT_LITHUANIAN, keyCode:WIN_VK_0,
5396 modifiers:{}, chars:
"0"},
5398 yield testKey({layout:KEYBOARD_LAYOUT_LITHUANIAN, keyCode:WIN_VK_8,
5399 modifiers:{ctrlKey:
1, altKey:
1}, chars:
"8"},
5401 yield testKey({layout:KEYBOARD_LAYOUT_LITHUANIAN, keyCode:WIN_VK_9,
5402 modifiers:{ctrlKey:
1, altKey:
1}, chars:
"9"},
5404 yield testKey({layout:KEYBOARD_LAYOUT_LITHUANIAN, keyCode:WIN_VK_0,
5405 modifiers:{ctrlKey:
1, altKey:
1}, chars:
"0"},
5409 // XXX We need to move focus for canceling to search the autocomplete
5410 // result. If we don't do here, Fx will crash at end of this tests.
5411 document.getElementById(
"button").focus();
5414 function* runAltRightKeyOnWindows()
5420 var button = document.getElementById(
"button");
5423 const kKeyboardLayouts = [
5424 { layout: KEYBOARD_LAYOUT_ARABIC },
5425 { layout: KEYBOARD_LAYOUT_BRAZILIAN_ABNT },
5426 { layout: KEYBOARD_LAYOUT_EN_US },
5427 { layout: KEYBOARD_LAYOUT_FRENCH },
5428 { layout: KEYBOARD_LAYOUT_GREEK },
5429 { layout: KEYBOARD_LAYOUT_GERMAN },
5430 { layout: KEYBOARD_LAYOUT_HEBREW },
5431 { layout: KEYBOARD_LAYOUT_JAPANESE },
5432 { layout: KEYBOARD_LAYOUT_KHMER },
5433 { layout: KEYBOARD_LAYOUT_LITHUANIAN },
5434 { layout: KEYBOARD_LAYOUT_NORWEGIAN },
5435 { layout: KEYBOARD_LAYOUT_RUSSIAN_MNEMONIC,
5436 canTestIt () { return OS_VERSION
>= WIN8; } },
5437 { layout: KEYBOARD_LAYOUT_SPANISH },
5438 { layout: KEYBOARD_LAYOUT_SWEDISH },
5439 { layout: KEYBOARD_LAYOUT_THAI },
5442 function pushEvent(aEvent) {
5443 events.push(aEvent);
5444 if (aEvent.key ===
"Alt") {
5445 // Prevent working the menubar.
5446 aEvent.preventDefault();
5449 button.addEventListener(
"keydown", pushEvent);
5450 button.addEventListener(
"keyup", pushEvent);
5452 function testKey(aKeyboardLayout) {
5453 return synthesizeKey({layout: aKeyboardLayout.layout, keyCode: WIN_VK_RMENU,
5454 modifiers: {}, chars:
""},
"button", function() {
5455 const kDescription =
5456 "runAltRightKeyOnWindows(" + aKeyboardLayout.layout.currentTestName +
"): ";
5457 if (aKeyboardLayout.layout.hasAltGrOnWin) {
5458 is(events.length,
4,
5459 kDescription +
"AltRight should fire 2 pairs of keydown and keyup events");
5460 is(events[
0].type,
"keydown",
5461 kDescription +
"First event should be keydown of ControlLeft");
5462 is(events[
0].key,
"Control",
5463 kDescription +
"First event should be keydown of ControlLeft whose key should be Control");
5464 is(events[
0].code,
"ControlLeft",
5465 kDescription +
"First event should be keydown of ControlLeft");
5466 is(events[
0].location, KeyboardEvent.DOM_KEY_LOCATION_LEFT,
5467 kDescription +
"First event should be keydown of ControlLeft whose location should be DOM_KEY_LOCATION_LEFT");
5468 is(events[
0].keyCode, KeyboardEvent.DOM_VK_CONTROL,
5469 kDescription +
"First event should be keydown of ControlLeft whose keyCode should be DOM_VK_CONTROL");
5470 is(events[
0].ctrlKey, true,
5471 kDescription +
"First event should be keydown of ControlLeft whose ctrlKey should be true");
5472 is(events[
0].altKey, false,
5473 kDescription +
"First event should be keydown of ControlLeft whose altKey should be false");
5474 is(events[
0].getModifierState(
"AltGraph"), false,
5475 kDescription +
"First event should be keydown of ControlLeft whose getModifierState(\"AltGraph\
") should be false");
5476 is(events[
1].type,
"keydown",
5477 kDescription +
"Second event should be keydown of AltRight");
5478 is(events[
1].key,
"AltGraph",
5479 kDescription +
"Second event should be keydown of AltRight whose key should be AltGraph");
5480 is(events[
1].code,
"AltRight",
5481 kDescription +
"Second event should be keydown of AltRight");
5482 is(events[
1].location, KeyboardEvent.DOM_KEY_LOCATION_RIGHT,
5483 kDescription +
"Second event should be keydown of AltRight whose location should be DOM_KEY_LOCATION_RIGHT");
5484 is(events[
1].keyCode, KeyboardEvent.DOM_VK_ALT,
5485 kDescription +
"Second event should be keydown of AltRight whose keyCode should be DOM_VK_ALT");
5486 is(events[
1].ctrlKey, false,
5487 kDescription +
"Second event should be keydown of AltRight whose ctrlKey should be false");
5488 is(events[
1].altKey, false,
5489 kDescription +
"Second event should be keydown of AltRight whose altKey should be false");
5490 is(events[
1].getModifierState(
"AltGraph"), true,
5491 kDescription +
"Second event should be keydown of AltRight whose getModifierState(\"AltGraph\
") should be true");
5492 is(events[
2].type,
"keyup",
5493 kDescription +
"Third event should be keyup of ControlLeft");
5494 is(events[
2].key,
"Control",
5495 kDescription +
"Third event should be keyup of ControlLeft whose key should be Control");
5496 is(events[
2].code,
"ControlLeft",
5497 kDescription +
"Third event should be keyup of ControlLeft");
5498 is(events[
2].location, KeyboardEvent.DOM_KEY_LOCATION_LEFT,
5499 kDescription +
"Third event should be keyup of ControlLeft whose location should be DOM_KEY_LOCATION_LEFT");
5500 is(events[
2].keyCode, KeyboardEvent.DOM_VK_CONTROL,
5501 kDescription +
"Third event should be keyup of ControlLeft whose keyCode should be DOM_VK_CONTROL");
5502 is(events[
2].ctrlKey, false,
5503 kDescription +
"Third event should be keyup of ControlLeft whose ctrlKey should be false");
5504 is(events[
2].altKey, false,
5505 kDescription +
"Third event should be keyup of ControlLeft whose altKey should be false");
5506 is(events[
2].getModifierState(
"AltGraph"), true,
5507 kDescription +
"Third event should be keyup of ControlLeft whose getModifierState(\"AltGraph\
") should be true");
5508 is(events[
3].type,
"keyup",
5509 kDescription +
"Forth event should be keyup of AltRight");
5510 is(events[
3].key,
"AltGraph",
5511 kDescription +
"Forth event should be keyup of AltRight whose key should be AltGraph");
5512 is(events[
3].code,
"AltRight",
5513 kDescription +
"Forth event should be keyup of AltRight");
5514 is(events[
3].location, KeyboardEvent.DOM_KEY_LOCATION_RIGHT,
5515 kDescription +
"Forth event should be keyup of AltRight whose location should be DOM_KEY_LOCATION_RIGHT");
5516 is(events[
3].keyCode, KeyboardEvent.DOM_VK_ALT,
5517 kDescription +
"Forth event should be keyup of AltRight whose keyCode should be DOM_VK_ALT");
5518 is(events[
3].ctrlKey, false,
5519 kDescription +
"Third event should be keyup of AltRight whose ctrlKey should be false");
5520 is(events[
3].altKey, false,
5521 kDescription +
"Third event should be keyup of AltRight whose altKey should be false");
5522 is(events[
3].getModifierState(
"AltGraph"), false,
5523 kDescription +
"Third event should be keyup of AltRight whose getModifierState(\"AltGraph\
") should be false");
5525 is(events.length,
2,
5526 kDescription +
"AltRight should fire a pair of keydown and keyup events");
5527 is(events[
0].type,
"keydown",
5528 kDescription +
"First event should be keydown of AltRight");
5529 is(events[
0].key,
"Alt",
5530 kDescription +
"First event should be keydown of AltRight whose key should be Alt");
5531 is(events[
0].code,
"AltRight",
5532 kDescription +
"First event should be keydown of AltRight");
5533 is(events[
0].location, KeyboardEvent.DOM_KEY_LOCATION_RIGHT,
5534 kDescription +
"First event should be keydown of AltRight whose location should be DOM_KEY_LOCATION_RIGHT");
5535 is(events[
0].keyCode, KeyboardEvent.DOM_VK_ALT,
5536 kDescription +
"First event should be keydown of AltRight whose keyCode should be DOM_VK_ALT");
5537 is(events[
0].ctrlKey, false,
5538 kDescription +
"First event should be keydown of AltRight whose ctrlKey should be false");
5539 is(events[
0].altKey, true,
5540 kDescription +
"First event should be keydown of AltRight whose altKey should be true");
5541 is(events[
0].getModifierState(
"AltGraph"), false,
5542 kDescription +
"First event should be keydown of AltRight whose getModifierState(\"AltGraph\
") should be false");
5543 is(events[
1].type,
"keyup",
5544 kDescription +
"Second event should be keyup of AltRight");
5545 is(events[
1].key,
"Alt",
5546 kDescription +
"Second event should be keyup of AltRight whose key should be Alt");
5547 is(events[
1].code,
"AltRight",
5548 kDescription +
"Second event should be keyup of AltRight");
5549 is(events[
1].location, KeyboardEvent.DOM_KEY_LOCATION_RIGHT,
5550 kDescription +
"Second event should be keyup of AltRight whose location should be DOM_KEY_LOCATION_RIGHT");
5551 is(events[
1].keyCode, KeyboardEvent.DOM_VK_ALT,
5552 kDescription +
"Second event should be keyup of AltRight whose keyCode should be DOM_VK_ALT");
5553 is(events[
1].ctrlKey, false,
5554 kDescription +
"Second event should be keyup of AltRight whose ctrlKey should be false");
5555 is(events[
1].altKey, false,
5556 kDescription +
"Second event should be keyup of AltRight whose altKey should be false");
5557 is(events[
1].getModifierState(
"AltGraph"), false,
5558 kDescription +
"Second event should be keyup of AltRight whose getModifierState(\"AltGraph\
") should be false");
5565 for (const kKeyboardLayout of kKeyboardLayouts) {
5566 if (typeof kKeyboardLayout.canTestIt ===
"function" &&
5567 !kKeyboardLayout.canTestIt()) {
5571 yield testKey(kKeyboardLayout);
5574 button.addEventListener(
"keydown", pushEvent);
5575 button.addEventListener(
"keyup", pushEvent);
5578 function* runAllTests() {
5579 yield* runKeyEventTests();
5580 yield* runAccessKeyTests();
5581 yield* runXULKeyTests();
5582 yield* runReservedKeyTests();
5583 yield* runTextInputTests();
5584 yield* runAltRightKeyOnWindows();
5587 var gTestContinuation = null;
5589 function continueTest()
5591 if (!gTestContinuation) {
5592 gTestContinuation = runAllTests();
5594 var ret = gTestContinuation.next();
5596 SimpleTest.finish();
5598 is(ret.value, true,
"Key synthesized successfully");
5604 if (!IS_MAC && !IS_WIN) {
5605 todo(false,
"This test is supported on MacOSX and Windows only. (Bug 431503)");
5609 if (IS_WIN && OS_VERSION
>= WIN8) {
5610 // Switching keyboard layout to Russian - Mnemonic causes
2 assertions in
5611 // KeyboardLayout::LoadLayout().
5612 const kAssertionCountDueToRussainMnemonic =
2 *
2;
5613 SimpleTest.expectAssertions(kAssertionCountDueToRussainMnemonic,
5614 kAssertionCountDueToRussainMnemonic);
5616 SimpleTest.waitForExplicitFinish();