diff options
author | Matt A. Tobin <email@mattatobin.com> | 2020-02-20 11:08:15 -0500 |
---|---|---|
committer | wolfbeast <mcwerewolf@wolfbeast.com> | 2020-04-14 12:48:40 +0200 |
commit | ee6595e6deca4bb6d9008fb1495c5da7692a2b33 (patch) | |
tree | 95602885a43f6dc556dd6d27fc2d387275ae4816 /widget/tests/test_keycodes.xul | |
parent | 201be4d8fcd78484ad2132d16fd5c06448a41aca (diff) | |
download | UXP-ee6595e6deca4bb6d9008fb1495c5da7692a2b33.tar UXP-ee6595e6deca4bb6d9008fb1495c5da7692a2b33.tar.gz UXP-ee6595e6deca4bb6d9008fb1495c5da7692a2b33.tar.lz UXP-ee6595e6deca4bb6d9008fb1495c5da7692a2b33.tar.xz UXP-ee6595e6deca4bb6d9008fb1495c5da7692a2b33.zip |
Issue #439 - Remove tests from widget/
Diffstat (limited to 'widget/tests/test_keycodes.xul')
-rw-r--r-- | widget/tests/test_keycodes.xul | 4361 |
1 files changed, 0 insertions, 4361 deletions
diff --git a/widget/tests/test_keycodes.xul b/widget/tests/test_keycodes.xul deleted file mode 100644 index 3ec460ecb..000000000 --- a/widget/tests/test_keycodes.xul +++ /dev/null @@ -1,4361 +0,0 @@ -<?xml version="1.0"?> -<?xml-stylesheet href="chrome://global/skin" type="text/css"?> -<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" - type="text/css"?> -<window title="Key event tests" - onload="runTest()" - xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> - - <script type="application/javascript" - src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" /> - <script type="application/javascript" - src="chrome://mochikit/content/tests/SimpleTest/NativeKeyCodes.js" /> - <script type="application/javascript" - src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js" /> - -<commandset> - <command id="expectedCommand" oncommand="this.activeCount++" disabled="true"/> - <command id="unexpectedCommand" oncommand="this.activeCount++" disabled="true"/> - <command id="expectedReservedCommand" oncommand="this.activeCount++" reserved="true" disabled="true"/> -</commandset> -<keyset> - <key id="unshiftedKey" key=";" modifiers="accel" command="unexpectedCommand"/> - <key id="shiftedKey" key=":" modifiers="accel" command="unexpectedCommand"/> - <key id="commandOptionF" key='f' modifiers="accel,alt" command="unexpectedCommand"/> - <key id="question" key='?' modifiers="accel" command="unexpectedCommand"/> - <key id="unshiftedX" key="x" modifiers="accel" command="unexpectedCommand"/> - <key id="shiftedX" key="X" modifiers="accel,shift" command="unexpectedCommand"/> - <key id="unshiftedPlus" key="+" modifiers="accel" command="unexpectedCommand"/> - <key id="reservedUnshiftedKey" key="'" modifiers="accel" command="unexpectedCommand"/> - <key id="reservedShiftedKey" key='"' modifiers="accel" command="unexpectedCommand"/> -</keyset> - -<browser id="browser" type="content" src="data:text/html;charset=utf-8,<button id='content_button'>button</button>" width="200" height="32"/> - -<body xmlns="http://www.w3.org/1999/xhtml"> -<p id="display"> - <!-- for some reason, if we don't have 'accesskey' here, adding it dynamically later - doesn't work! --> - <button id="button" accesskey="z">Hello</button> - <input type="text" id="textbox" value=""/> -</p> -<div id="content" style="display: none"> - -</div> -<pre id="test"> -</pre> -</body> - -<script class="testbody" type="application/javascript"> -<![CDATA[ - -const IS_MAC = navigator.platform.indexOf("Mac") == 0; -const IS_WIN = navigator.platform.indexOf("Win") == 0; -const OS_VERSION = - IS_WIN ? parseFloat(Components.classes["@mozilla.org/system-info;1"] - .getService(Components.interfaces.nsIPropertyBag2) - .getProperty("version")) : 0; -const WIN7 = 6.1; -const WIN8 = 6.2; - -function isModifierKeyEvent(aEvent) -{ - switch (aEvent.key) { - case "Alt": - case "AltGraph": - case "CapsLock": - case "Control": - case "Fn": - case "FnLock": - case "Hyper": - case "Meta": - case "NumLock": - case "ScrollLock": - case "Shift": - case "Super": - case "Symbol": - case "SymbolLock": - return true; - default: - return false; - } -} - -/** - * Firefox infobar UI can have access keys which conflict with this test. Really - * stupid workaround until we can move this test into its own chrome window. - */ -function clearInfobars() -{ - var Ci = Components.interfaces; - - var browser = window.top.QueryInterface(Ci.nsIInterfaceRequestor) - .getInterface(Ci.nsIWebNavigation) - .QueryInterface(Ci.nsIDocShell).chromeEventHandler; - var chromeWin = browser.ownerDocument.defaultView; - var nb = chromeWin.gBrowser.getNotificationBox(browser); - for (let n of nb.allNotifications) { - nb.removeNotification(n, true); - } -} - -function eventToString(aEvent) -{ - var name = aEvent.layout.name + " keyCode=" + - aEvent.keyCode + " (0x" + aEvent.keyCode.toString(16).toUpperCase() + - ") chars='" + aEvent.chars + "'"; - if (typeof aEvent.unmodifiedChars === "string") { - name += " unmodifiedChars='" + aEvent.unmodifiedChars + "'"; - } - if (aEvent.modifiers.shiftKey) { - name += " [Shift]"; - } - if (aEvent.modifiers.shiftRightKey) { - name += " [Right Shift]"; - } - if (aEvent.modifiers.ctrlKey) { - name += " [Ctrl]"; - } - if (aEvent.modifiers.ctrlRightKey) { - name += " [Right Ctrl]"; - } - if (aEvent.modifiers.altKey) { - name += " [Alt]"; - } - if (aEvent.modifiers.altRightKey) { - name += " [Right Alt]"; - } - if (aEvent.modifiers.metaKey) { - name += " [Command]"; - } - if (aEvent.modifiers.metaRightKey) { - name += " [Right Command]"; - } - - return name; -} - -function getPhase(aDOMEvent) -{ - switch (aDOMEvent.eventPhase) { - case aDOMEvent.None: - return "none"; - case aDOMEvent.CAPTURING_PHASE: - return "capture"; - case aDOMEvent.AT_TARGET: - return "target"; - case aDOMEvent.BUBBLING_PHASE: - return "bubble"; - default: - return ""; - } -} - -function eventTargetToString(aEventTarget) -{ - if (aEventTarget.navigator) { - return "window"; - } - switch (aEventTarget.nodeType) { - case Node.ELEMENT_NODE: - return "element (" + aEventTarget.tagName + ")"; - case Node.DOCUMENT_NODE: - return "document"; - default: - return ""; - } -} - -function synthesizeKey(aEvent, aFocusElementId, aCallback) -{ - if (aFocusElementId.startsWith("content_")) { - var browser = document.getElementById("browser"); - browser.contentDocument.getElementById(aFocusElementId).focus(); - } else { - document.getElementById(aFocusElementId).focus(); - } - - return synthesizeNativeKey(aEvent.layout, aEvent.keyCode, - aEvent.modifiers, - aEvent.chars, aEvent.unmodifiedChars, - aCallback); -} - -// Test the charcodes and modifiers being delivered to keypress handlers and -// also keydown/keyup events too. -function* runKeyEventTests() -{ - const nsIDOMKeyEvent = Components.interfaces.nsIDOMKeyEvent; - var eventList, keyDownFlags, keyUpFlags, testingEvent, expectedDOMKeyCode; - const kShiftFlag = 0x1; - const kCtrlFlag = 0x2; - const kAltFlag = 0x4; - const kMetaFlag = 0x8; - const kNumLockFlag = 0x10; - const kCapsLockFlag = 0x20; - - function onKeyEvent(e) - { - function removeFlag(e, aFlag) - { - if (e.type == "keydown") { - var oldValue = keyDownFlags; - keyDownFlags &= ~aFlag; - return oldValue != keyDownFlags; - } else if (e.type == "keyup") { - var oldValue = keyUpFlags; - keyUpFlags &= ~aFlag; - return oldValue != keyUpFlags; - } - return false; - } - - function isStateChangingModifierKeyEvent(e) - { - var flags = 0; - if (e.type == "keydown") { - flags = keyDownFlags ^ keyUpFlags; - } else if (e.type == "keyup") { - flags = keyUpFlags; - } - switch (e.keyCode) { - case e.DOM_VK_SHIFT: - is(e.ctrlKey, (flags & kCtrlFlag) != 0, name + ", Ctrl of Shift " + e.type + " event mismatch"); - is(e.metaKey, (flags & kMetaFlag) != 0, name + ", Command of Shift " + e.type + " event mismatch"); - is(e.altKey, (flags & kAltFlag) != 0, name + ", Alt of Shift " + e.type + " event mismatch"); - is(e.shiftKey, e.type == "keydown", name + ", Shift of Shift " + e.type + " event mismatch"); - return (testingEvent.modifiers.shiftKey || testingEvent.modifiers.shiftRightKey) && - removeFlag(e, kShiftFlag) && expectedDOMKeyCode != e.keyCode; - case e.DOM_VK_CONTROL: - is(e.ctrlKey, e.type == "keydown", name + ", Ctrl of Ctrl " + e.type + " event mismatch"); - is(e.metaKey, (flags & kMetaFlag) != 0, name + ", Command of Ctrl " + e.type + " event mismatch"); - is(e.altKey, (flags & kAltFlag) != 0, name + ", Alt of Ctrl " + e.type + " event mismatch"); - is(e.shiftKey, (flags & kShiftFlag) != 0, name + ", Shift of Ctrl " + e.type + " event mismatch"); - return (testingEvent.modifiers.ctrlKey || testingEvent.modifiers.ctrlRightKey || (IS_WIN && testingEvent.modifiers.altGrKey)) && - removeFlag(e, kCtrlFlag) && expectedDOMKeyCode != e.keyCode; - case e.DOM_VK_ALT: - is(e.ctrlKey, (flags & kCtrlFlag) != 0, name + ", Ctrl of Alt " + e.type + " event mismatch"); - is(e.metaKey, (flags & kMetaFlag) != 0, name + ", Command of Alt " + e.type + " event mismatch"); - is(e.altKey, e.type == "keydown", name + ", Alt of Alt " + e.type + " event mismatch"); - is(e.shiftKey, (flags & kShiftFlag) != 0, name + ", Shift of Alt " + e.type + " event mismatch"); - return (testingEvent.modifiers.altKey || testingEvent.modifiers.altRightKey || (IS_WIN && testingEvent.modifiers.altGrKey)) && - removeFlag(e, kAltFlag) && expectedDOMKeyCode != e.keyCode; - case e.DOM_VK_META: - is(e.ctrlKey, (flags & kCtrlFlag) != 0, name + ", Ctrl of Command " + e.type + " evnet mismatch"); - is(e.metaKey, e.type == "keydown", name + ", Command of Command " + e.type + " evnet mismatch"); - is(e.altKey, (flags & kAltFlag) != 0, name + ", Alt of Command " + e.type + " evnet mismatch"); - is(e.shiftKey, (flags & kShiftFlag) != 0, name + ", Shift of Command " + e.type + " evnet mismatch"); - return (testingEvent.modifiers.metaKey || testingEvent.modifiers.metaRightKey) && - removeFlag(e, kMetaFlag) && expectedDOMKeyCode != e.keyCode; - case e.DOM_VK_NUM_LOCK: - is(e.ctrlKey, (flags & kCtrlFlag) != 0, name + ", Ctrl of NumLock " + e.type + " event mismatch"); - is(e.metaKey, (flags & kMetaFlag) != 0, name + ", Command of NumLock " + e.type + " event mismatch"); - is(e.altKey, (flags & kAltFlag) != 0, name + ", Alt of NumLock " + e.type + " event mismatch"); - is(e.shiftKey, (flags & kShiftFlag) != 0, name + ", Shift of NumLock " + e.type + " event mismatch"); - return (testingEvent.modifiers.numLockKey || testingEvent.modifiers.numericKeyPadKey) && - removeFlag(e, kNumLockFlag) && expectedDOMKeyCode != e.keyCode; - case e.DOM_VK_CAPS_LOCK: - is(e.ctrlKey, (flags & kCtrlFlag) != 0, name + ", Ctrl of CapsLock " + e.type + " event mismatch"); - is(e.metaKey, (flags & kMetaFlag) != 0, name + ", Command of CapsLock " + e.type + " event mismatch"); - is(e.altKey, (flags & kAltFlag) != 0, name + ", Alt of CapsLock " + e.type + " event mismatch"); - is(e.shiftKey, (flags & kShiftFlag) != 0, name + ", Shift of CapsLock " + e.type + " event mismatch"); - return testingEvent.modifiers.capsLockKey && - removeFlag(e, kCapsLockFlag) && expectedDOMKeyCode != e.keyCode; - } - return false; - } - - // Ignore the state changing key events which is fired by the testing event. - if (!isStateChangingModifierKeyEvent(e)) - eventList.push(e); - } - - function consumer(aEvent) - { - aEvent.preventDefault(); - } - - const SHOULD_DELIVER_NONE = 0x0; - const SHOULD_DELIVER_KEYDOWN = 0x1; - const SHOULD_DELIVER_KEYPRESS = 0x2; - const SHOULD_DELIVER_KEYUP = 0x4; - const SHOULD_DELIVER_ALL = SHOULD_DELIVER_KEYDOWN | - SHOULD_DELIVER_KEYPRESS | - SHOULD_DELIVER_KEYUP; - const SHOULD_DELIVER_KEYDOWN_KEYUP = SHOULD_DELIVER_KEYDOWN | - SHOULD_DELIVER_KEYUP; - const SHOULD_DELIVER_KEYDOWN_KEYPRESS = SHOULD_DELIVER_KEYDOWN | - SHOULD_DELIVER_KEYPRESS; - - // The first parameter is the complete input event. The second parameter is - // what to test against. The third parameter is which key events should be - // delived for the event. - // @param aExpectedKeyValues Can be string or array of string. - // If all keyboard events have same key value, - // specify it as string. Otherwise, specify - // each key value in array. - function testKey(aEvent, aExpectedKeyValues, aExpectedCodeValue, - aExpectedGeckoKeyCode, aExpectGeckoChar, - aShouldDelivedEvent, aExpectLocation) - { - ok(aExpectedGeckoKeyCode != undefined, "keycode is undefined"); - eventList = []; - - // The modifier key events which are fired for state changing are har to - // test. We should ignore them for now. - keyDownFlags = keyUpFlags = 0; - if (!IS_MAC) { - // On Mac, nsChildView doesn't generate modifier keydown/keyup events for - // state changing for synthesizeNativeKeyEvent. - if (aEvent.modifiers.shiftKey || aEvent.modifiers.shiftRightKey) { - keyDownFlags |= kShiftFlag; - } - if (aEvent.modifiers.ctrlKey || aEvent.modifiers.ctrlRightKey || - (IS_WIN && aEvent.modifiers.altGrKey)) { - keyDownFlags |= kCtrlFlag; - } - if (aEvent.modifiers.altKey || aEvent.modifiers.altRightKey || - (IS_WIN && aEvent.modifiers.altGrKey)) { - keyDownFlags |= kAltFlag; - } - if (aEvent.modifiers.metaKey || aEvent.modifiers.metaRightKey) { - keyDownFlags |= kMetaFlag; - } - if (aEvent.modifiers.numLockKey || aEvent.modifiers.numericKeyPadKey) { - keyDownFlags |= kNumLockFlag; - } - if (aEvent.modifiers.capsLockKey) { - keyDownFlags |= kCapsLockFlag; - } - keyUpFlags = keyDownFlags; - } - - testingEvent = aEvent; - expectedDOMKeyCode = aExpectedGeckoKeyCode; - - var name = eventToString(aEvent); - ok(true, "Starting: " + name); - - return synthesizeKey(aEvent, "button", function() { - - var expectEventTypeList = []; - if (aShouldDelivedEvent & SHOULD_DELIVER_KEYDOWN) - expectEventTypeList.push("keydown"); - if (aShouldDelivedEvent & SHOULD_DELIVER_KEYPRESS) { - expectEventTypeList.push("keypress"); - for (var i = 1; i < aExpectGeckoChar.length; i++) { - expectEventTypeList.push("keypress"); - } - } - if (aShouldDelivedEvent & SHOULD_DELIVER_KEYUP) - expectEventTypeList.push("keyup"); - is(eventList.length, expectEventTypeList.length, name + ", wrong number of key events"); - - var longerLength = Math.max(eventList.length, expectEventTypeList.length); - var keypressCount = 0; - for (var i = 0; i < longerLength; i++) { - var firedEventType = i < eventList.length ? eventList[i].type : ""; - var expectEventType = i < expectEventTypeList.length ? expectEventTypeList[i] : ""; - if (firedEventType != "") - is(firedEventType, expectEventType, name + ", " + expectEventType + " should be fired"); - else - is(firedEventType, expectEventType, name + ", a needed event is not fired"); - - if (firedEventType != "") { - var e = eventList[i]; - if (e.type == "keypress") { - var isCtrlExpected = - !!(aEvent.modifiers.ctrlKey || aEvent.modifiers.ctrlRightKey) && !aEvent.isInputtingCharacters; - var isAltExpected = - !!(aEvent.modifiers.altKey || aEvent.modifiers.altRightKey) && !aEvent.isInputtingCharacters; - if (IS_WIN && (aEvent.modifiers.altGrKey || isCtrlExpected && isAltExpected)) { - isCtrlExpected = isAltExpected = (aEvent.chars == ""); - } - is(e.ctrlKey, isCtrlExpected, name + ", Ctrl mismatch"); - is(e.metaKey, !!(aEvent.modifiers.metaKey || aEvent.modifiers.metaRightKey), name + ", Command mismatch"); - is(e.altKey, isAltExpected, name + ", Alt mismatch"); - is(e.shiftKey, !!(aEvent.modifiers.shiftKey || aEvent.modifiers.shiftRightKey), name + ", Shift mismatch"); - } - - var expectedKeyValue = - typeof aExpectedKeyValues === "string" ? aExpectedKeyValues : - i < aExpectedKeyValues.length ? aExpectedKeyValues[i] : - undefined; - is(e.key, expectedKeyValue, name + ", wrong key value"); - is(e.code, aExpectedCodeValue, name + ", wrong code value"); - - if (aExpectGeckoChar.length > 0 && e.type == "keypress") { - is(e.charCode, aExpectGeckoChar.charCodeAt(keypressCount++), name + ", charcode"); - if (aExpectedGeckoKeyCode >= 0) { - if (aExpectGeckoChar) { - is(e.keyCode, 0, name + ", wrong keycode"); - } else { - is(e.keyCode, aExpectedGeckoKeyCode, name + ", wrong keycode"); - } - } - } else { - is(e.charCode, 0, name + ", no charcode"); - if (aExpectedGeckoKeyCode >= 0) { - is(e.keyCode, aExpectedGeckoKeyCode, name + ", wrong keycode"); - } - } - is(e.location, aExpectLocation, name + ", wrong location"); - } - } - - continueTest(); - }); - } - - // These tests have to be per-plaform. - document.addEventListener("keydown", onKeyEvent, false); - document.addEventListener("keypress", onKeyEvent, false); - document.addEventListener("keyup", onKeyEvent, false); - // Prevent almost all shortcut key handlers. - SpecialPowers.addSystemEventListener(document, "keypress", consumer, true); - - function cleanup() - { - document.removeEventListener("keydown", onKeyEvent, false); - document.removeEventListener("keypress", onKeyEvent, false); - document.removeEventListener("keyup", onKeyEvent, false); - SpecialPowers.removeSystemEventListener(document, "keypress", consumer, true); - } - - function testKeysOnMac() - { - // On Mac, you can produce event records for any desired keyboard input - // by running with NSPR_LOG_MODULES=TextInputHandlerWidgets:5 and typing - // into the browser. We will dump the key event fields to the console - // (Find TextInputHandler::HandleKeyDownEvent or - // TextInputHandler::HandleKeyUpEvent in the log). Use the International system - // preferences widget to enable other keyboard layouts and select them from the - // input menu to see what keyboard events they generate. - // Note that it's possible to send bogus key events here, e.g. - // {keyCode:0, chars:"z", unmodifiedChars:"P"} --- sendNativeKeyEvent - // makes no attempt to verify that the keyCode matches the characters. So only - // test key event records that you saw Cocoa send. - - // Ctrl keys - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A, - modifiers:{ctrlKey:1}, chars:"\u0001", unmodifiedChars:"a"}, - "a", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "a", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0001", unmodifiedChars:"A"}, - "A", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "A", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // Alt keys - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A, - modifiers:{altKey:1}, chars:"\u00e5", unmodifiedChars:"a"}, - "\u00e5", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "\u00e5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A, - modifiers:{altKey:1, shiftKey:1}, chars:"\u00c5", unmodifiedChars:"A"}, - "\u00c5", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "\u00c5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // Command keys - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A, - modifiers:{metaKey:1}, chars:"a", unmodifiedChars:"a"}, - "a", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "a", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - // Shift-cmd gives us the shifted character - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A, - modifiers:{metaKey:1, shiftKey:1}, chars:"a", unmodifiedChars:"A"}, - "a", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "A", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - // Ctrl-cmd gives us the unshifted character - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A, - modifiers:{metaKey:1, ctrlKey:1}, chars:"\u0001", unmodifiedChars:"a"}, - "a", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "a", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - // Alt-cmd gives us the shifted character - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A, - modifiers:{metaKey:1, altKey:1}, chars:"\u00e5", unmodifiedChars:"a"}, - "\u00e5", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "\u00e5", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A, - modifiers:{metaKey:1, altKey:1, shiftKey:1}, chars:"\u00c5", unmodifiedChars:"a"}, - "\u00c5", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "\u00c5", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // Greek ctrl keys produce Latin charcodes - yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:MAC_VK_ANSI_A, - modifiers:{ctrlKey:1}, chars:"\u0001", unmodifiedChars:"\u03b1"}, - "\u03b1", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "a", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:MAC_VK_ANSI_A, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0001", unmodifiedChars:"\u0391"}, - "\u0391", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "A", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // Greek command keys - yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:MAC_VK_ANSI_A, - modifiers:{metaKey:1}, chars:"a", unmodifiedChars:"\u03b1"}, - "a", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "a", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - // Shift-cmd gives us the shifted character - yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:MAC_VK_ANSI_A, - modifiers:{metaKey:1, shiftKey:1}, chars:"a", unmodifiedChars:"\u0391"}, - "a", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "A", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // Ctrl-cmd gives us the unshifted character - yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:MAC_VK_ANSI_A, - modifiers:{metaKey:1, ctrlKey:1}, chars:"\u0001", unmodifiedChars:"\u03b1"}, - "\u03b1", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "a", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - // Alt-cmd gives us the shifted character - yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:MAC_VK_ANSI_A, - modifiers:{metaKey:1, altKey:1}, chars:"\u00a8", unmodifiedChars:"\u03b1"}, - "\u00a8", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "\u00a8", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:MAC_VK_ANSI_A, - modifiers:{metaKey:1, altKey:1, shiftKey:1}, chars:"\u00b9", unmodifiedChars:"\u0391"}, - "\u00b9", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "\u00b9", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // German - yield testKey({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:MAC_VK_ANSI_A, - modifiers: {}, chars:"a", unmodifiedChars:"a"}, - "a", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "a", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:MAC_VK_ANSI_LeftBracket, - modifiers: {}, chars:"\u00fc", unmodifiedChars:"\u00fc"}, - "\u00fc", "BracketLeft", 0, "\u00fc", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:MAC_VK_ANSI_Minus, - modifiers: {}, chars:"\u00df", unmodifiedChars:"\u00df"}, - "\u00df", "Minus", nsIDOMKeyEvent.DOM_VK_QUESTION_MARK, "\u00df", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:MAC_VK_ANSI_Minus, - modifiers:{shiftKey:1}, chars:"?", unmodifiedChars:"?"}, - "?", "Minus", nsIDOMKeyEvent.DOM_VK_QUESTION_MARK, "?", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - // Note that Shift+SS is '?' but Cmd+Shift+SS is '/' on German layout. - // Therefore, when Cmd key is pressed, the SS key's keycode is changed. - yield testKey({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:MAC_VK_ANSI_Minus, - modifiers:{metaKey:1}, chars:"\u00df", unmodifiedChars:"\u00df"}, - "\u00df", "Minus", nsIDOMKeyEvent.DOM_VK_SLASH, "\u00df", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:MAC_VK_ANSI_Minus, - modifiers:{metaKey:1, shiftKey:1}, chars:"/", unmodifiedChars:"?"}, - "/", "Minus", nsIDOMKeyEvent.DOM_VK_SLASH, "?", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // Caps Lock key event - // XXX keyup event of Caps Lock key is not fired. - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_CapsLock, - modifiers:{capsLockKey:1}, chars:"", unmodifiedChars:""}, - "CapsLock", "CapsLock", nsIDOMKeyEvent.DOM_VK_CAPS_LOCK, "", SHOULD_DELIVER_KEYDOWN, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_CapsLock, - modifiers:{capsLockKey:0}, chars:"", unmodifiedChars:""}, - "CapsLock", "CapsLock", nsIDOMKeyEvent.DOM_VK_CAPS_LOCK, "", SHOULD_DELIVER_KEYDOWN, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // Shift/RightShift key event - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_Shift, - modifiers:{shiftKey:1}, chars:"", unmodifiedChars:""}, - "Shift", "ShiftLeft", nsIDOMKeyEvent.DOM_VK_SHIFT, "", SHOULD_DELIVER_KEYDOWN, KeyboardEvent.DOM_KEY_LOCATION_LEFT); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_Shift, - modifiers:{shiftKey:0}, chars:"", unmodifiedChars:""}, - "Shift", "ShiftLeft", nsIDOMKeyEvent.DOM_VK_SHIFT, "", SHOULD_DELIVER_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_LEFT); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_RightShift, - modifiers:{shiftRightKey:1}, chars:"", unmodifiedChars:""}, - "Shift", "ShiftRight", nsIDOMKeyEvent.DOM_VK_SHIFT, "", SHOULD_DELIVER_KEYDOWN, KeyboardEvent.DOM_KEY_LOCATION_RIGHT); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_RightShift, - modifiers:{shiftRightKey:0}, chars:"", unmodifiedChars:""}, - "Shift", "ShiftRight", nsIDOMKeyEvent.DOM_VK_SHIFT, "", SHOULD_DELIVER_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_RIGHT); - - // Control/RightControl key event - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_Control, - modifiers:{ctrlKey:1}, chars:"", unmodifiedChars:""}, - "Control", "ControlLeft", nsIDOMKeyEvent.DOM_VK_CONTROL, "", SHOULD_DELIVER_KEYDOWN, KeyboardEvent.DOM_KEY_LOCATION_LEFT); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_Control, - modifiers:{ctrlKey:0}, chars:"", unmodifiedChars:""}, - "Control", "ControlLeft", nsIDOMKeyEvent.DOM_VK_CONTROL, "", SHOULD_DELIVER_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_LEFT); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_RightControl, - modifiers:{ctrlRightKey:1}, chars:"", unmodifiedChars:""}, - "Control", "ControlRight", nsIDOMKeyEvent.DOM_VK_CONTROL, "", SHOULD_DELIVER_KEYDOWN, KeyboardEvent.DOM_KEY_LOCATION_RIGHT); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_RightControl, - modifiers:{ctrlRightKey:0}, chars:"", unmodifiedChars:""}, - "Control", "ControlRight", nsIDOMKeyEvent.DOM_VK_CONTROL, "", SHOULD_DELIVER_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_RIGHT); - - // Option/RightOption key event - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_Option, - modifiers:{altKey:1}, chars:"", unmodifiedChars:""}, - "Alt", "AltLeft", nsIDOMKeyEvent.DOM_VK_ALT, "", SHOULD_DELIVER_KEYDOWN, KeyboardEvent.DOM_KEY_LOCATION_LEFT); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_Option, - modifiers:{altKey:0}, chars:"", unmodifiedChars:""}, - "Alt", "AltLeft", nsIDOMKeyEvent.DOM_VK_ALT, "", SHOULD_DELIVER_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_LEFT); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_RightOption, - modifiers:{altRightKey:1}, chars:"", unmodifiedChars:""}, - "Alt", "AltRight", nsIDOMKeyEvent.DOM_VK_ALT, "", SHOULD_DELIVER_KEYDOWN, KeyboardEvent.DOM_KEY_LOCATION_RIGHT); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_RightOption, - modifiers:{altRightKey:0}, chars:"", unmodifiedChars:""}, - "Alt", "AltRight", nsIDOMKeyEvent.DOM_VK_ALT, "", SHOULD_DELIVER_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_RIGHT); - - // Command/RightCommand key event - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_Command, - modifiers:{metaKey:1}, chars:"", unmodifiedChars:""}, - "Meta", "OSLeft", nsIDOMKeyEvent.DOM_VK_META, "", SHOULD_DELIVER_KEYDOWN, KeyboardEvent.DOM_KEY_LOCATION_LEFT); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_Command, - modifiers:{metaKey:0}, chars:"", unmodifiedChars:""}, - "Meta", "OSLeft", nsIDOMKeyEvent.DOM_VK_META, "", SHOULD_DELIVER_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_LEFT); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_RightCommand, - modifiers:{metaRightKey:1}, chars:"", unmodifiedChars:""}, - "Meta", "OSRight", nsIDOMKeyEvent.DOM_VK_META, "", SHOULD_DELIVER_KEYDOWN, KeyboardEvent.DOM_KEY_LOCATION_RIGHT); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_RightCommand, - modifiers:{metaRightKey:0}, chars:"", unmodifiedChars:""}, - "Meta", "OSRight", nsIDOMKeyEvent.DOM_VK_META, "", SHOULD_DELIVER_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_RIGHT); - - // all keys on keyboard (keyCode test) - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_Tab, - modifiers: {}, chars:"\t", unmodifiedChars:"\t"}, - "Tab", "Tab", nsIDOMKeyEvent.DOM_VK_TAB, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadClear, - modifiers: {}, chars:"\uF739", unmodifiedChars:"\uF739"}, - "Clear", "NumLock", nsIDOMKeyEvent.DOM_VK_CLEAR, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_Return, - modifiers: {}, chars:"\u000D", unmodifiedChars:"\u000D"}, - "Enter", "Enter", nsIDOMKeyEvent.DOM_VK_RETURN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_PC_Pause, - modifiers: {}, chars:"\uF712", unmodifiedChars:"\uF712"}, - "F15", "F15", nsIDOMKeyEvent.DOM_VK_PAUSE, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_Escape, - modifiers: {}, chars:"\u001B", unmodifiedChars:"\u001B"}, - "Escape", "Escape", nsIDOMKeyEvent.DOM_VK_ESCAPE, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_Space, - modifiers: {}, chars:" ", unmodifiedChars:" "}, - " ", "Space", nsIDOMKeyEvent.DOM_VK_SPACE, " ", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_PageUp, - modifiers: {}, chars:"\uF72C", unmodifiedChars:"\uF72C"}, - "PageUp", "PageUp", nsIDOMKeyEvent.DOM_VK_PAGE_UP, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_PageDown, - modifiers: {}, chars:"\uF72D", unmodifiedChars:"\uF72D"}, - "PageDown", "PageDown", nsIDOMKeyEvent.DOM_VK_PAGE_DOWN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_End, - modifiers: {}, chars:"\uF72B", unmodifiedChars:"\uF72B"}, - "End", "End", nsIDOMKeyEvent.DOM_VK_END, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_Home, - modifiers: {}, chars:"\uF729", unmodifiedChars:"\uF729"}, - "Home", "Home", nsIDOMKeyEvent.DOM_VK_HOME, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_LeftArrow, - modifiers: {}, chars:"\uF702", unmodifiedChars:"\uF702"}, - "ArrowLeft", "ArrowLeft", nsIDOMKeyEvent.DOM_VK_LEFT, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_UpArrow, - modifiers: {}, chars:"\uF700", unmodifiedChars:"\uF700"}, - "ArrowUp", "ArrowUp", nsIDOMKeyEvent.DOM_VK_UP, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_RightArrow, - modifiers: {}, chars:"\uF703", unmodifiedChars:"\uF703"}, - "ArrowRight", "ArrowRight", nsIDOMKeyEvent.DOM_VK_RIGHT, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_DownArrow, - modifiers: {}, chars:"\uF701", unmodifiedChars:"\uF701"}, - "ArrowDown", "ArrowDown", nsIDOMKeyEvent.DOM_VK_DOWN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_PC_PrintScreen, - modifiers: {}, chars:"\uF710", unmodifiedChars:"\uF710"}, - "F13", "F13", nsIDOMKeyEvent.DOM_VK_PRINTSCREEN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_PC_Delete, - modifiers: {}, chars:"\uF728", unmodifiedChars:"\uF728"}, - "Delete", "Delete", nsIDOMKeyEvent.DOM_VK_DELETE, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_PC_ScrollLock, - modifiers: {}, chars:"\uF711", unmodifiedChars:"\uF711"}, - "F14", "F14", nsIDOMKeyEvent.DOM_VK_SCROLL_LOCK, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_PC_ContextMenu, - modifiers: {}, chars:"\u0010", unmodifiedChars:"\u0010"}, - "ContextMenu", "ContextMenu", nsIDOMKeyEvent.DOM_VK_CONTEXT_MENU, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F1, - modifiers:{fnKey:1}, chars:"\uF704", unmodifiedChars:"\uF704"}, - "F1", "F1", nsIDOMKeyEvent.DOM_VK_F1, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F2, - modifiers:{fnKey:1}, chars:"\uF705", unmodifiedChars:"\uF705"}, - "F2", "F2", nsIDOMKeyEvent.DOM_VK_F2, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F3, - modifiers:{fnKey:1}, chars:"\uF706", unmodifiedChars:"\uF706"}, - "F3", "F3", nsIDOMKeyEvent.DOM_VK_F3, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F4, - modifiers:{fnKey:1}, chars:"\uF707", unmodifiedChars:"\uF707"}, - "F4", "F4", nsIDOMKeyEvent.DOM_VK_F4, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F5, - modifiers:{fnKey:1}, chars:"\uF708", unmodifiedChars:"\uF708"}, - "F5", "F5", nsIDOMKeyEvent.DOM_VK_F5, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F6, - modifiers:{fnKey:1}, chars:"\uF709", unmodifiedChars:"\uF709"}, - "F6", "F6", nsIDOMKeyEvent.DOM_VK_F6, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F7, - modifiers:{fnKey:1}, chars:"\uF70A", unmodifiedChars:"\uF70A"}, - "F7", "F7", nsIDOMKeyEvent.DOM_VK_F7, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F8, - modifiers:{fnKey:1}, chars:"\uF70B", unmodifiedChars:"\uF70B"}, - "F8", "F8", nsIDOMKeyEvent.DOM_VK_F8, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F9, - modifiers:{fnKey:1}, chars:"\uF70C", unmodifiedChars:"\uF70C"}, - "F9", "F9", nsIDOMKeyEvent.DOM_VK_F9, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F10, - modifiers:{fnKey:1}, chars:"\uF70D", unmodifiedChars:"\uF70D"}, - "F10", "F10", nsIDOMKeyEvent.DOM_VK_F10, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F11, - modifiers:{fnKey:1}, chars:"\uF70E", unmodifiedChars:"\uF70E"}, - "F11", "F11", nsIDOMKeyEvent.DOM_VK_F11, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F12, - modifiers:{fnKey:1}, chars:"\uF70F", unmodifiedChars:"\uF70F"}, - "F12", "F12", nsIDOMKeyEvent.DOM_VK_F12, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F16, - modifiers:{fnKey:1}, chars:"\uF713", unmodifiedChars:"\uF713"}, - "F16", "F16", nsIDOMKeyEvent.DOM_VK_F16, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F17, - modifiers:{fnKey:1}, chars:"\uF714", unmodifiedChars:"\uF714"}, - "F17", "F17", nsIDOMKeyEvent.DOM_VK_F17, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F18, - modifiers:{fnKey:1}, chars:"\uF715", unmodifiedChars:"\uF715"}, - "F18", "F18", nsIDOMKeyEvent.DOM_VK_F18, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_F19, - modifiers:{fnKey:1}, chars:"\uF716", unmodifiedChars:"\uF716"}, - "F19", "F19", nsIDOMKeyEvent.DOM_VK_F19, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // US - // Alphabet - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A, - modifiers: {}, chars:"a", unmodifiedChars:"a"}, - "a", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "a", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A, - modifiers:{shiftKey:1}, chars:"A", unmodifiedChars:"A"}, - "A", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "A", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A, - modifiers:{ctrlKey:1}, chars:"\u0001", unmodifiedChars:"a"}, - "a", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "a", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A, - modifiers:{altKey:1}, chars:"\u00E5", unmodifiedChars:"a"}, - "\u00E5", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "\u00E5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A, - modifiers:{metaKey:1}, chars:"a", unmodifiedChars:"a"}, - "a", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "a", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_B, - modifiers:{}, chars:"b", unmodifiedChars:"b"}, - "b", "KeyB", nsIDOMKeyEvent.DOM_VK_B, "b", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_B, - modifiers:{shiftKey:1}, chars:"B", unmodifiedChars:"B"}, - "B", "KeyB", nsIDOMKeyEvent.DOM_VK_B, "B", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_B, - modifiers:{ctrlKey:1}, chars:"\u0002", unmodifiedChars:"b"}, - "b", "KeyB", nsIDOMKeyEvent.DOM_VK_B, "b", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_B, - modifiers:{altKey:1}, chars:"\u222B", unmodifiedChars:"b"}, - "\u222B", "KeyB", nsIDOMKeyEvent.DOM_VK_B, "\u222B", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_B, - modifiers:{metaKey:1}, chars:"b", unmodifiedChars:"b"}, - "b", "KeyB", nsIDOMKeyEvent.DOM_VK_B, "b", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_C, - modifiers:{}, chars:"c", unmodifiedChars:"c"}, - "c", "KeyC", nsIDOMKeyEvent.DOM_VK_C, "c", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_C, - modifiers:{shiftKey:1}, chars:"C", unmodifiedChars:"C"}, - "C", "KeyC", nsIDOMKeyEvent.DOM_VK_C, "C", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_C, - modifiers:{ctrlKey:1}, chars:"\u0003", unmodifiedChars:"c"}, - "c", "KeyC", nsIDOMKeyEvent.DOM_VK_C, "c", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_C, - modifiers:{altKey:1}, chars:"\u00E7", unmodifiedChars:"c"}, - "\u00E7", "KeyC", nsIDOMKeyEvent.DOM_VK_C, "\u00E7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_C, - modifiers:{metaKey:1}, chars:"c", unmodifiedChars:"c"}, - "c", "KeyC", nsIDOMKeyEvent.DOM_VK_C, "c", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_D, - modifiers:{}, chars:"d", unmodifiedChars:"d"}, - "d", "KeyD", nsIDOMKeyEvent.DOM_VK_D, "d", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_D, - modifiers:{shiftKey:1}, chars:"D", unmodifiedChars:"D"}, - "D", "KeyD", nsIDOMKeyEvent.DOM_VK_D, "D", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_D, - modifiers:{ctrlKey:1}, chars:"\u0004", unmodifiedChars:"d"}, - "d", "KeyD", nsIDOMKeyEvent.DOM_VK_D, "d", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_D, - modifiers:{altKey:1}, chars:"\u2202", unmodifiedChars:"d"}, - "\u2202", "KeyD", nsIDOMKeyEvent.DOM_VK_D, "\u2202", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_D, - modifiers:{metaKey:1}, chars:"d", unmodifiedChars:"d"}, - "d", "KeyD", nsIDOMKeyEvent.DOM_VK_D, "d", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_E, - modifiers:{}, chars:"e", unmodifiedChars:"e"}, - "e", "KeyE", nsIDOMKeyEvent.DOM_VK_E, "e", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_E, - modifiers:{shiftKey:1}, chars:"E", unmodifiedChars:"E"}, - "E", "KeyE", nsIDOMKeyEvent.DOM_VK_E, "E", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_E, - modifiers:{ctrlKey:1}, chars:"\u0005", unmodifiedChars:"e"}, - "e", "KeyE", nsIDOMKeyEvent.DOM_VK_E, "e", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_E, - modifiers:{altKey:1}, chars:"", unmodifiedChars:"e"}, - "Dead", "KeyE", nsIDOMKeyEvent.DOM_VK_E, "\u00B4", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); // dead key - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_E, - modifiers:{metaKey:1}, chars:"e", unmodifiedChars:"e"}, - "e", "KeyE", nsIDOMKeyEvent.DOM_VK_E, "e", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_F, - modifiers:{}, chars:"f", unmodifiedChars:"f"}, - "f", "KeyF", nsIDOMKeyEvent.DOM_VK_F, "f", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_F, - modifiers:{shiftKey:1}, chars:"F", unmodifiedChars:"F"}, - "F", "KeyF", nsIDOMKeyEvent.DOM_VK_F, "F", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_F, - modifiers:{ctrlKey:1}, chars:"\u0006", unmodifiedChars:"f"}, - "f", "KeyF", nsIDOMKeyEvent.DOM_VK_F, "f", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_F, - modifiers:{altKey:1}, chars:"\u0192", unmodifiedChars:"f"}, - "\u0192", "KeyF", nsIDOMKeyEvent.DOM_VK_F, "\u0192", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - // XXX This test starts fullscreen mode. - // yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_F, - // modifiers:{metaKey:1}, chars:"f", unmodifiedChars:"f"}, - // "f", "KeyF", nsIDOMKeyEvent.DOM_VK_F, "f", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_G, - modifiers:{}, chars:"g", unmodifiedChars:"g"}, - "g", "KeyG", nsIDOMKeyEvent.DOM_VK_G, "g", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_G, - modifiers:{shiftKey:1}, chars:"G", unmodifiedChars:"G"}, - "G", "KeyG", nsIDOMKeyEvent.DOM_VK_G, "G", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_G, - modifiers:{ctrlKey:1}, chars:"\u0007", unmodifiedChars:"g"}, - "g", "KeyG", nsIDOMKeyEvent.DOM_VK_G, "g", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_G, - modifiers:{altKey:1}, chars:"\u00A9", unmodifiedChars:"g"}, - "\u00A9", "KeyG", nsIDOMKeyEvent.DOM_VK_G, "\u00A9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_G, - modifiers:{metaKey:1}, chars:"g", unmodifiedChars:"g"}, - "g", "KeyG", nsIDOMKeyEvent.DOM_VK_G, "g", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_H, - modifiers:{}, chars:"h", unmodifiedChars:"h"}, - "h", "KeyH", nsIDOMKeyEvent.DOM_VK_H, "h", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_H, - modifiers:{shiftKey:1}, chars:"H", unmodifiedChars:"H"}, - "H", "KeyH", nsIDOMKeyEvent.DOM_VK_H, "H", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_H, - modifiers:{ctrlKey:1}, chars:"\u0008", unmodifiedChars:"h"}, - "h", "KeyH", nsIDOMKeyEvent.DOM_VK_H, "h", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_H, - modifiers:{altKey:1}, chars:"\u02D9", unmodifiedChars:"h"}, - "\u02D9", "KeyH", nsIDOMKeyEvent.DOM_VK_H, "\u02D9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_H, - modifiers:{metaKey:1}, chars:"h", unmodifiedChars:"h"}, - "h", "KeyH", nsIDOMKeyEvent.DOM_VK_H, "h", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_I, - modifiers:{}, chars:"i", unmodifiedChars:"i"}, - "i", "KeyI", nsIDOMKeyEvent.DOM_VK_I, "i", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_I, - modifiers:{shiftKey:1}, chars:"I", unmodifiedChars:"I"}, - "I", "KeyI", nsIDOMKeyEvent.DOM_VK_I, "I", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_I, - modifiers:{ctrlKey:1}, chars:"\u0009", unmodifiedChars:"i"}, - "i", "KeyI", nsIDOMKeyEvent.DOM_VK_I, "i", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_I, - modifiers:{altKey:1}, chars:"", unmodifiedChars:"i"}, - "Dead", "KeyI", nsIDOMKeyEvent.DOM_VK_I, "\u02C6", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); // dead key - // XXX This test causes memory leak. - // yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_I, - // modifiers:{metaKey:1}, chars:"i", unmodifiedChars:"i"}, - // "i", "KeyI", nsIDOMKeyEvent.DOM_VK_I, "i", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_J, - modifiers:{}, chars:"j", unmodifiedChars:"j"}, - "j", "KeyJ", nsIDOMKeyEvent.DOM_VK_J, "j", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_J, - modifiers:{shiftKey:1}, chars:"J", unmodifiedChars:"J"}, - "J", "KeyJ", nsIDOMKeyEvent.DOM_VK_J, "J", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_J, - modifiers:{ctrlKey:1}, chars:"\u000A", unmodifiedChars:"j"}, - "j", "KeyJ", nsIDOMKeyEvent.DOM_VK_J, "j", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_J, - modifiers:{altKey:1}, chars:"\u2206", unmodifiedChars:"j"}, - "\u2206", "KeyJ", nsIDOMKeyEvent.DOM_VK_J, "\u2206", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_J, - modifiers:{metaKey:1}, chars:"j", unmodifiedChars:"j"}, - "j", "KeyJ", nsIDOMKeyEvent.DOM_VK_J, "j", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_K, - modifiers:{}, chars:"k", unmodifiedChars:"k"}, - "k", "KeyK", nsIDOMKeyEvent.DOM_VK_K, "k", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_K, - modifiers:{shiftKey:1}, chars:"K", unmodifiedChars:"K"}, - "K", "KeyK", nsIDOMKeyEvent.DOM_VK_K, "K", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_K, - modifiers:{ctrlKey:1}, chars:"\u000B", unmodifiedChars:"k"}, - "k", "KeyK", nsIDOMKeyEvent.DOM_VK_K, "k", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_K, - modifiers:{altKey:1}, chars:"\u02DA", unmodifiedChars:"k"}, - "\u02DA", "KeyK", nsIDOMKeyEvent.DOM_VK_K, "\u02DA", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_K, - modifiers:{metaKey:1}, chars:"k", unmodifiedChars:"k"}, - "k", "KeyK", nsIDOMKeyEvent.DOM_VK_K, "k", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_L, - modifiers:{}, chars:"l", unmodifiedChars:"l"}, - "l", "KeyL", nsIDOMKeyEvent.DOM_VK_L, "l", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_L, - modifiers:{shiftKey:1}, chars:"L", unmodifiedChars:"L"}, - "L", "KeyL", nsIDOMKeyEvent.DOM_VK_L, "L", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_L, - modifiers:{ctrlKey:1}, chars:"\u000C", unmodifiedChars:"l"}, - "l", "KeyL", nsIDOMKeyEvent.DOM_VK_L, "l", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_L, - modifiers:{altKey:1}, chars:"\u00AC", unmodifiedChars:"l"}, - "\u00AC", "KeyL", nsIDOMKeyEvent.DOM_VK_L, "\u00AC", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_L, - modifiers:{metaKey:1}, chars:"l", unmodifiedChars:"l"}, - "l", "KeyL", nsIDOMKeyEvent.DOM_VK_L, "l", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_M, - modifiers:{}, chars:"m", unmodifiedChars:"m"}, - "m", "KeyM", nsIDOMKeyEvent.DOM_VK_M, "m", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_M, - modifiers:{shiftKey:1}, chars:"M", unmodifiedChars:"M"}, - "M", "KeyM", nsIDOMKeyEvent.DOM_VK_M, "M", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_M, - modifiers:{ctrlKey:1}, chars:"\u000D", unmodifiedChars:"m"}, - "m", "KeyM", nsIDOMKeyEvent.DOM_VK_M, "m", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_M, - modifiers:{altKey:1}, chars:"\u00B5", unmodifiedChars:"m"}, - "\u00B5", "KeyM", nsIDOMKeyEvent.DOM_VK_M, "\u00B5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_M, - modifiers:{metaKey:1}, chars:"m", unmodifiedChars:"m"}, - "m", "KeyM", nsIDOMKeyEvent.DOM_VK_M, "m", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_N, - modifiers:{}, chars:"n", unmodifiedChars:"n"}, - "n", "KeyN", nsIDOMKeyEvent.DOM_VK_N, "n", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_N, - modifiers:{shiftKey:1}, chars:"N", unmodifiedChars:"N"}, - "N", "KeyN", nsIDOMKeyEvent.DOM_VK_N, "N", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_N, - modifiers:{ctrlKey:1}, chars:"\u000E", unmodifiedChars:"n"}, - "n", "KeyN", nsIDOMKeyEvent.DOM_VK_N, "n", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_N, - modifiers:{altKey:1}, chars:"", unmodifiedChars:"n"}, - "Dead", "KeyN", nsIDOMKeyEvent.DOM_VK_N, "\u02DC", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); // dead key - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_N, - modifiers:{metaKey:1}, chars:"n", unmodifiedChars:"n"}, - "n", "KeyN", nsIDOMKeyEvent.DOM_VK_N, "n", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_O, - modifiers:{}, chars:"o", unmodifiedChars:"o"}, - "o", "KeyO", nsIDOMKeyEvent.DOM_VK_O, "o", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_O, - modifiers:{shiftKey:1}, chars:"O", unmodifiedChars:"O"}, - "O", "KeyO", nsIDOMKeyEvent.DOM_VK_O, "O", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_O, - modifiers:{ctrlKey:1}, chars:"\u000F", unmodifiedChars:"o"}, - "o", "KeyO", nsIDOMKeyEvent.DOM_VK_O, "o", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_O, - modifiers:{altKey:1}, chars:"\u00F8", unmodifiedChars:"o"}, - "\u00F8", "KeyO", nsIDOMKeyEvent.DOM_VK_O, "\u00F8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_O, - modifiers:{metaKey:1}, chars:"o", unmodifiedChars:"o"}, - "o", "KeyO", nsIDOMKeyEvent.DOM_VK_O, "o", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_P, - modifiers:{}, chars:"p", unmodifiedChars:"p"}, - "p", "KeyP", nsIDOMKeyEvent.DOM_VK_P, "p", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_P, - modifiers:{shiftKey:1}, chars:"P", unmodifiedChars:"P"}, - "P", "KeyP", nsIDOMKeyEvent.DOM_VK_P, "P", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_P, - modifiers:{ctrlKey:1}, chars:"\u0010", unmodifiedChars:"p"}, - "p", "KeyP", nsIDOMKeyEvent.DOM_VK_P, "p", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_P, - modifiers:{altKey:1}, chars:"\u03C0", unmodifiedChars:"p"}, - "\u03C0", "KeyP", nsIDOMKeyEvent.DOM_VK_P, "\u03C0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - // XXX This test starts private browsing mode (stopped at the confirmation dialog) - // yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_P, - // modifiers:{metaKey:1}, chars:"p", unmodifiedChars:"p"}, - // "p", "KeyP", nsIDOMKeyEvent.DOM_VK_P, "p", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Q, - modifiers:{}, chars:"q", unmodifiedChars:"q"}, - "q", "KeyQ", nsIDOMKeyEvent.DOM_VK_Q, "q", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Q, - modifiers:{shiftKey:1}, chars:"Q", unmodifiedChars:"Q"}, - "Q", "KeyQ", nsIDOMKeyEvent.DOM_VK_Q, "Q", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Q, - modifiers:{ctrlKey:1}, chars:"\u0011", unmodifiedChars:"q"}, - "q", "KeyQ", nsIDOMKeyEvent.DOM_VK_Q, "q", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Q, - modifiers:{altKey:1}, chars:"\u0153", unmodifiedChars:"q"}, - "\u0153", "KeyQ", nsIDOMKeyEvent.DOM_VK_Q, "\u0153", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Q, - modifiers:{metaKey:1}, chars:"q", unmodifiedChars:"q"}, - "q", "KeyQ", nsIDOMKeyEvent.DOM_VK_Q, "q", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_R, - modifiers:{}, chars:"r", unmodifiedChars:"r"}, - "r", "KeyR", nsIDOMKeyEvent.DOM_VK_R, "r", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_R, - modifiers:{shiftKey:1}, chars:"R", unmodifiedChars:"R"}, - "R", "KeyR", nsIDOMKeyEvent.DOM_VK_R, "R", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_R, - modifiers:{ctrlKey:1}, chars:"\u0012", unmodifiedChars:"r"}, - "r", "KeyR", nsIDOMKeyEvent.DOM_VK_R, "r", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_R, - modifiers:{altKey:1}, chars:"\u00AE", unmodifiedChars:"r"}, - "\u00AE", "KeyR", nsIDOMKeyEvent.DOM_VK_R, "\u00AE", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - // XXX This test makes some tabs and dialogs. - // yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_R, - // modifiers:{metaKey:1}, chars:"r", unmodifiedChars:"r"}, - // "r", "KeyR", nsIDOMKeyEvent.DOM_VK_R, "r", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_S, - modifiers:{}, chars:"s", unmodifiedChars:"s"}, - "s", "KeyS", nsIDOMKeyEvent.DOM_VK_S, "s", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_S, - modifiers:{shiftKey:1}, chars:"S", unmodifiedChars:"S"}, - "S", "KeyS", nsIDOMKeyEvent.DOM_VK_S, "S", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_S, - modifiers:{ctrlKey:1}, chars:"\u0013", unmodifiedChars:"s"}, - "s", "KeyS", nsIDOMKeyEvent.DOM_VK_S, "s", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_S, - modifiers:{altKey:1}, chars:"\u00DF", unmodifiedChars:"s"}, - "\u00DF", "KeyS", nsIDOMKeyEvent.DOM_VK_S, "\u00DF", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_S, - modifiers:{metaKey:1}, chars:"s", unmodifiedChars:"s"}, - "s", "KeyS", nsIDOMKeyEvent.DOM_VK_S, "s", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_T, - modifiers:{}, chars:"t", unmodifiedChars:"t"}, - "t", "KeyT", nsIDOMKeyEvent.DOM_VK_T, "t", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_T, - modifiers:{shiftKey:1}, chars:"T", unmodifiedChars:"T"}, - "T", "KeyT", nsIDOMKeyEvent.DOM_VK_T, "T", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_T, - modifiers:{ctrlKey:1}, chars:"\u0014", unmodifiedChars:"t"}, - "t", "KeyT", nsIDOMKeyEvent.DOM_VK_T, "t", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_T, - modifiers:{altKey:1}, chars:"\u2020", unmodifiedChars:"t"}, - "\u2020", "KeyT", nsIDOMKeyEvent.DOM_VK_T, "\u2020", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_T, - modifiers:{metaKey:1}, chars:"t", unmodifiedChars:"t"}, - "t", "KeyT", nsIDOMKeyEvent.DOM_VK_T, "t", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_U, - modifiers:{}, chars:"u", unmodifiedChars:"u"}, - "u", "KeyU", nsIDOMKeyEvent.DOM_VK_U, "u", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_U, - modifiers:{shiftKey:1}, chars:"U", unmodifiedChars:"U"}, - "U", "KeyU", nsIDOMKeyEvent.DOM_VK_U, "U", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_U, - modifiers:{ctrlKey:1}, chars:"\u0015", unmodifiedChars:"u"}, - "u", "KeyU", nsIDOMKeyEvent.DOM_VK_U, "u", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_U, - modifiers:{altKey:1}, chars:"", unmodifiedChars:"u"}, - "Dead", "KeyU", nsIDOMKeyEvent.DOM_VK_U, "\u00A8", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); // dead key - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_U, - modifiers:{metaKey:1}, chars:"u", unmodifiedChars:"u"}, - "u", "KeyU", nsIDOMKeyEvent.DOM_VK_U, "u", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_V, - modifiers:{}, chars:"v", unmodifiedChars:"v"}, - "v", "KeyV", nsIDOMKeyEvent.DOM_VK_V, "v", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_V, - modifiers:{shiftKey:1}, chars:"V", unmodifiedChars:"V"}, - "V", "KeyV", nsIDOMKeyEvent.DOM_VK_V, "V", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_V, - modifiers:{ctrlKey:1}, chars:"\u0016", unmodifiedChars:"v"}, - "v", "KeyV", nsIDOMKeyEvent.DOM_VK_V, "v", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_V, - modifiers:{altKey:1}, chars:"\u221A", unmodifiedChars:"v"}, - "\u221A", "KeyV", nsIDOMKeyEvent.DOM_VK_V, "\u221A", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_V, - modifiers:{metaKey:1}, chars:"v", unmodifiedChars:"v"}, - "v", "KeyV", nsIDOMKeyEvent.DOM_VK_V, "v", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_W, - modifiers:{}, chars:"w", unmodifiedChars:"w"}, - "w", "KeyW", nsIDOMKeyEvent.DOM_VK_W, "w", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_W, - modifiers:{shiftKey:1}, chars:"W", unmodifiedChars:"W"}, - "W", "KeyW", nsIDOMKeyEvent.DOM_VK_W, "W", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_W, - modifiers:{ctrlKey:1}, chars:"\u0017", unmodifiedChars:"w"}, - "w", "KeyW", nsIDOMKeyEvent.DOM_VK_W, "w", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_W, - modifiers:{altKey:1}, chars:"\u2211", unmodifiedChars:"w"}, - "\u2211", "KeyW", nsIDOMKeyEvent.DOM_VK_W, "\u2211", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_W, - modifiers:{metaKey:1}, chars:"w", unmodifiedChars:"w"}, - "w", "KeyW", nsIDOMKeyEvent.DOM_VK_W, "w", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_X, - modifiers:{}, chars:"x", unmodifiedChars:"x"}, - "x", "KeyX", nsIDOMKeyEvent.DOM_VK_X, "x", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_X, - modifiers:{shiftKey:1}, chars:"X", unmodifiedChars:"X"}, - "X", "KeyX", nsIDOMKeyEvent.DOM_VK_X, "X", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_X, - modifiers:{ctrlKey:1}, chars:"\u0018", unmodifiedChars:"x"}, - "x", "KeyX", nsIDOMKeyEvent.DOM_VK_X, "x", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_X, - modifiers:{altKey:1}, chars:"\u2248", unmodifiedChars:"x"}, - "\u2248", "KeyX", nsIDOMKeyEvent.DOM_VK_X, "\u2248", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_X, - modifiers:{metaKey:1}, chars:"x", unmodifiedChars:"x"}, - "x", "KeyX", nsIDOMKeyEvent.DOM_VK_X, "x", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Y, - modifiers:{}, chars:"y", unmodifiedChars:"y"}, - "y", "KeyY", nsIDOMKeyEvent.DOM_VK_Y, "y", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Y, - modifiers:{shiftKey:1}, chars:"Y", unmodifiedChars:"Y"}, - "Y", "KeyY", nsIDOMKeyEvent.DOM_VK_Y, "Y", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Y, - modifiers:{ctrlKey:1}, chars:"\u0019", unmodifiedChars:"y"}, - "y", "KeyY", nsIDOMKeyEvent.DOM_VK_Y, "y", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Y, - modifiers:{altKey:1}, chars:"\u00A5", unmodifiedChars:"y"}, - "\u00A5", "KeyY", nsIDOMKeyEvent.DOM_VK_Y, "\u00A5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Y, - modifiers:{metaKey:1}, chars:"y", unmodifiedChars:"y"}, - "y", "KeyY", nsIDOMKeyEvent.DOM_VK_Y, "y", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Z, - modifiers:{}, chars:"z", unmodifiedChars:"z"}, - "z", "KeyZ", nsIDOMKeyEvent.DOM_VK_Z, "z", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Z, - modifiers:{shiftKey:1}, chars:"Z", unmodifiedChars:"Z"}, - "Z", "KeyZ", nsIDOMKeyEvent.DOM_VK_Z, "Z", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Z, - modifiers:{ctrlKey:1}, chars:"\u001A", unmodifiedChars:"z"}, - "z", "KeyZ", nsIDOMKeyEvent.DOM_VK_Z, "z", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Z, - modifiers:{altKey:1}, chars:"\u03A9", unmodifiedChars:"z"}, - "\u03A9", "KeyZ", nsIDOMKeyEvent.DOM_VK_Z, "\u03A9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Z, - modifiers:{metaKey:1}, chars:"z", unmodifiedChars:"z"}, - "z", "KeyZ", nsIDOMKeyEvent.DOM_VK_Z, "z", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // numeric - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_1, - modifiers:{}, chars:"1", unmodifiedChars:"1"}, - "1", "Digit1", nsIDOMKeyEvent.DOM_VK_1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_1, - modifiers:{shiftKey:1}, chars:"!", unmodifiedChars:"!"}, - "!", "Digit1", nsIDOMKeyEvent.DOM_VK_1, "!", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_1, - modifiers:{ctrlKey:1}, chars:"1", unmodifiedChars:"1"}, - "1", "Digit1", nsIDOMKeyEvent.DOM_VK_1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_1, - modifiers:{altKey:1}, chars:"\u00A1", unmodifiedChars:"1"}, - "\u00A1", "Digit1", nsIDOMKeyEvent.DOM_VK_1, "\u00A1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_1, - modifiers:{metaKey:1}, chars:"1", unmodifiedChars:"1"}, - "1", "Digit1", nsIDOMKeyEvent.DOM_VK_1, "1", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_2, - modifiers:{}, chars:"2", unmodifiedChars:"2"}, - "2", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_2, - modifiers:{shiftKey:1}, chars:"@", unmodifiedChars:"@"}, - "@", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "@", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_2, - modifiers:{ctrlKey:1}, chars:"2", unmodifiedChars:"2"}, - "2", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_2, - modifiers:{altKey:1}, chars:"\u00A1", unmodifiedChars:"2"}, - "\u00A1", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "\u00A1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_2, - modifiers:{metaKey:1}, chars:"2", unmodifiedChars:"2"}, - "2", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "2", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_3, - modifiers:{}, chars:"3", unmodifiedChars:"3"}, - "3", "Digit3", nsIDOMKeyEvent.DOM_VK_3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_3, - modifiers:{shiftKey:1}, chars:"#", unmodifiedChars:"#"}, - "#", "Digit3", nsIDOMKeyEvent.DOM_VK_3, "#", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_3, - modifiers:{ctrlKey:1}, chars:"3", unmodifiedChars:"3"}, - "3", "Digit3", nsIDOMKeyEvent.DOM_VK_3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_3, - modifiers:{altKey:1}, chars:"\u00A3", unmodifiedChars:"3"}, - "\u00A3", "Digit3", nsIDOMKeyEvent.DOM_VK_3, "\u00A3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_3, - modifiers:{metaKey:1}, chars:"3", unmodifiedChars:"3"}, - "3", "Digit3", nsIDOMKeyEvent.DOM_VK_3, "3", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_4, - modifiers:{}, chars:"4", unmodifiedChars:"4"}, - "4", "Digit4", nsIDOMKeyEvent.DOM_VK_4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_4, - modifiers:{shiftKey:1}, chars:"$", unmodifiedChars:"$"}, - "$", "Digit4", nsIDOMKeyEvent.DOM_VK_4, "$", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_4, - modifiers:{ctrlKey:1}, chars:"4", unmodifiedChars:"4"}, - "4", "Digit4", nsIDOMKeyEvent.DOM_VK_4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_4, - modifiers:{altKey:1}, chars:"\u00A2", unmodifiedChars:"4"}, - "\u00A2", "Digit4", nsIDOMKeyEvent.DOM_VK_4, "\u00A2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_4, - modifiers:{metaKey:1}, chars:"4", unmodifiedChars:"4"}, - "4", "Digit4", nsIDOMKeyEvent.DOM_VK_4, "4", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_5, - modifiers:{}, chars:"5", unmodifiedChars:"5"}, - "5", "Digit5", nsIDOMKeyEvent.DOM_VK_5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_5, - modifiers:{shiftKey:1}, chars:"%", unmodifiedChars:"%"}, - "%", "Digit5", nsIDOMKeyEvent.DOM_VK_5, "%", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_5, - modifiers:{ctrlKey:1}, chars:"5", unmodifiedChars:"5"}, - "5", "Digit5", nsIDOMKeyEvent.DOM_VK_5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_5, - modifiers:{altKey:1}, chars:"\u221E", unmodifiedChars:"5"}, - "\u221E", "Digit5", nsIDOMKeyEvent.DOM_VK_5, "\u221E", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_5, - modifiers:{metaKey:1}, chars:"5", unmodifiedChars:"5"}, - "5", "Digit5", nsIDOMKeyEvent.DOM_VK_5, "5", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_6, - modifiers:{}, chars:"6", unmodifiedChars:"6"}, - "6", "Digit6", nsIDOMKeyEvent.DOM_VK_6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_6, - modifiers:{shiftKey:1}, chars:"^", unmodifiedChars:"^"}, - "^", "Digit6", nsIDOMKeyEvent.DOM_VK_6, "^", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_6, - modifiers:{ctrlKey:1}, chars:"6", unmodifiedChars:"6"}, - "6", "Digit6", nsIDOMKeyEvent.DOM_VK_6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_6, - modifiers:{altKey:1}, chars:"\u00A7", unmodifiedChars:"6"}, - "\u00A7", "Digit6", nsIDOMKeyEvent.DOM_VK_6, "\u00A7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_6, - modifiers:{metaKey:1}, chars:"6", unmodifiedChars:"6"}, - "6", "Digit6", nsIDOMKeyEvent.DOM_VK_6, "6", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_7, - modifiers:{}, chars:"7", unmodifiedChars:"7"}, - "7", "Digit7", nsIDOMKeyEvent.DOM_VK_7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_7, - modifiers:{shiftKey:1}, chars:"&", unmodifiedChars:"&"}, - "&", "Digit7", nsIDOMKeyEvent.DOM_VK_7, "&", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_7, - modifiers:{ctrlKey:1}, chars:"7", unmodifiedChars:"7"}, - "7", "Digit7", nsIDOMKeyEvent.DOM_VK_7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_7, - modifiers:{altKey:1}, chars:"\u00B6", unmodifiedChars:"7"}, - "\u00B6", "Digit7", nsIDOMKeyEvent.DOM_VK_7, "\u00B6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_7, - modifiers:{metaKey:1}, chars:"7", unmodifiedChars:"7"}, - "7", "Digit7", nsIDOMKeyEvent.DOM_VK_7, "7", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_8, - modifiers:{}, chars:"8", unmodifiedChars:"8"}, - "8", "Digit8", nsIDOMKeyEvent.DOM_VK_8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_8, - modifiers:{shiftKey:1}, chars:"*", unmodifiedChars:"*"}, - "*", "Digit8", nsIDOMKeyEvent.DOM_VK_8, "*", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_8, - modifiers:{ctrlKey:1}, chars:"8", unmodifiedChars:"8"}, - "8", "Digit8", nsIDOMKeyEvent.DOM_VK_8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_8, - modifiers:{altKey:1}, chars:"\u2022", unmodifiedChars:"8"}, - "\u2022", "Digit8", nsIDOMKeyEvent.DOM_VK_8, "\u2022", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_8, - modifiers:{metaKey:1}, chars:"8", unmodifiedChars:"8"}, - "8", "Digit8", nsIDOMKeyEvent.DOM_VK_8, "8", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_9, - modifiers:{}, chars:"9", unmodifiedChars:"9"}, - "9", "Digit9", nsIDOMKeyEvent.DOM_VK_9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_9, - modifiers:{shiftKey:1}, chars:"(", unmodifiedChars:"("}, - "(", "Digit9", nsIDOMKeyEvent.DOM_VK_9, "(", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_9, - modifiers:{ctrlKey:1}, chars:"9", unmodifiedChars:"9"}, - "9", "Digit9", nsIDOMKeyEvent.DOM_VK_9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_9, - modifiers:{altKey:1}, chars:"\u00AA", unmodifiedChars:"9"}, - "\u00AA", "Digit9", nsIDOMKeyEvent.DOM_VK_9, "\u00AA", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_9, - modifiers:{metaKey:1}, chars:"9", unmodifiedChars:"9"}, - "9", "Digit9", nsIDOMKeyEvent.DOM_VK_9, "9", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_0, - modifiers:{}, chars:"0", unmodifiedChars:"0"}, - "0", "Digit0", nsIDOMKeyEvent.DOM_VK_0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_0, - modifiers:{shiftKey:1}, chars:")", unmodifiedChars:")"}, - ")", "Digit0", nsIDOMKeyEvent.DOM_VK_0, ")", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_0, - modifiers:{ctrlKey:1}, chars:"0", unmodifiedChars:"0"}, - "0", "Digit0", nsIDOMKeyEvent.DOM_VK_0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_0, - modifiers:{altKey:1}, chars:"\u00BA", unmodifiedChars:"0"}, - "\u00BA", "Digit0", nsIDOMKeyEvent.DOM_VK_0, "\u00BA", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_0, - modifiers:{metaKey:1}, chars:"0", unmodifiedChars:"0"}, - "0", "Digit0", nsIDOMKeyEvent.DOM_VK_0, "0", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // other chracters - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Grave, - modifiers:{}, chars:"`", unmodifiedChars:"`"}, - "`", "Backquote", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "`", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Grave, - modifiers:{shiftKey:1}, chars:"~", unmodifiedChars:"~"}, - "~", "Backquote", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "~", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Grave, - modifiers:{ctrlKey:1}, chars:"`", unmodifiedChars:"`"}, - "`", "Backquote", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "`", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Grave, - modifiers:{altKey:1}, chars:"", unmodifiedChars:"`"}, - "Dead", "Backquote", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "`", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); // dead key - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Grave, - modifiers:{metaKey:1}, chars:"`", unmodifiedChars:"`"}, - "`", "Backquote", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "`", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Minus, - modifiers:{}, chars:"-", unmodifiedChars:"-"}, - "-", "Minus", nsIDOMKeyEvent.DOM_VK_HYPHEN_MINUS, "-", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Minus, - modifiers:{shiftKey:1}, chars:"_", unmodifiedChars:"_"}, - "_", "Minus", nsIDOMKeyEvent.DOM_VK_HYPHEN_MINUS, "_", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - // TODO: - // yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Minus, - // modifiers:{ctrlKey:1}, chars:"\u001F", unmodifiedChars:"-"}, - // "-", "Minus", nsIDOMKeyEvent.DOM_VK_HYPHEN_MINUS, "-", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Minus, - modifiers:{altKey:1}, chars:"\u2013", unmodifiedChars:"-"}, - "\u2013", "Minus", nsIDOMKeyEvent.DOM_VK_HYPHEN_MINUS, "\u2013", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Minus, - modifiers:{metaKey:1}, chars:"-", unmodifiedChars:"-"}, - "-", "Minus", nsIDOMKeyEvent.DOM_VK_HYPHEN_MINUS, "-", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Equal, - modifiers:{}, chars:"=", unmodifiedChars:"="}, - "=", "Equal", nsIDOMKeyEvent.DOM_VK_EQUALS, "=", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Equal, - modifiers:{shiftKey:1}, chars:"+", unmodifiedChars:"+"}, - "+", "Equal", nsIDOMKeyEvent.DOM_VK_EQUALS, "+", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Equal, - modifiers:{ctrlKey:1}, chars:"=", unmodifiedChars:"="}, - "=", "Equal", nsIDOMKeyEvent.DOM_VK_EQUALS, "=", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Equal, - modifiers:{altKey:1}, chars:"\u2260", unmodifiedChars:"="}, - "\u2260", "Equal", nsIDOMKeyEvent.DOM_VK_EQUALS, "\u2260", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Equal, - modifiers:{metaKey:1}, chars:"=", unmodifiedChars:"="}, - "=", "Equal", nsIDOMKeyEvent.DOM_VK_EQUALS, "=", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_LeftBracket, - modifiers:{}, chars:"[", unmodifiedChars:"["}, - "[", "BracketLeft", nsIDOMKeyEvent.DOM_VK_OPEN_BRACKET, "[", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_LeftBracket, - modifiers:{shiftKey:1}, chars:"{", unmodifiedChars:"{"}, - "{", "BracketLeft", nsIDOMKeyEvent.DOM_VK_OPEN_BRACKET, "{", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - // TODO: - // yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_LeftBracket, - // modifiers:{ctrlKey:1}, chars:"\u001B", unmodifiedChars:"["}, - // "[", "LeftBracket", nsIDOMKeyEvent.DOM_VK_OPEN_BRACKET, "[", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_LeftBracket, - modifiers:{altKey:1}, chars:"\u201C", unmodifiedChars:"["}, - "\u201C", "BracketLeft", nsIDOMKeyEvent.DOM_VK_OPEN_BRACKET, "\u201C", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_LeftBracket, - modifiers:{metaKey:1}, chars:"[", unmodifiedChars:"["}, - "[", "BracketLeft", nsIDOMKeyEvent.DOM_VK_OPEN_BRACKET, "[", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_RightBracket, - modifiers:{}, chars:"]", unmodifiedChars:"]"}, - "]", "BracketRight", nsIDOMKeyEvent.DOM_VK_CLOSE_BRACKET, "]", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_RightBracket, - modifiers:{shiftKey:1}, chars:"}", unmodifiedChars:"}"}, - "}", "BracketRight", nsIDOMKeyEvent.DOM_VK_CLOSE_BRACKET, "}", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - // TODO: - // yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_RightBracket, - // modifiers:{ctrlKey:1}, chars:"\u001D", unmodifiedChars:"]"}, - // "]", "BracketRight", nsIDOMKeyEvent.DOM_VK_CLOSE_BRACKET, "]", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_RightBracket, - modifiers:{altKey:1}, chars:"\u2018", unmodifiedChars:"]"}, - "\u2018", "BracketRight", nsIDOMKeyEvent.DOM_VK_CLOSE_BRACKET, "\u2018", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_RightBracket, - modifiers:{metaKey:1}, chars:"]", unmodifiedChars:"]"}, - "]", "BracketRight", nsIDOMKeyEvent.DOM_VK_CLOSE_BRACKET, "]", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Backslash, - modifiers:{}, chars:"\\", unmodifiedChars:"\\"}, - "\\", "Backslash", nsIDOMKeyEvent.DOM_VK_BACK_SLASH, "\\", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Backslash, - modifiers:{shiftKey:1}, chars:"|", unmodifiedChars:"|"}, - "|", "Backslash", nsIDOMKeyEvent.DOM_VK_BACK_SLASH, "|", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - // TODO: - // yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Backslash, - // modifiers:{ctrlKey:1}, chars:"\u001C", unmodifiedChars:"\\"}, - // "\\", "Backslash", nsIDOMKeyEvent.DOM_VK_BACK_SLASH, "\\", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Backslash, - modifiers:{altKey:1}, chars:"\u00AB", unmodifiedChars:"\\"}, - "\u00AB", "Backslash", nsIDOMKeyEvent.DOM_VK_BACK_SLASH, "\u00AB", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Backslash, - modifiers:{metaKey:1}, chars:"\\", unmodifiedChars:"\\"}, - "\\", "Backslash", nsIDOMKeyEvent.DOM_VK_BACK_SLASH, "\\", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Semicolon, - modifiers:{}, chars:";", unmodifiedChars:";"}, - ";", "Semicolon", nsIDOMKeyEvent.DOM_VK_SEMICOLON, ";", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Semicolon, - modifiers:{shiftKey:1}, chars:":", unmodifiedChars:":"}, - ":", "Semicolon", nsIDOMKeyEvent.DOM_VK_SEMICOLON, ":", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Semicolon, - modifiers:{ctrlKey:1}, chars:";", unmodifiedChars:";"}, - ";", "Semicolon", nsIDOMKeyEvent.DOM_VK_SEMICOLON, ";", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Semicolon, - modifiers:{altKey:1}, chars:"\u2026", unmodifiedChars:";"}, - "\u2026", "Semicolon", nsIDOMKeyEvent.DOM_VK_SEMICOLON, "\u2026", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Semicolon, - modifiers:{metaKey:1}, chars:";", unmodifiedChars:";"}, - ";", "Semicolon", nsIDOMKeyEvent.DOM_VK_SEMICOLON, ";", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Quote, - modifiers:{}, chars:"'", unmodifiedChars:"'"}, - "'", "Quote", nsIDOMKeyEvent.DOM_VK_QUOTE, "'", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Quote, - modifiers:{shiftKey:1}, chars:"\"", unmodifiedChars:"\""}, - "\"", "Quote", nsIDOMKeyEvent.DOM_VK_QUOTE, "\"", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Quote, - modifiers:{ctrlKey:1}, chars:"'", unmodifiedChars:"'"}, - "'", "Quote", nsIDOMKeyEvent.DOM_VK_QUOTE, "'", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Quote, - modifiers:{altKey:1}, chars:"\u00E6", unmodifiedChars:"'"}, - "\u00E6", "Quote", nsIDOMKeyEvent.DOM_VK_QUOTE, "\u00E6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Quote, - modifiers:{metaKey:1}, chars:"'", unmodifiedChars:"'"}, - "'", "Quote", nsIDOMKeyEvent.DOM_VK_QUOTE, "'", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Comma, - modifiers:{}, chars:",", unmodifiedChars:","}, - ",", "Comma", nsIDOMKeyEvent.DOM_VK_COMMA, ",", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Comma, - modifiers:{shiftKey:1}, chars:"<", unmodifiedChars:"<"}, - "<", "Comma", nsIDOMKeyEvent.DOM_VK_COMMA, "<", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Comma, - modifiers:{ctrlKey:1}, chars:",", unmodifiedChars:","}, - ",", "Comma", nsIDOMKeyEvent.DOM_VK_COMMA, ",", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Comma, - modifiers:{altKey:1}, chars:"\u2264", unmodifiedChars:","}, - "\u2264", "Comma", nsIDOMKeyEvent.DOM_VK_COMMA, "\u2264", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Comma, - modifiers:{metaKey:1}, chars:",", unmodifiedChars:","}, - ",", "Comma", nsIDOMKeyEvent.DOM_VK_COMMA, ",", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Period, - modifiers:{}, chars:".", unmodifiedChars:"."}, - ".", "Period", nsIDOMKeyEvent.DOM_VK_PERIOD, ".", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Period, - modifiers:{shiftKey:1}, chars:">", unmodifiedChars:">"}, - ">", "Period", nsIDOMKeyEvent.DOM_VK_PERIOD, ">", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Period, - modifiers:{ctrlKey:1}, chars:".", unmodifiedChars:"."}, - ".", "Period", nsIDOMKeyEvent.DOM_VK_PERIOD, ".", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Period, - modifiers:{altKey:1}, chars:"\u2265", unmodifiedChars:"."}, - "\u2265", "Period", nsIDOMKeyEvent.DOM_VK_PERIOD, "\u2265", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Period, - modifiers:{metaKey:1}, chars:".", unmodifiedChars:"."}, - ".", "Period", nsIDOMKeyEvent.DOM_VK_PERIOD, ".", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Slash, - modifiers:{}, chars:"/", unmodifiedChars:"/"}, - "/", "Slash", nsIDOMKeyEvent.DOM_VK_SLASH, "/", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Slash, - modifiers:{shiftKey:1}, chars:"?", unmodifiedChars:"?"}, - "?", "Slash", nsIDOMKeyEvent.DOM_VK_SLASH, "?", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Slash, - modifiers:{ctrlKey:1}, chars:"/", unmodifiedChars:"/"}, - "/", "Slash", nsIDOMKeyEvent.DOM_VK_SLASH, "/", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Slash, - modifiers:{altKey:1}, chars:"\u00F7", unmodifiedChars:"/"}, - "\u00F7", "Slash", nsIDOMKeyEvent.DOM_VK_SLASH, "\u00F7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Slash, - modifiers:{metaKey:1}, chars:"/", unmodifiedChars:"/"}, - "/", "Slash", nsIDOMKeyEvent.DOM_VK_SLASH, "/", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // numpad - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad1, - modifiers:{numericKeyPadKey:1}, chars:"1", unmodifiedChars:"1"}, - "1", "Numpad1", nsIDOMKeyEvent.DOM_VK_NUMPAD1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad1, - modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"1", unmodifiedChars:"1"}, - "1", "Numpad1", nsIDOMKeyEvent.DOM_VK_NUMPAD1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad1, - modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"1", unmodifiedChars:"1"}, - "1", "Numpad1", nsIDOMKeyEvent.DOM_VK_NUMPAD1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad1, - modifiers:{numericKeyPadKey:1, altKey:1}, chars:"1", unmodifiedChars:"1"}, - "1", "Numpad1", nsIDOMKeyEvent.DOM_VK_NUMPAD1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad1, - modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"1", unmodifiedChars:"1"}, - "1", "Numpad1", nsIDOMKeyEvent.DOM_VK_NUMPAD1, "1", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad2, - modifiers:{numericKeyPadKey:1}, chars:"2", unmodifiedChars:"2"}, - "2", "Numpad2", nsIDOMKeyEvent.DOM_VK_NUMPAD2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad2, - modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"2", unmodifiedChars:"2"}, - "2", "Numpad2", nsIDOMKeyEvent.DOM_VK_NUMPAD2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad2, - modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"2", unmodifiedChars:"2"}, - "2", "Numpad2", nsIDOMKeyEvent.DOM_VK_NUMPAD2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad2, - modifiers:{numericKeyPadKey:1, altKey:1}, chars:"2", unmodifiedChars:"2"}, - "2", "Numpad2", nsIDOMKeyEvent.DOM_VK_NUMPAD2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad2, - modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"2", unmodifiedChars:"2"}, - "2", "Numpad2", nsIDOMKeyEvent.DOM_VK_NUMPAD2, "2", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad3, - modifiers:{numericKeyPadKey:1}, chars:"3", unmodifiedChars:"3"}, - "3", "Numpad3", nsIDOMKeyEvent.DOM_VK_NUMPAD3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad3, - modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"3", unmodifiedChars:"3"}, - "3", "Numpad3", nsIDOMKeyEvent.DOM_VK_NUMPAD3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad3, - modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"3", unmodifiedChars:"3"}, - "3", "Numpad3", nsIDOMKeyEvent.DOM_VK_NUMPAD3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad3, - modifiers:{numericKeyPadKey:1, altKey:1}, chars:"3", unmodifiedChars:"3"}, - "3", "Numpad3", nsIDOMKeyEvent.DOM_VK_NUMPAD3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad3, - modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"3", unmodifiedChars:"3"}, - "3", "Numpad3", nsIDOMKeyEvent.DOM_VK_NUMPAD3, "3", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad4, - modifiers:{numericKeyPadKey:1}, chars:"4", unmodifiedChars:"4"}, - "4", "Numpad4", nsIDOMKeyEvent.DOM_VK_NUMPAD4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad4, - modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"4", unmodifiedChars:"4"}, - "4", "Numpad4", nsIDOMKeyEvent.DOM_VK_NUMPAD4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad4, - modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"4", unmodifiedChars:"4"}, - "4", "Numpad4", nsIDOMKeyEvent.DOM_VK_NUMPAD4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad4, - modifiers:{numericKeyPadKey:1, altKey:1}, chars:"4", unmodifiedChars:"4"}, - "4", "Numpad4", nsIDOMKeyEvent.DOM_VK_NUMPAD4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad4, - modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"4", unmodifiedChars:"4"}, - "4", "Numpad4", nsIDOMKeyEvent.DOM_VK_NUMPAD4, "4", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad5, - modifiers:{numericKeyPadKey:1}, chars:"5", unmodifiedChars:"5"}, - "5", "Numpad5", nsIDOMKeyEvent.DOM_VK_NUMPAD5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad5, - modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"5", unmodifiedChars:"5"}, - "5", "Numpad5", nsIDOMKeyEvent.DOM_VK_NUMPAD5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad5, - modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"5", unmodifiedChars:"5"}, - "5", "Numpad5", nsIDOMKeyEvent.DOM_VK_NUMPAD5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad5, - modifiers:{numericKeyPadKey:1, altKey:1}, chars:"5", unmodifiedChars:"5"}, - "5", "Numpad5", nsIDOMKeyEvent.DOM_VK_NUMPAD5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad5, - modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"5", unmodifiedChars:"5"}, - "5", "Numpad5", nsIDOMKeyEvent.DOM_VK_NUMPAD5, "5", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad6, - modifiers:{numericKeyPadKey:1}, chars:"6", unmodifiedChars:"6"}, - "6", "Numpad6", nsIDOMKeyEvent.DOM_VK_NUMPAD6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad6, - modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"6", unmodifiedChars:"6"}, - "6", "Numpad6", nsIDOMKeyEvent.DOM_VK_NUMPAD6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad6, - modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"6", unmodifiedChars:"6"}, - "6", "Numpad6", nsIDOMKeyEvent.DOM_VK_NUMPAD6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad6, - modifiers:{numericKeyPadKey:1, altKey:1}, chars:"6", unmodifiedChars:"6"}, - "6", "Numpad6", nsIDOMKeyEvent.DOM_VK_NUMPAD6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad6, - modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"6", unmodifiedChars:"6"}, - "6", "Numpad6", nsIDOMKeyEvent.DOM_VK_NUMPAD6, "6", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad7, - modifiers:{numericKeyPadKey:1}, chars:"7", unmodifiedChars:"7"}, - "7", "Numpad7", nsIDOMKeyEvent.DOM_VK_NUMPAD7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad7, - modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"7", unmodifiedChars:"7"}, - "7", "Numpad7", nsIDOMKeyEvent.DOM_VK_NUMPAD7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad7, - modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"7", unmodifiedChars:"7"}, - "7", "Numpad7", nsIDOMKeyEvent.DOM_VK_NUMPAD7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad7, - modifiers:{numericKeyPadKey:1, altKey:1}, chars:"7", unmodifiedChars:"7"}, - "7", "Numpad7", nsIDOMKeyEvent.DOM_VK_NUMPAD7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad7, - modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"7", unmodifiedChars:"7"}, - "7", "Numpad7", nsIDOMKeyEvent.DOM_VK_NUMPAD7, "7", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad8, - modifiers:{numericKeyPadKey:1}, chars:"8", unmodifiedChars:"8"}, - "8", "Numpad8", nsIDOMKeyEvent.DOM_VK_NUMPAD8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad8, - modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"8", unmodifiedChars:"8"}, - "8", "Numpad8", nsIDOMKeyEvent.DOM_VK_NUMPAD8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad8, - modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"8", unmodifiedChars:"8"}, - "8", "Numpad8", nsIDOMKeyEvent.DOM_VK_NUMPAD8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad8, - modifiers:{numericKeyPadKey:1, altKey:1}, chars:"8", unmodifiedChars:"8"}, - "8", "Numpad8", nsIDOMKeyEvent.DOM_VK_NUMPAD8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad8, - modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"8", unmodifiedChars:"8"}, - "8", "Numpad8", nsIDOMKeyEvent.DOM_VK_NUMPAD8, "8", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad9, - modifiers:{numericKeyPadKey:1}, chars:"9", unmodifiedChars:"9"}, - "9", "Numpad9", nsIDOMKeyEvent.DOM_VK_NUMPAD9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad9, - modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"9", unmodifiedChars:"9"}, - "9", "Numpad9", nsIDOMKeyEvent.DOM_VK_NUMPAD9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad9, - modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"9", unmodifiedChars:"9"}, - "9", "Numpad9", nsIDOMKeyEvent.DOM_VK_NUMPAD9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad9, - modifiers:{numericKeyPadKey:1, altKey:1}, chars:"9", unmodifiedChars:"9"}, - "9", "Numpad9", nsIDOMKeyEvent.DOM_VK_NUMPAD9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad9, - modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"9", unmodifiedChars:"9"}, - "9", "Numpad9", nsIDOMKeyEvent.DOM_VK_NUMPAD9, "9", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad0, - modifiers:{numericKeyPadKey:1}, chars:"0", unmodifiedChars:"0"}, - "0", "Numpad0", nsIDOMKeyEvent.DOM_VK_NUMPAD0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad0, - modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"0", unmodifiedChars:"0"}, - "0", "Numpad0", nsIDOMKeyEvent.DOM_VK_NUMPAD0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad0, - modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"0", unmodifiedChars:"0"}, - "0", "Numpad0", nsIDOMKeyEvent.DOM_VK_NUMPAD0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad0, - modifiers:{numericKeyPadKey:1, altKey:1}, chars:"0", unmodifiedChars:"0"}, - "0", "Numpad0", nsIDOMKeyEvent.DOM_VK_NUMPAD0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Keypad0, - modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"0", unmodifiedChars:"0"}, - "0", "Numpad0", nsIDOMKeyEvent.DOM_VK_NUMPAD0, "0", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadEquals, - modifiers:{numericKeyPadKey:1}, chars:"=", unmodifiedChars:"="}, - "=", "NumpadEqual", nsIDOMKeyEvent.DOM_VK_EQUALS, "=", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadEquals, - modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"=", unmodifiedChars:"="}, - "=", "NumpadEqual", nsIDOMKeyEvent.DOM_VK_EQUALS, "=", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadEquals, - modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"=", unmodifiedChars:"="}, - "=", "NumpadEqual", nsIDOMKeyEvent.DOM_VK_EQUALS, "=", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadEquals, - modifiers:{numericKeyPadKey:1, altKey:1}, chars:"=", unmodifiedChars:"="}, - "=", "NumpadEqual", nsIDOMKeyEvent.DOM_VK_EQUALS, "=", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadEquals, - modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"=", unmodifiedChars:"="}, - "=", "NumpadEqual", nsIDOMKeyEvent.DOM_VK_EQUALS, "=", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadDivide, - modifiers:{numericKeyPadKey:1}, chars:"/", unmodifiedChars:"/"}, - "/", "NumpadDivide", nsIDOMKeyEvent.DOM_VK_DIVIDE, "/", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadDivide, - modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"/", unmodifiedChars:"/"}, - "/", "NumpadDivide", nsIDOMKeyEvent.DOM_VK_DIVIDE, "/", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadDivide, - modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"/", unmodifiedChars:"/"}, - "/", "NumpadDivide", nsIDOMKeyEvent.DOM_VK_DIVIDE, "/", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadDivide, - modifiers:{numericKeyPadKey:1, altKey:1}, chars:"/", unmodifiedChars:"/"}, - "/", "NumpadDivide", nsIDOMKeyEvent.DOM_VK_DIVIDE, "/", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadDivide, - modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"/", unmodifiedChars:"/"}, - "/", "NumpadDivide", nsIDOMKeyEvent.DOM_VK_DIVIDE, "/", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadMultiply, - modifiers:{numericKeyPadKey:1}, chars:"*", unmodifiedChars:"*"}, - "*", "NumpadMultiply", nsIDOMKeyEvent.DOM_VK_MULTIPLY, "*", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadMultiply, - modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"*", unmodifiedChars:"*"}, - "*", "NumpadMultiply", nsIDOMKeyEvent.DOM_VK_MULTIPLY, "*", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadMultiply, - modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"*", unmodifiedChars:"*"}, - "*", "NumpadMultiply", nsIDOMKeyEvent.DOM_VK_MULTIPLY, "*", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadMultiply, - modifiers:{numericKeyPadKey:1, altKey:1}, chars:"*", unmodifiedChars:"*"}, - "*", "NumpadMultiply", nsIDOMKeyEvent.DOM_VK_MULTIPLY, "*", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadMultiply, - modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"*", unmodifiedChars:"*"}, - "*", "NumpadMultiply", nsIDOMKeyEvent.DOM_VK_MULTIPLY, "*", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadMinus, - modifiers:{numericKeyPadKey:1}, chars:"-", unmodifiedChars:"-"}, - "-", "NumpadSubtract", nsIDOMKeyEvent.DOM_VK_SUBTRACT, "-", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadMinus, - modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"-", unmodifiedChars:"-"}, - "-", "NumpadSubtract", nsIDOMKeyEvent.DOM_VK_SUBTRACT, "-", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadMinus, - modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"-", unmodifiedChars:"-"}, - "-", "NumpadSubtract", nsIDOMKeyEvent.DOM_VK_SUBTRACT, "-", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadMinus, - modifiers:{numericKeyPadKey:1, altKey:1}, chars:"-", unmodifiedChars:"-"}, - "-", "NumpadSubtract", nsIDOMKeyEvent.DOM_VK_SUBTRACT, "-", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadMinus, - modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"-", unmodifiedChars:"-"}, - "-", "NumpadSubtract", nsIDOMKeyEvent.DOM_VK_SUBTRACT, "-", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadPlus, - modifiers:{numericKeyPadKey:1}, chars:"+", unmodifiedChars:"+"}, - "+", "NumpadAdd", nsIDOMKeyEvent.DOM_VK_ADD, "+", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadPlus, - modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"+", unmodifiedChars:"+"}, - "+", "NumpadAdd", nsIDOMKeyEvent.DOM_VK_ADD, "+", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadPlus, - modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"+", unmodifiedChars:"+"}, - "+", "NumpadAdd", nsIDOMKeyEvent.DOM_VK_ADD, "+", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadPlus, - modifiers:{numericKeyPadKey:1, altKey:1}, chars:"+", unmodifiedChars:"+"}, - "+", "NumpadAdd", nsIDOMKeyEvent.DOM_VK_ADD, "+", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadPlus, - modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"+", unmodifiedChars:"+"}, - "+", "NumpadAdd", nsIDOMKeyEvent.DOM_VK_ADD, "+", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadEnter, - modifiers:{numericKeyPadKey:1}, chars:"\u0003", unmodifiedChars:"\u0003"}, - "Enter", "NumpadEnter", nsIDOMKeyEvent.DOM_VK_RETURN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadEnter, - modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:"\u0003", unmodifiedChars:"\u0003"}, - "Enter", "NumpadEnter", nsIDOMKeyEvent.DOM_VK_RETURN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadEnter, - modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:"\u0003", unmodifiedChars:"\u0003"}, - "Enter", "NumpadEnter", nsIDOMKeyEvent.DOM_VK_RETURN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadEnter, - modifiers:{numericKeyPadKey:1, altKey:1}, chars:"\u0003", unmodifiedChars:"\u0003"}, - "Enter", "NumpadEnter", nsIDOMKeyEvent.DOM_VK_RETURN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_KeypadEnter, - modifiers:{numericKeyPadKey:1, metaKey:1}, chars:"\u0003", unmodifiedChars:"\u0003"}, - "Enter", "NumpadEnter", nsIDOMKeyEvent.DOM_VK_RETURN, "", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_JIS_KeypadComma, - modifiers:{numericKeyPadKey:1, shiftKey:1}, chars:",", unmodifiedChars:","}, - ",", "NumpadComma", nsIDOMKeyEvent.DOM_VK_SEPARATOR, ",", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_JIS_KeypadComma, - modifiers:{numericKeyPadKey:1, ctrlKey:1}, chars:",", unmodifiedChars:","}, - ",", "NumpadComma", nsIDOMKeyEvent.DOM_VK_SEPARATOR, ",", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_JIS_KeypadComma, - modifiers:{numericKeyPadKey:1, altKey:1}, chars:",", unmodifiedChars:","}, - ",", "NumpadComma", nsIDOMKeyEvent.DOM_VK_SEPARATOR, ",", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_JIS_KeypadComma, - modifiers:{numericKeyPadKey:1, metaKey:1}, chars:",", unmodifiedChars:","}, - ",", "NumpadComma", nsIDOMKeyEvent.DOM_VK_SEPARATOR, ",", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - - // French, numeric - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_1, - modifiers:{}, chars:"&", unmodifiedChars:"&"}, - "&", "Digit1", nsIDOMKeyEvent.DOM_VK_1, "&", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_1, - modifiers:{shiftKey:1}, chars:"1", unmodifiedChars:"1"}, - "1", "Digit1", nsIDOMKeyEvent.DOM_VK_1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_1, - modifiers:{ctrlKey:1}, chars:"1", unmodifiedChars:"&"}, - "1", "Digit1", nsIDOMKeyEvent.DOM_VK_1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_1, - modifiers:{metaKey:1}, chars:"&", unmodifiedChars:"&"}, - "&", "Digit1", nsIDOMKeyEvent.DOM_VK_1, "&", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_1, - modifiers:{metaKey:1, shiftKey:1}, chars:"1", unmodifiedChars:"1"}, - "1", "Digit1", nsIDOMKeyEvent.DOM_VK_1, "1", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_2, - modifiers:{}, chars:"\u00E9", unmodifiedChars:"\u00E9"}, - "\u00E9", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "\u00E9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_2, - modifiers:{shiftKey:1}, chars:"2", unmodifiedChars:"2"}, - "2", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_2, - modifiers:{ctrlKey:1}, chars:"2", unmodifiedChars:"\u00E9"}, - "2", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_2, - modifiers:{metaKey:1}, chars:"\u00E9", unmodifiedChars:"\u00E9"}, - "\u00E9", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "\u00E9", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_2, - modifiers:{metaKey:1, shiftKey:1}, chars:"2", unmodifiedChars:"2"}, - "2", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "2", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_3, - modifiers:{}, chars:"\"", unmodifiedChars:"\""}, - "\"", "Digit3", nsIDOMKeyEvent.DOM_VK_3, "\"", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_3, - modifiers:{shiftKey:1}, chars:"3", unmodifiedChars:"3"}, - "3", "Digit3", nsIDOMKeyEvent.DOM_VK_3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_3, - modifiers:{ctrlKey:1}, chars:"3", unmodifiedChars:"\""}, - "3", "Digit3", nsIDOMKeyEvent.DOM_VK_3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_3, - modifiers:{metaKey:1}, chars:"\"", unmodifiedChars:"\""}, - "\"", "Digit3", nsIDOMKeyEvent.DOM_VK_3, "\"", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - // Cmd+Shift+3 is a shortcut key of taking a snapshot - // yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_3, - // modifiers:{metaKey:1, shiftKey:1}, chars:"\"", unmodifiedChars:"\""}, - // "3", "Digit3", nsIDOMKeyEvent.DOM_VK_3, "3", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_4, - modifiers:{}, chars:"'", unmodifiedChars:"'"}, - "'", "Digit4", nsIDOMKeyEvent.DOM_VK_4, "'", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_4, - modifiers:{shiftKey:1}, chars:"4", unmodifiedChars:"4"}, - "4", "Digit4", nsIDOMKeyEvent.DOM_VK_4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_4, - modifiers:{ctrlKey:1}, chars:"4", unmodifiedChars:"'"}, - "4", "Digit4", nsIDOMKeyEvent.DOM_VK_4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_4, - modifiers:{metaKey:1}, chars:"'", unmodifiedChars:"'"}, - "'", "Digit4", nsIDOMKeyEvent.DOM_VK_4, "'", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - // Cmd+Shift+4 is a shortcut key of taking a snapshot in specific range - // yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_4, - // modifiers:{metaKey:1, shiftKey:1}, chars:"4", unmodifiedChars:"4"}, - // "4", "Digit4", nsIDOMKeyEvent.DOM_VK_4, "4", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_5, - modifiers:{}, chars:"(", unmodifiedChars:"("}, - "(", "Digit5", nsIDOMKeyEvent.DOM_VK_5, "(", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_5, - modifiers:{shiftKey:1}, chars:"5", unmodifiedChars:"5"}, - "5", "Digit5", nsIDOMKeyEvent.DOM_VK_5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_5, - modifiers:{ctrlKey:1}, chars:"5", unmodifiedChars:"("}, - "5", "Digit5", nsIDOMKeyEvent.DOM_VK_5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_5, - modifiers:{metaKey:1}, chars:"(", unmodifiedChars:"("}, - "(", "Digit5", nsIDOMKeyEvent.DOM_VK_5, "(", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_5, - modifiers:{metaKey:1, shiftKey:1}, chars:"5", unmodifiedChars:"5"}, - "5", "Digit5", nsIDOMKeyEvent.DOM_VK_5, "5", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_6, - modifiers:{}, chars:"\u00A7", unmodifiedChars:"\u00A7"}, - "\u00A7", "Digit6", nsIDOMKeyEvent.DOM_VK_6, "\u00A7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_6, - modifiers:{shiftKey:1}, chars:"6", unmodifiedChars:"6"}, - "6", "Digit6", nsIDOMKeyEvent.DOM_VK_6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - // TODO: - // yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_6, - // modifiers:{ctrlKey:1}, chars:"\u001D", unmodifiedChars:"\u00A7"}, - // "6", "Digit6", nsIDOMKeyEvent.DOM_VK_6, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); // Ctrl+6 sets strange char - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_6, - modifiers:{metaKey:1}, chars:"\u00A7", unmodifiedChars:"\u00A7"}, - "\u00A7", "Digit6", nsIDOMKeyEvent.DOM_VK_6, "\u00A7", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_6, - modifiers:{metaKey:1, shiftKey:1}, chars:"6", unmodifiedChars:"6"}, - "6", "Digit6", nsIDOMKeyEvent.DOM_VK_6, "6", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_7, - modifiers:{}, chars:"\u00E8", unmodifiedChars:"\u00E8"}, - "\u00E8", "Digit7", nsIDOMKeyEvent.DOM_VK_7, "\u00E8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_7, - modifiers:{shiftKey:1}, chars:"7", unmodifiedChars:"7"}, - "7", "Digit7", nsIDOMKeyEvent.DOM_VK_7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_7, - modifiers:{ctrlKey:1}, chars:"7", unmodifiedChars:"\u00E8"}, - "7", "Digit7", nsIDOMKeyEvent.DOM_VK_7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_7, - modifiers:{metaKey:1}, chars:"\u00E8", unmodifiedChars:"\u00E8"}, - "\u00E8", "Digit7", nsIDOMKeyEvent.DOM_VK_7, "\u00E8", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_7, - modifiers:{metaKey:1, shiftKey:1}, chars:"7", unmodifiedChars:"7"}, - "7", "Digit7", nsIDOMKeyEvent.DOM_VK_7, "7", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_8, - modifiers:{}, chars:"!", unmodifiedChars:"!"}, - "!", "Digit8", nsIDOMKeyEvent.DOM_VK_8, "!", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_8, - modifiers:{shiftKey:1}, chars:"8", unmodifiedChars:"8"}, - "8", "Digit8", nsIDOMKeyEvent.DOM_VK_8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_8, - modifiers:{ctrlKey:1}, chars:"8", unmodifiedChars:"!"}, - "8", "Digit8", nsIDOMKeyEvent.DOM_VK_8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_8, - modifiers:{metaKey:1}, chars:"!", unmodifiedChars:"!"}, - "!", "Digit8", nsIDOMKeyEvent.DOM_VK_8, "!", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_8, - modifiers:{metaKey:1, shiftKey:1}, chars:"8", unmodifiedChars:"8"}, - "8", "Digit8", nsIDOMKeyEvent.DOM_VK_8, "8", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_9, - modifiers:{}, chars:"\u00E7", unmodifiedChars:"\u00E7"}, - "\u00E7", "Digit9", nsIDOMKeyEvent.DOM_VK_9, "\u00E7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_9, - modifiers:{shiftKey:1}, chars:"9", unmodifiedChars:"9"}, - "9", "Digit9", nsIDOMKeyEvent.DOM_VK_9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - // TODO: - // yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_9, - // modifiers:{ctrlKey:1}, chars:"\u001C", unmodifiedChars:"\u00E7"}, - // "9", "Digit9", nsIDOMKeyEvent.DOM_VK_9, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); // Ctrl+9 sets strange char - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_9, - modifiers:{metaKey:1}, chars:"\u00E7", unmodifiedChars:"\u00E7"}, - "\u00E7", "Digit9", nsIDOMKeyEvent.DOM_VK_9, "\u00E7", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_9, - modifiers:{metaKey:1, shiftKey:1}, chars:"9", unmodifiedChars:"9"}, - "9", "Digit9", nsIDOMKeyEvent.DOM_VK_9, "9", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_0, - modifiers:{}, chars:"\u00E0", unmodifiedChars:"\u00E0"}, - "\u00E0", "Digit0", nsIDOMKeyEvent.DOM_VK_0, "\u00E0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_0, - modifiers:{shiftKey:1}, chars:"0", unmodifiedChars:"0"}, - "0", "Digit0", nsIDOMKeyEvent.DOM_VK_0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - // XXX No events fired, not sure the reason. - // yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_0, - // modifiers:{ctrlKey:1}, chars:"", unmodifiedChars:"\u00E0"}, - // "0", "Digit0", nsIDOMKeyEvent.DOM_VK_0, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_0, - modifiers:{metaKey:1}, chars:"\u00E0", unmodifiedChars:"\u00E0"}, - "\u00E0", "Digit0", nsIDOMKeyEvent.DOM_VK_0, "\u00E0", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:MAC_VK_ANSI_0, - modifiers:{metaKey:1, shiftKey:1}, chars:"0", unmodifiedChars:"0"}, - "0", "Digit0", nsIDOMKeyEvent.DOM_VK_0, "0", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // Thai - // keycode should be DOM_VK_[A-Z] of the key on the latest ASCII capable keyboard layout is for alphabet - yield testKey({layout:KEYBOARD_LAYOUT_THAI, keyCode:MAC_VK_ANSI_A, - modifiers:{}, chars:"\u0E1F", unmodifiedChars:"\u0E1F"}, - "\u0E1F", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "\u0E1F", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - // keycode should be shifted character if unshifted character isn't an ASCII character - yield testKey({layout:KEYBOARD_LAYOUT_THAI, keyCode:MAC_VK_ANSI_Quote, - modifiers:{}, chars:"\u0E07", unmodifiedChars:"\u0E07"}, - "\u0E07", "Quote", nsIDOMKeyEvent.DOM_VK_PERIOD, "\u0E07", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - // keycode should be zero if the character of the key on the latest ASCII capable keyboard layout isn't for alphabet - yield testKey({layout:KEYBOARD_LAYOUT_THAI, keyCode:MAC_VK_ANSI_Period, - modifiers:{}, chars:"\u0E43", unmodifiedChars:"\u0E43"}, - "\u0E43", "Period", 0, "\u0E43", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - // keycode should be DOM_VK_[0-9] if the key on the latest ASCII capable keyboard layout is for numeric - yield testKey({layout:KEYBOARD_LAYOUT_THAI, keyCode:MAC_VK_ANSI_1, - modifiers:{}, chars:"\u0E45", unmodifiedChars:"\u0E45"}, - "\u0E45", "Digit1", nsIDOMKeyEvent.DOM_VK_1, "\u0E45", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_THAI, keyCode:MAC_VK_ANSI_2, - modifiers:{}, chars:"/", unmodifiedChars:"/"}, - "/", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "/", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_THAI, keyCode:MAC_VK_ANSI_3, - modifiers:{}, chars:"_", unmodifiedChars:"_"}, - "_", "Digit3", nsIDOMKeyEvent.DOM_VK_3, "_", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_THAI, keyCode:MAC_VK_ANSI_4, - modifiers:{}, chars:"\u0E20", unmodifiedChars:"\u0E20"}, - "\u0E20", "Digit4", nsIDOMKeyEvent.DOM_VK_4, "\u0E20", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_THAI, keyCode:MAC_VK_ANSI_5, - modifiers:{}, chars:"\u0E16", unmodifiedChars:"\u0E16"}, - "\u0E16", "Digit5", nsIDOMKeyEvent.DOM_VK_5, "\u0E16", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_THAI, keyCode:MAC_VK_ANSI_6, - modifiers:{}, chars:"\u0E38", unmodifiedChars:"\u0E38"}, - "\u0E38", "Digit6", nsIDOMKeyEvent.DOM_VK_6, "\u0E38", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_THAI, keyCode:MAC_VK_ANSI_7, - modifiers:{}, chars:"\u0E36", unmodifiedChars:"\u0E36"}, - "\u0E36", "Digit7", nsIDOMKeyEvent.DOM_VK_7, "\u0E36", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_THAI, keyCode:MAC_VK_ANSI_8, - modifiers:{}, chars:"\u0E04", unmodifiedChars:"\u0E04"}, - "\u0E04", "Digit8", nsIDOMKeyEvent.DOM_VK_8, "\u0E04", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_THAI, keyCode:MAC_VK_ANSI_9, - modifiers:{}, chars:"\u0E15", unmodifiedChars:"\u0E15"}, - "\u0E15", "Digit9", nsIDOMKeyEvent.DOM_VK_9, "\u0E15", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_THAI, keyCode:MAC_VK_ANSI_0, - modifiers:{}, chars:"\u0E08", unmodifiedChars:"\u0E08"}, - "\u0E08", "Digit0", nsIDOMKeyEvent.DOM_VK_0, "\u0E08", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // Dvorak-Qwerty, layout should be changed when Command key is pressed. - yield testKey({layout:KEYBOARD_LAYOUT_DVORAK_QWERTY, keyCode:MAC_VK_ANSI_S, - modifiers:{}, chars:"o", unmodifiedChars:"o"}, - "o", "KeyS", nsIDOMKeyEvent.DOM_VK_O, "o", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_DVORAK_QWERTY, keyCode:MAC_VK_ANSI_S, - modifiers:{shiftKey:1}, chars:"O", unmodifiedChars:"O"}, - "O", "KeyS", nsIDOMKeyEvent.DOM_VK_O, "O", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_DVORAK_QWERTY, keyCode:MAC_VK_ANSI_S, - modifiers:{ctrlKey:1}, chars:"\u000F", unmodifiedChars:"o"}, - "o", "KeyS", nsIDOMKeyEvent.DOM_VK_O, "o", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_DVORAK_QWERTY, keyCode:MAC_VK_ANSI_S, - modifiers:{altKey:1}, chars:"\u00F8", unmodifiedChars:"o"}, - "\u00F8", "KeyS", nsIDOMKeyEvent.DOM_VK_O, "\u00F8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_DVORAK_QWERTY, keyCode:MAC_VK_ANSI_S, - modifiers:{metaKey:1}, chars:"s", unmodifiedChars:"o"}, - "s", "KeyS", nsIDOMKeyEvent.DOM_VK_S, "s", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_DVORAK_QWERTY, keyCode:MAC_VK_ANSI_D, - modifiers:{}, chars:"e", unmodifiedChars:"e"}, - "e", "KeyD", nsIDOMKeyEvent.DOM_VK_E, "e", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_DVORAK_QWERTY, keyCode:MAC_VK_ANSI_D, - modifiers:{shiftKey:1}, chars:"E", unmodifiedChars:"E"}, - "E", "KeyD", nsIDOMKeyEvent.DOM_VK_E, "E", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_DVORAK_QWERTY, keyCode:MAC_VK_ANSI_D, - modifiers:{ctrlKey:1}, chars:"\u0005", unmodifiedChars:"e"}, - "e", "KeyD", nsIDOMKeyEvent.DOM_VK_E, "e", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_DVORAK_QWERTY, keyCode:MAC_VK_ANSI_D, - modifiers:{altKey:1}, chars:"", unmodifiedChars:"e"}, - "Dead", "KeyD", nsIDOMKeyEvent.DOM_VK_E, "\u00B4", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); // dead key - yield testKey({layout:KEYBOARD_LAYOUT_DVORAK_QWERTY, keyCode:MAC_VK_ANSI_D, - modifiers:{metaKey:1}, chars:"d", unmodifiedChars:"e"}, - "d", "KeyD", nsIDOMKeyEvent.DOM_VK_D, "d", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_DVORAK_QWERTY, keyCode:MAC_VK_ANSI_I, - modifiers:{metaKey:1, altKey:1}, chars:"^", unmodifiedChars:"c"}, - "^", "KeyI", nsIDOMKeyEvent.DOM_VK_I, "^", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_DVORAK_QWERTY, keyCode:MAC_VK_ANSI_I, - modifiers:{metaKey:1, altKey:1, shiftKey:1}, chars:"\u02C6", unmodifiedChars:"C"}, - "\u02C6", "KeyI", nsIDOMKeyEvent.DOM_VK_I, "\u02C6", SHOULD_DELIVER_KEYDOWN_KEYPRESS, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // Arabic - PC keyboard layout inputs 2 or more characters with some key. - yield testKey({layout:KEYBOARD_LAYOUT_ARABIC_PC, keyCode:MAC_VK_ANSI_G, - modifiers:{shiftKey:1}, chars:"\u0644\u0623", unmodifiedChars:"\u0644\u0623"}, - ["\u0644\u0623", "\u0644", "\u0623", "\u0644\u0623"], "KeyG", nsIDOMKeyEvent.DOM_VK_G, "\u0644\u0623", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_ARABIC_PC, keyCode:MAC_VK_ANSI_T, - modifiers:{shiftKey:1}, chars:"\u0644\u0625", unmodifiedChars:"\u0644\u0625"}, - ["\u0644\u0625", "\u0644", "\u0625", "\u0644\u0625"], "KeyT", nsIDOMKeyEvent.DOM_VK_T, "\u0644\u0625", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_ARABIC_PC, keyCode:MAC_VK_ANSI_B, - modifiers:{shiftKey:1}, chars:"\u0644\u0622", unmodifiedChars:"\u0644\u0622"}, - ["\u0644\u0622", "\u0644", "\u0622", "\u0644\u0622"], "KeyB", nsIDOMKeyEvent.DOM_VK_B, "\u0644\u0622", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_ARABIC_PC, keyCode:MAC_VK_ANSI_B, - modifiers:{}, chars:"\u0644\u0627", unmodifiedChars:"\u0644\u0627"}, - ["\u0644\u0627", "\u0644", "\u0627", "\u0644\u0627"], "KeyB", nsIDOMKeyEvent.DOM_VK_B, "\u0644\u0627", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - cleanup(); - } - - function testKeysOnWindows() - { - // On Windows, you can use Spy++ or Winspector (free) to watch window messages. - // The keyCode is given by the wParam of the last WM_KEYDOWN message. The - // chars string is given by the wParam of the WM_CHAR message. unmodifiedChars - // is not needed on Windows. - - // Shift-ctrl-alt generates no WM_CHAR, but we still get a keypress - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A, - modifiers:{altKey:1, ctrlKey:1, shiftKey:1}, chars:""}, - "A", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "A", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // Greek plain text - yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:WIN_VK_A, - modifiers:{}, chars:"\u03b1"}, - "\u03b1", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "\u03b1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:WIN_VK_A, - modifiers:{shiftKey:1}, chars:"\u0391"}, - "\u0391", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "\u0391", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // Greek ctrl keys produce Latin charcodes - yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:WIN_VK_A, - modifiers:{ctrlKey:1}, chars:"\u0001"}, - "\u03b1", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "a", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:WIN_VK_A, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0001"}, - "\u0391", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "A", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // Caps Lock key event - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_CAPITAL, - modifiers:{capsLockKey:1}, chars:""}, - "CapsLock", "CapsLock", nsIDOMKeyEvent.DOM_VK_CAPS_LOCK, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_CAPITAL, - modifiers:{capsLockKey:0}, chars:""}, - "CapsLock", "CapsLock", nsIDOMKeyEvent.DOM_VK_CAPS_LOCK, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // Shift keys - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_LSHIFT, - modifiers:{shiftKey:1}, chars:""}, - "Shift", "ShiftLeft", nsIDOMKeyEvent.DOM_VK_SHIFT, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_LEFT); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_RSHIFT, - modifiers:{shiftRightKey:1}, chars:""}, - "Shift", "ShiftRight", nsIDOMKeyEvent.DOM_VK_SHIFT, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_RIGHT); - - // Ctrl keys - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_LCONTROL, - modifiers:{ctrlKey:1}, chars:""}, - "Control", "ControlLeft", nsIDOMKeyEvent.DOM_VK_CONTROL, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_LEFT); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_RCONTROL, - modifiers:{ctrlRightKey:1}, chars:""}, - "Control", "ControlRight", nsIDOMKeyEvent.DOM_VK_CONTROL, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_RIGHT); - - // Alt keys - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_LMENU, - modifiers:{altKey:1}, chars:""}, - "Alt", "AltLeft", nsIDOMKeyEvent.DOM_VK_ALT, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_LEFT); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_RMENU, - modifiers:{altRightKey:1}, chars:""}, - "Alt", "AltRight", nsIDOMKeyEvent.DOM_VK_ALT, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_RIGHT); - - // Win keys - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_LWIN, - modifiers:{}, chars:""}, - "OS" /* bug 1232918 */, "OSLeft", nsIDOMKeyEvent.DOM_VK_WIN, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_LEFT); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_RWIN, - modifiers:{}, chars:""}, - "OS" /* bug 1232918 */, "OSRight", nsIDOMKeyEvent.DOM_VK_WIN, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_RIGHT); - - // all keys on keyboard (keyCode test) - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_BACK, - modifiers:{}, chars:"\u0008"}, - "Backspace", "Backspace", nsIDOMKeyEvent.DOM_VK_BACK_SPACE, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_TAB, - modifiers:{}, chars:"\t"}, - "Tab", "Tab", nsIDOMKeyEvent.DOM_VK_TAB, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_RETURN, - modifiers:{}, chars:"\r"}, - "Enter", "Enter", nsIDOMKeyEvent.DOM_VK_RETURN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_PAUSE, - modifiers:{}, chars:""}, - "Pause", "Pause", nsIDOMKeyEvent.DOM_VK_PAUSE, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_KANA, - modifiers:{}, chars:""}, - "Unidentified", "", nsIDOMKeyEvent.DOM_VK_KANA, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_JUNJA, - modifiers:{}, chars:""}, - "JunjaMode", "", nsIDOMKeyEvent.DOM_VK_JUNJA, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_FINAL, - modifiers:{}, chars:""}, - "FinalMode", "", nsIDOMKeyEvent.DOM_VK_FINAL, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_KANJI, - modifiers:{}, chars:""}, - "Unidentified", "", nsIDOMKeyEvent.DOM_VK_KANJI, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_ESCAPE, - modifiers:{}, chars:""}, - "Escape", "Escape", nsIDOMKeyEvent.DOM_VK_ESCAPE, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_CONVERT, - modifiers:{}, chars:""}, - "Convert", "", nsIDOMKeyEvent.DOM_VK_CONVERT, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NONCONVERT, - modifiers:{}, chars:""}, - "NonConvert", "", nsIDOMKeyEvent.DOM_VK_NONCONVERT, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_ACCEPT, - modifiers:{}, chars:""}, - "Accept", "", nsIDOMKeyEvent.DOM_VK_ACCEPT, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_MODECHANGE, - modifiers:{}, chars:""}, - "ModeChange", "", nsIDOMKeyEvent.DOM_VK_MODECHANGE, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_SPACE, - modifiers:{}, chars:" "}, - " ", "Space", nsIDOMKeyEvent.DOM_VK_SPACE, " ", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - // Ctrl+Space causes WM_CHAR with ' '. However, its keypress event's ctrlKey state shouldn't be false. - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_SPACE, - modifiers:{ctrlKey:1}, chars:" "}, - " ", "Space", nsIDOMKeyEvent.DOM_VK_SPACE, " ", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_SELECT, - modifiers:{}, chars:""}, - "Select", "", nsIDOMKeyEvent.DOM_VK_SELECT, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_PRINT, - modifiers:{}, chars:""}, - "Unidentified", "", nsIDOMKeyEvent.DOM_VK_PRINT, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_EXECUTE, - modifiers:{}, chars:""}, - "Execute", "", nsIDOMKeyEvent.DOM_VK_EXECUTE, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_SNAPSHOT, - modifiers:{}, chars:""}, - "PrintScreen", "PrintScreen", nsIDOMKeyEvent.DOM_VK_PRINTSCREEN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_HELP, - modifiers:{}, chars:""}, - "Help", "", nsIDOMKeyEvent.DOM_VK_HELP, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_SLEEP, - modifiers:{}, chars:""}, - "Standby", "", nsIDOMKeyEvent.DOM_VK_SLEEP, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_PRIOR, - modifiers:{}, chars:""}, - "PageUp", "PageUp", nsIDOMKeyEvent.DOM_VK_PAGE_UP, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NEXT, - modifiers:{}, chars:""}, - "PageDown", "PageDown", nsIDOMKeyEvent.DOM_VK_PAGE_DOWN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_END, - modifiers:{}, chars:""}, - "End", "End", nsIDOMKeyEvent.DOM_VK_END, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_HOME, - modifiers:{}, chars:""}, - "Home", "Home", nsIDOMKeyEvent.DOM_VK_HOME, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_LEFT, - modifiers:{}, chars:""}, - "ArrowLeft", "ArrowLeft", nsIDOMKeyEvent.DOM_VK_LEFT, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_UP, - modifiers:{}, chars:""}, - "ArrowUp", "ArrowUp", nsIDOMKeyEvent.DOM_VK_UP, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_RIGHT, - modifiers:{}, chars:""}, - "ArrowRight", "ArrowRight", nsIDOMKeyEvent.DOM_VK_RIGHT, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_DOWN, - modifiers:{}, chars:""}, - "ArrowDown", "ArrowDown", nsIDOMKeyEvent.DOM_VK_DOWN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_INSERT, - modifiers:{}, chars:""}, - "Insert", "Insert", nsIDOMKeyEvent.DOM_VK_INSERT, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_DELETE, - modifiers:{}, chars:""}, - "Delete", "Delete", nsIDOMKeyEvent.DOM_VK_DELETE, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // Backspace and Enter are handled with special path in mozilla::widget::NativeKey. So, let's test them with modifiers too. - // Note that when both Ctrl and Alt are pressed, they don't cause WM_(SYS)CHAR message. - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_BACK, - modifiers:{ctrlKey:1}, chars:"\u007F"}, - "Backspace", "Backspace", nsIDOMKeyEvent.DOM_VK_BACK_SPACE, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_BACK, - modifiers:{altKey:1}, chars:"\u0008"}, - "Backspace", "Backspace", nsIDOMKeyEvent.DOM_VK_BACK_SPACE, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_BACK, - modifiers:{ctrl:1, altKey:1}, chars:""}, - "Backspace", "Backspace", nsIDOMKeyEvent.DOM_VK_BACK_SPACE, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_RETURN, - modifiers:{ctrlKey:1}, chars:"\n"}, - "Enter", "Enter", nsIDOMKeyEvent.DOM_VK_RETURN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_RETURN, - modifiers:{altKey:1}, chars:"\r"}, - "Enter", "Enter", nsIDOMKeyEvent.DOM_VK_RETURN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_RETURN, - modifiers:{ctrl:1, altKey:1}, chars:""}, - "Enter", "Enter", nsIDOMKeyEvent.DOM_VK_RETURN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // Even non-printable key could be mapped as a printable key. - // Only "keyup" event cannot know if it *did* cause inputting text. - // Therefore, only "keydown" and "keypress" event's key value should be the character inputted by the key. - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_F4, - modifiers:{}, chars:"a"}, - ["a", "a", "F4"], "F4", nsIDOMKeyEvent.DOM_VK_F4, "a", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // Even if key message is processed by IME, when the key causes inputting text, - // keypress event(s) should be fired. - const WIN_VK_PROCESSKEY_WITH_SC_A = WIN_VK_PROCESSKEY | 0x001E0000; - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_PROCESSKEY_WITH_SC_A, - modifiers:{}, chars:"a"}, - ["a", "a", "Unidentified" /* TODO: Process */], "KeyA", 0 /* TODO: 0xE5 */, "a", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_PROCESSKEY_WITH_SC_A, - modifiers:{altKey:1}, chars:"a"}, - ["a", "a", "Unidentified" /* TODO: Process */], "KeyA", 0 /* TODO: 0xE5 */, "a", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // US - // Alphabet - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A, - modifiers:{}, chars:"a"}, - "a", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "a", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A, - modifiers:{shiftKey:1}, chars:"A"}, - "A", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "A", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A, - modifiers:{ctrlKey:1}, chars:"\u0001"}, - "a", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "a", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0001"}, - "A", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "A", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A, - modifiers:{altKey:1}, chars:"a"}, - "a", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "a", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A, - modifiers:{altKey:1, shiftKey:1}, chars:"A"}, - "A", "KeyA", nsIDOMKeyEvent.DOM_VK_A, "A", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_B, - modifiers:{}, chars:"b"}, - "b", "KeyB", nsIDOMKeyEvent.DOM_VK_B, "b", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_B, - modifiers:{shiftKey:1}, chars:"B"}, - "B", "KeyB", nsIDOMKeyEvent.DOM_VK_B, "B", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_B, - modifiers:{ctrlKey:1}, chars:"\u0002"}, - "b", "KeyB", nsIDOMKeyEvent.DOM_VK_B, "b", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_B, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0002"}, - "B", "KeyB", nsIDOMKeyEvent.DOM_VK_B, "B", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_B, - modifiers:{altKey:1}, chars:"b"}, - "b", "KeyB", nsIDOMKeyEvent.DOM_VK_B, "b", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_B, - modifiers:{altKey:1, shiftKey:1}, chars:"B"}, - "B", "KeyB", nsIDOMKeyEvent.DOM_VK_B, "B", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_C, - modifiers:{}, chars:"c"}, - "c", "KeyC", nsIDOMKeyEvent.DOM_VK_C, "c", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_C, - modifiers:{shiftKey:1}, chars:"C"}, - "C", "KeyC", nsIDOMKeyEvent.DOM_VK_C, "C", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_C, - modifiers:{ctrlKey:1}, chars:"\u0003"}, - "c", "KeyC", nsIDOMKeyEvent.DOM_VK_C, "c", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_C, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0003"}, - "C", "KeyC", nsIDOMKeyEvent.DOM_VK_C, "C", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_C, - modifiers:{altKey:1}, chars:"c"}, - "c", "KeyC", nsIDOMKeyEvent.DOM_VK_C, "c", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_C, - modifiers:{altKey:1, shiftKey:1}, chars:"C"}, - "C", "KeyC", nsIDOMKeyEvent.DOM_VK_C, "C", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_D, - modifiers:{}, chars:"d"}, - "d", "KeyD", nsIDOMKeyEvent.DOM_VK_D, "d", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_D, - modifiers:{shiftKey:1}, chars:"D"}, - "D", "KeyD", nsIDOMKeyEvent.DOM_VK_D, "D", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_D, - modifiers:{ctrlKey:1}, chars:"\u0004"}, - "d", "KeyD", nsIDOMKeyEvent.DOM_VK_D, "d", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_D, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0004"}, - "D", "KeyD", nsIDOMKeyEvent.DOM_VK_D, "D", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_D, - modifiers:{altKey:1}, chars:"d"}, - "d", "KeyD", nsIDOMKeyEvent.DOM_VK_D, "d", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_D, - modifiers:{altKey:1, shiftKey:1}, chars:"D"}, - "D", "KeyD", nsIDOMKeyEvent.DOM_VK_D, "D", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_E, - modifiers:{}, chars:"e"}, - "e", "KeyE", nsIDOMKeyEvent.DOM_VK_E, "e", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_E, - modifiers:{shiftKey:1}, chars:"E"}, - "E", "KeyE", nsIDOMKeyEvent.DOM_VK_E, "E", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_E, - modifiers:{ctrlKey:1}, chars:"\u0005"}, - "e", "KeyE", nsIDOMKeyEvent.DOM_VK_E, "e", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_E, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0005"}, - "E", "KeyE", nsIDOMKeyEvent.DOM_VK_E, "E", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_E, - modifiers:{altKey:1}, chars:"e"}, - "e", "KeyE", nsIDOMKeyEvent.DOM_VK_E, "e", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_E, - modifiers:{altKey:1, shiftKey:1}, chars:"E"}, - "E", "KeyE", nsIDOMKeyEvent.DOM_VK_E, "E", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_F, - modifiers:{}, chars:"f"}, - "f", "KeyF", nsIDOMKeyEvent.DOM_VK_F, "f", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_F, - modifiers:{shiftKey:1}, chars:"F"}, - "F", "KeyF", nsIDOMKeyEvent.DOM_VK_F, "F", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_F, - modifiers:{ctrlKey:1}, chars:"\u0006"}, - "f", "KeyF", nsIDOMKeyEvent.DOM_VK_F, "f", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_F, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0006"}, - "F", "KeyF", nsIDOMKeyEvent.DOM_VK_F, "F", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_F, - modifiers:{altKey:1}, chars:"f"}, - "f", "KeyF", nsIDOMKeyEvent.DOM_VK_F, "f", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_F, - modifiers:{altKey:1, shiftKey:1}, chars:"F"}, - "F", "KeyF", nsIDOMKeyEvent.DOM_VK_F, "F", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_G, - modifiers:{}, chars:"g"}, - "g", "KeyG", nsIDOMKeyEvent.DOM_VK_G, "g", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_G, - modifiers:{shiftKey:1}, chars:"G"}, - "G", "KeyG", nsIDOMKeyEvent.DOM_VK_G, "G", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_G, - modifiers:{ctrlKey:1}, chars:"\u0007"}, - "g", "KeyG", nsIDOMKeyEvent.DOM_VK_G, "g", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_G, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0007"}, - "G", "KeyG", nsIDOMKeyEvent.DOM_VK_G, "G", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_G, - modifiers:{altKey:1}, chars:"g"}, - "g", "KeyG", nsIDOMKeyEvent.DOM_VK_G, "g", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_G, - modifiers:{altKey:1, shiftKey:1}, chars:"G"}, - "G", "KeyG", nsIDOMKeyEvent.DOM_VK_G, "G", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_H, - modifiers:{}, chars:"h"}, - "h", "KeyH", nsIDOMKeyEvent.DOM_VK_H, "h", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_H, - modifiers:{shiftKey:1}, chars:"H"}, - "H", "KeyH", nsIDOMKeyEvent.DOM_VK_H, "H", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_H, - modifiers:{ctrlKey:1}, chars:"\u0008"}, - "h", "KeyH", nsIDOMKeyEvent.DOM_VK_H, "h", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_H, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0008"}, - "H", "KeyH", nsIDOMKeyEvent.DOM_VK_H, "H", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_H, - modifiers:{altKey:1}, chars:"h"}, - "h", "KeyH", nsIDOMKeyEvent.DOM_VK_H, "h", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_H, - modifiers:{altKey:1, shiftKey:1}, chars:"H"}, - "H", "KeyH", nsIDOMKeyEvent.DOM_VK_H, "H", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_I, - modifiers:{}, chars:"i"}, - "i", "KeyI", nsIDOMKeyEvent.DOM_VK_I, "i", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_I, - modifiers:{shiftKey:1}, chars:"I"}, - "I", "KeyI", nsIDOMKeyEvent.DOM_VK_I, "I", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_I, - modifiers:{ctrlKey:1}, chars:"\u0009"}, - "i", "KeyI", nsIDOMKeyEvent.DOM_VK_I, "i", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_I, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0009"}, - "I", "KeyI", nsIDOMKeyEvent.DOM_VK_I, "I", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_I, - modifiers:{altKey:1}, chars:"i"}, - "i", "KeyI", nsIDOMKeyEvent.DOM_VK_I, "i", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_I, - modifiers:{altKey:1, shiftKey:1}, chars:"I"}, - "I", "KeyI", nsIDOMKeyEvent.DOM_VK_I, "I", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_J, - modifiers:{}, chars:"j"}, - "j", "KeyJ", nsIDOMKeyEvent.DOM_VK_J, "j", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_J, - modifiers:{shiftKey:1}, chars:"J"}, - "J", "KeyJ", nsIDOMKeyEvent.DOM_VK_J, "J", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_J, - modifiers:{ctrlKey:1}, chars:"\u000A"}, - "j", "KeyJ", nsIDOMKeyEvent.DOM_VK_J, "j", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_J, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u000A"}, - "J", "KeyJ", nsIDOMKeyEvent.DOM_VK_J, "J", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_J, - modifiers:{altKey:1}, chars:"j"}, - "j", "KeyJ", nsIDOMKeyEvent.DOM_VK_J, "j", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_J, - modifiers:{altKey:1, shiftKey:1}, chars:"J"}, - "J", "KeyJ", nsIDOMKeyEvent.DOM_VK_J, "J", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_K, - modifiers:{}, chars:"k"}, - "k", "KeyK", nsIDOMKeyEvent.DOM_VK_K, "k", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_K, - modifiers:{shiftKey:1}, chars:"K"}, - "K", "KeyK", nsIDOMKeyEvent.DOM_VK_K, "K", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_K, - modifiers:{ctrlKey:1}, chars:"\u000B"}, - "k", "KeyK", nsIDOMKeyEvent.DOM_VK_K, "k", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_K, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u000B"}, - "K", "KeyK", nsIDOMKeyEvent.DOM_VK_K, "K", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_K, - modifiers:{altKey:1}, chars:"k"}, - "k", "KeyK", nsIDOMKeyEvent.DOM_VK_K, "k", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_K, - modifiers:{altKey:1, shiftKey:1}, chars:"K"}, - "K", "KeyK", nsIDOMKeyEvent.DOM_VK_K, "K", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_L, - modifiers:{}, chars:"l"}, - "l", "KeyL", nsIDOMKeyEvent.DOM_VK_L, "l", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_L, - modifiers:{shiftKey:1}, chars:"L"}, - "L", "KeyL", nsIDOMKeyEvent.DOM_VK_L, "L", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_L, - modifiers:{ctrlKey:1}, chars:"\u000C"}, - "l", "KeyL", nsIDOMKeyEvent.DOM_VK_L, "l", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_L, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u000C"}, - "L", "KeyL", nsIDOMKeyEvent.DOM_VK_L, "L", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_L, - modifiers:{altKey:1}, chars:"l"}, - "l", "KeyL", nsIDOMKeyEvent.DOM_VK_L, "l", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_L, - modifiers:{altKey:1, shiftKey:1}, chars:"L"}, - "L", "KeyL", nsIDOMKeyEvent.DOM_VK_L, "L", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_M, - modifiers:{}, chars:"m"}, - "m", "KeyM", nsIDOMKeyEvent.DOM_VK_M, "m", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_M, - modifiers:{shiftKey:1}, chars:"M"}, - "M", "KeyM", nsIDOMKeyEvent.DOM_VK_M, "M", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_M, - modifiers:{ctrlKey:1}, chars:"\u000D"}, - "m", "KeyM", nsIDOMKeyEvent.DOM_VK_M, "m", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_M, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u000D"}, - "M", "KeyM", nsIDOMKeyEvent.DOM_VK_M, "M", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_M, - modifiers:{altKey:1}, chars:"m"}, - "m", "KeyM", nsIDOMKeyEvent.DOM_VK_M, "m", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_M, - modifiers:{altKey:1, shiftKey:1}, chars:"M"}, - "M", "KeyM", nsIDOMKeyEvent.DOM_VK_M, "M", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_N, - modifiers:{}, chars:"n"}, - "n", "KeyN", nsIDOMKeyEvent.DOM_VK_N, "n", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_N, - modifiers:{shiftKey:1}, chars:"N"}, - "N", "KeyN", nsIDOMKeyEvent.DOM_VK_N, "N", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_N, - modifiers:{ctrlKey:1}, chars:"\u000E"}, - "n", "KeyN", nsIDOMKeyEvent.DOM_VK_N, "n", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_N, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u000E"}, - "N", "KeyN", nsIDOMKeyEvent.DOM_VK_N, "N", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_N, - modifiers:{altKey:1}, chars:"n"}, - "n", "KeyN", nsIDOMKeyEvent.DOM_VK_N, "n", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_N, - modifiers:{altKey:1, shiftKey:1}, chars:"N"}, - "N", "KeyN", nsIDOMKeyEvent.DOM_VK_N, "N", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_O, - modifiers:{}, chars:"o"}, - "o", "KeyO", nsIDOMKeyEvent.DOM_VK_O, "o", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_O, - modifiers:{shiftKey:1}, chars:"O"}, - "O", "KeyO", nsIDOMKeyEvent.DOM_VK_O, "O", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_O, - modifiers:{ctrlKey:1}, chars:"\u000F"}, - "o", "KeyO", nsIDOMKeyEvent.DOM_VK_O, "o", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_O, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u000F"}, - "O", "KeyO", nsIDOMKeyEvent.DOM_VK_O, "O", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_O, - modifiers:{altKey:1}, chars:"o"}, - "o", "KeyO", nsIDOMKeyEvent.DOM_VK_O, "o", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_O, - modifiers:{altKey:1, shiftKey:1}, chars:"O"}, - "O", "KeyO", nsIDOMKeyEvent.DOM_VK_O, "O", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_P, - modifiers:{}, chars:"p"}, - "p", "KeyP", nsIDOMKeyEvent.DOM_VK_P, "p", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_P, - modifiers:{shiftKey:1}, chars:"P"}, - "P", "KeyP", nsIDOMKeyEvent.DOM_VK_P, "P", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_P, - modifiers:{ctrlKey:1}, chars:"\u0010"}, - "p", "KeyP", nsIDOMKeyEvent.DOM_VK_P, "p", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_P, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0010"}, - "P", "KeyP", nsIDOMKeyEvent.DOM_VK_P, "P", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_P, - modifiers:{altKey:1}, chars:"p"}, - "p", "KeyP", nsIDOMKeyEvent.DOM_VK_P, "p", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_P, - modifiers:{altKey:1, shiftKey:1}, chars:"P"}, - "P", "KeyP", nsIDOMKeyEvent.DOM_VK_P, "P", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Q, - modifiers:{}, chars:"q"}, - "q", "KeyQ", nsIDOMKeyEvent.DOM_VK_Q, "q", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Q, - modifiers:{shiftKey:1}, chars:"Q"}, - "Q", "KeyQ", nsIDOMKeyEvent.DOM_VK_Q, "Q", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Q, - modifiers:{ctrlKey:1}, chars:"\u0011"}, - "q", "KeyQ", nsIDOMKeyEvent.DOM_VK_Q, "q", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Q, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0011"}, - "Q", "KeyQ", nsIDOMKeyEvent.DOM_VK_Q, "Q", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Q, - modifiers:{altKey:1}, chars:"q"}, - "q", "KeyQ", nsIDOMKeyEvent.DOM_VK_Q, "q", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Q, - modifiers:{altKey:1, shiftKey:1}, chars:"Q"}, - "Q", "KeyQ", nsIDOMKeyEvent.DOM_VK_Q, "Q", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_R, - modifiers:{}, chars:"r"}, - "r", "KeyR", nsIDOMKeyEvent.DOM_VK_R, "r", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_R, - modifiers:{shiftKey:1}, chars:"R"}, - "R", "KeyR", nsIDOMKeyEvent.DOM_VK_R, "R", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_R, - modifiers:{ctrlKey:1}, chars:"\u0012"}, - "r", "KeyR", nsIDOMKeyEvent.DOM_VK_R, "r", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_R, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0012"}, - "R", "KeyR", nsIDOMKeyEvent.DOM_VK_R, "R", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_R, - modifiers:{altKey:1}, chars:"r"}, - "r", "KeyR", nsIDOMKeyEvent.DOM_VK_R, "r", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_R, - modifiers:{altKey:1, shiftKey:1}, chars:"R"}, - "R", "KeyR", nsIDOMKeyEvent.DOM_VK_R, "R", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_S, - modifiers:{}, chars:"s"}, - "s", "KeyS", nsIDOMKeyEvent.DOM_VK_S, "s", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_S, - modifiers:{shiftKey:1}, chars:"S"}, - "S", "KeyS", nsIDOMKeyEvent.DOM_VK_S, "S", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_S, - modifiers:{ctrlKey:1}, chars:"\u0013"}, - "s", "KeyS", nsIDOMKeyEvent.DOM_VK_S, "s", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_S, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0013"}, - "S", "KeyS", nsIDOMKeyEvent.DOM_VK_S, "S", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_S, - modifiers:{altKey:1}, chars:"s"}, - "s", "KeyS", nsIDOMKeyEvent.DOM_VK_S, "s", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_S, - modifiers:{altKey:1, shiftKey:1}, chars:"S"}, - "S", "KeyS", nsIDOMKeyEvent.DOM_VK_S, "S", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_T, - modifiers:{}, chars:"t"}, - "t", "KeyT", nsIDOMKeyEvent.DOM_VK_T, "t", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_T, - modifiers:{shiftKey:1}, chars:"T"}, - "T", "KeyT", nsIDOMKeyEvent.DOM_VK_T, "T", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_T, - modifiers:{ctrlKey:1}, chars:"\u0014"}, - "t", "KeyT", nsIDOMKeyEvent.DOM_VK_T, "t", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_T, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0014"}, - "T", "KeyT", nsIDOMKeyEvent.DOM_VK_T, "T", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_T, - modifiers:{altKey:1}, chars:"t"}, - "t", "KeyT", nsIDOMKeyEvent.DOM_VK_T, "t", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_T, - modifiers:{altKey:1, shiftKey:1}, chars:"T"}, - "T", "KeyT", nsIDOMKeyEvent.DOM_VK_T, "T", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_U, - modifiers:{}, chars:"u"}, - "u", "KeyU", nsIDOMKeyEvent.DOM_VK_U, "u", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_U, - modifiers:{shiftKey:1}, chars:"U"}, - "U", "KeyU", nsIDOMKeyEvent.DOM_VK_U, "U", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_U, - modifiers:{ctrlKey:1}, chars:"\u0015"}, - "u", "KeyU", nsIDOMKeyEvent.DOM_VK_U, "u", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_U, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0015"}, - "U", "KeyU", nsIDOMKeyEvent.DOM_VK_U, "U", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_U, - modifiers:{altKey:1}, chars:"u"}, - "u", "KeyU", nsIDOMKeyEvent.DOM_VK_U, "u", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_U, - modifiers:{altKey:1, shiftKey:1}, chars:"U"}, - "U", "KeyU", nsIDOMKeyEvent.DOM_VK_U, "U", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_V, - modifiers:{}, chars:"v"}, - "v", "KeyV", nsIDOMKeyEvent.DOM_VK_V, "v", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_V, - modifiers:{shiftKey:1}, chars:"V"}, - "V", "KeyV", nsIDOMKeyEvent.DOM_VK_V, "V", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_V, - modifiers:{ctrlKey:1}, chars:"\u0016"}, - "v", "KeyV", nsIDOMKeyEvent.DOM_VK_V, "v", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_V, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0016"}, - "V", "KeyV", nsIDOMKeyEvent.DOM_VK_V, "V", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_V, - modifiers:{altKey:1}, chars:"v"}, - "v", "KeyV", nsIDOMKeyEvent.DOM_VK_V, "v", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_V, - modifiers:{altKey:1, shiftKey:1}, chars:"V"}, - "V", "KeyV", nsIDOMKeyEvent.DOM_VK_V, "V", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_W, - modifiers:{}, chars:"w"}, - "w", "KeyW", nsIDOMKeyEvent.DOM_VK_W, "w", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_W, - modifiers:{shiftKey:1}, chars:"W"}, - "W", "KeyW", nsIDOMKeyEvent.DOM_VK_W, "W", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_W, - modifiers:{ctrlKey:1}, chars:"\u0017"}, - "w", "KeyW", nsIDOMKeyEvent.DOM_VK_W, "w", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_W, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0017"}, - "W", "KeyW", nsIDOMKeyEvent.DOM_VK_W, "W", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_W, - modifiers:{altKey:1}, chars:"w"}, - "w", "KeyW", nsIDOMKeyEvent.DOM_VK_W, "w", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_W, - modifiers:{altKey:1, shiftKey:1}, chars:"W"}, - "W", "KeyW", nsIDOMKeyEvent.DOM_VK_W, "W", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_X, - modifiers:{}, chars:"x"}, - "x", "KeyX", nsIDOMKeyEvent.DOM_VK_X, "x", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_X, - modifiers:{shiftKey:1}, chars:"X"}, - "X", "KeyX", nsIDOMKeyEvent.DOM_VK_X, "X", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_X, - modifiers:{ctrlKey:1}, chars:"\u0018"}, - "x", "KeyX", nsIDOMKeyEvent.DOM_VK_X, "x", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_X, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0018"}, - "X", "KeyX", nsIDOMKeyEvent.DOM_VK_X, "X", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_X, - modifiers:{altKey:1}, chars:"x"}, - "x", "KeyX", nsIDOMKeyEvent.DOM_VK_X, "x", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_X, - modifiers:{altKey:1, shiftKey:1}, chars:"X"}, - "X", "KeyX", nsIDOMKeyEvent.DOM_VK_X, "X", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Y, - modifiers:{}, chars:"y"}, - "y", "KeyY", nsIDOMKeyEvent.DOM_VK_Y, "y", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Y, - modifiers:{shiftKey:1}, chars:"Y"}, - "Y", "KeyY", nsIDOMKeyEvent.DOM_VK_Y, "Y", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Y, - modifiers:{ctrlKey:1}, chars:"\u0019"}, - "y", "KeyY", nsIDOMKeyEvent.DOM_VK_Y, "y", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Y, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0019"}, - "Y", "KeyY", nsIDOMKeyEvent.DOM_VK_Y, "Y", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Y, - modifiers:{altKey:1}, chars:"y"}, - "y", "KeyY", nsIDOMKeyEvent.DOM_VK_Y, "y", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Y, - modifiers:{altKey:1, shiftKey:1}, chars:"Y"}, - "Y", "KeyY", nsIDOMKeyEvent.DOM_VK_Y, "Y", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Z, - modifiers:{}, chars:"z"}, - "z", "KeyZ", nsIDOMKeyEvent.DOM_VK_Z, "z", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Z, - modifiers:{shiftKey:1}, chars:"Z"}, - "Z", "KeyZ", nsIDOMKeyEvent.DOM_VK_Z, "Z", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Z, - modifiers:{ctrlKey:1}, chars:"\u001A"}, - "z", "KeyZ", nsIDOMKeyEvent.DOM_VK_Z, "z", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Z, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u001A"}, - "Z", "KeyZ", nsIDOMKeyEvent.DOM_VK_Z, "Z", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Z, - modifiers:{altKey:1}, chars:"z"}, - "z", "KeyZ", nsIDOMKeyEvent.DOM_VK_Z, "z", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_Z, - modifiers:{altKey:1, shiftKey:1}, chars:"Z"}, - "Z", "KeyZ", nsIDOMKeyEvent.DOM_VK_Z, "Z", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // Numeric - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_0, - modifiers:{}, chars:"0"}, - "0", "Digit0", nsIDOMKeyEvent.DOM_VK_0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_0, - modifiers:{shiftKey:1}, chars:")"}, - ")", "Digit0", nsIDOMKeyEvent.DOM_VK_0, ")", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_0, - modifiers:{ctrlKey:1}, chars:""}, - "0", "Digit0", nsIDOMKeyEvent.DOM_VK_0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_0, - modifiers:{ctrlKey:1, shiftKey:1}, chars:""}, - ")", "Digit0", nsIDOMKeyEvent.DOM_VK_0, ")", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_0, - modifiers:{altKey:1}, chars:"0"}, - "0", "Digit0", nsIDOMKeyEvent.DOM_VK_0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_0, - modifiers:{altKey:1, shiftKey:1}, chars:")"}, - ")", "Digit0", nsIDOMKeyEvent.DOM_VK_0, ")", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_1, - modifiers:{}, chars:"1"}, - "1", "Digit1", nsIDOMKeyEvent.DOM_VK_1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_1, - modifiers:{shiftKey:1}, chars:"!"}, - "!", "Digit1", nsIDOMKeyEvent.DOM_VK_1, "!", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_1, - modifiers:{ctrlKey:1}, chars:""}, - "1", "Digit1", nsIDOMKeyEvent.DOM_VK_1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_1, - modifiers:{ctrlKey:1, shiftKey:1}, chars:""}, - "!", "Digit1", nsIDOMKeyEvent.DOM_VK_1, "!", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_1, - modifiers:{altKey:1}, chars:"1"}, - "1", "Digit1", nsIDOMKeyEvent.DOM_VK_1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_1, - modifiers:{altKey:1, shiftKey:1}, chars:"!"}, - "!", "Digit1", nsIDOMKeyEvent.DOM_VK_1, "!", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_2, - modifiers:{}, chars:"2"}, - "2", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_2, - modifiers:{shiftKey:1}, chars:"@"}, - "@", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "@", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_2, - modifiers:{ctrlKey:1}, chars:""}, - "2", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_2, - modifiers:{ctrlKey:1, shiftKey:1}, chars:""}, - "@", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "@", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_2, - modifiers:{altKey:1}, chars:"2"}, - "2", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_2, - modifiers:{altKey:1, shiftKey:1}, chars:"@"}, - "@", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "@", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_3, - modifiers:{}, chars:"3"}, - "3", "Digit3", nsIDOMKeyEvent.DOM_VK_3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_3, - modifiers:{shiftKey:1}, chars:"#"}, - "#", "Digit3", nsIDOMKeyEvent.DOM_VK_3, "#", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_3, - modifiers:{ctrlKey:1}, chars:""}, - "3", "Digit3", nsIDOMKeyEvent.DOM_VK_3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_3, - modifiers:{ctrlKey:1, shiftKey:1}, chars:""}, - "#", "Digit3", nsIDOMKeyEvent.DOM_VK_3, "#", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_3, - modifiers:{altKey:1}, chars:"3"}, - "3", "Digit3", nsIDOMKeyEvent.DOM_VK_3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_3, - modifiers:{altKey:1, shiftKey:1}, chars:"#"}, - "#", "Digit3", nsIDOMKeyEvent.DOM_VK_3, "#", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_4, - modifiers:{}, chars:"4"}, - "4", "Digit4", nsIDOMKeyEvent.DOM_VK_4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_4, - modifiers:{shiftKey:1}, chars:"$"}, - "$", "Digit4", nsIDOMKeyEvent.DOM_VK_4, "$", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_4, - modifiers:{ctrlKey:1}, chars:""}, - "4", "Digit4", nsIDOMKeyEvent.DOM_VK_4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_4, - modifiers:{ctrlKey:1, shiftKey:1}, chars:""}, - "$", "Digit4", nsIDOMKeyEvent.DOM_VK_4, "$", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_4, - modifiers:{altKey:1}, chars:"4"}, - "4", "Digit4", nsIDOMKeyEvent.DOM_VK_4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_4, - modifiers:{altKey:1, shiftKey:1}, chars:"$"}, - "$", "Digit4", nsIDOMKeyEvent.DOM_VK_4, "$", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_5, - modifiers:{}, chars:"5"}, - "5", "Digit5", nsIDOMKeyEvent.DOM_VK_5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_5, - modifiers:{shiftKey:1}, chars:"%"}, - "%", "Digit5", nsIDOMKeyEvent.DOM_VK_5, "%", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_5, - modifiers:{ctrlKey:1}, chars:""}, - "5", "Digit5", nsIDOMKeyEvent.DOM_VK_5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_5, - modifiers:{ctrlKey:1, shiftKey:1}, chars:""}, - "%", "Digit5", nsIDOMKeyEvent.DOM_VK_5, "%", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_5, - modifiers:{altKey:1}, chars:"5"}, - "5", "Digit5", nsIDOMKeyEvent.DOM_VK_5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_5, - modifiers:{altKey:1, shiftKey:1}, chars:"%"}, - "%", "Digit5", nsIDOMKeyEvent.DOM_VK_5, "%", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_6, - modifiers:{}, chars:"6"}, - "6", "Digit6", nsIDOMKeyEvent.DOM_VK_6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_6, - modifiers:{shiftKey:1}, chars:"^"}, - "^", "Digit6", nsIDOMKeyEvent.DOM_VK_6, "^", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_6, - modifiers:{ctrlKey:1}, chars:""}, - "6", "Digit6", nsIDOMKeyEvent.DOM_VK_6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_6, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u001E"}, - "^", "Digit6", nsIDOMKeyEvent.DOM_VK_6, "^", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_6, - modifiers:{altKey:1}, chars:"6"}, - "6", "Digit6", nsIDOMKeyEvent.DOM_VK_6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_6, - modifiers:{altKey:1, shiftKey:1}, chars:"^"}, - "^", "Digit6", nsIDOMKeyEvent.DOM_VK_6, "^", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_7, - modifiers:{}, chars:"7"}, - "7", "Digit7", nsIDOMKeyEvent.DOM_VK_7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_7, - modifiers:{shiftKey:1}, chars:"&"}, - "&", "Digit7", nsIDOMKeyEvent.DOM_VK_7, "&", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_7, - modifiers:{ctrlKey:1}, chars:""}, - "7", "Digit7", nsIDOMKeyEvent.DOM_VK_7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_7, - modifiers:{ctrlKey:1, shiftKey:1}, chars:""}, - "&", "Digit7", nsIDOMKeyEvent.DOM_VK_7, "&", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_7, - modifiers:{altKey:1}, chars:"7"}, - "7", "Digit7", nsIDOMKeyEvent.DOM_VK_7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_7, - modifiers:{altKey:1, shiftKey:1}, chars:"&"}, - "&", "Digit7", nsIDOMKeyEvent.DOM_VK_7, "&", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_8, - modifiers:{}, chars:"8"}, - "8", "Digit8", nsIDOMKeyEvent.DOM_VK_8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_8, - modifiers:{shiftKey:1}, chars:"*"}, - "*", "Digit8", nsIDOMKeyEvent.DOM_VK_8, "*", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_8, - modifiers:{ctrlKey:1, }, chars:""}, - "8", "Digit8", nsIDOMKeyEvent.DOM_VK_8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_8, - modifiers:{ctrlKey:1, shiftKey:1}, chars:""}, - "*", "Digit8", nsIDOMKeyEvent.DOM_VK_8, "*", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_8, - modifiers:{altKey:1}, chars:"8"}, - "8", "Digit8", nsIDOMKeyEvent.DOM_VK_8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_8, - modifiers:{altKey:1, shiftKey:1}, chars:"*"}, - "*", "Digit8", nsIDOMKeyEvent.DOM_VK_8, "*", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_9, - modifiers:{}, chars:"9"}, - "9", "Digit9", nsIDOMKeyEvent.DOM_VK_9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_9, - modifiers:{shiftKey:1}, chars:"("}, - "(", "Digit9", nsIDOMKeyEvent.DOM_VK_9, "(", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_9, - modifiers:{ctrlKey:1}, chars:""}, - "9", "Digit9", nsIDOMKeyEvent.DOM_VK_9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_9, - modifiers:{ctrlKey:1, shiftKey:1}, chars:""}, - "(", "Digit9", nsIDOMKeyEvent.DOM_VK_9, "(", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_9, - modifiers:{altKey:1}, chars:"9"}, - "9", "Digit9", nsIDOMKeyEvent.DOM_VK_9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_9, - modifiers:{altKey:1, shiftKey:1}, chars:"("}, - "(", "Digit9", nsIDOMKeyEvent.DOM_VK_9, "(", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // OEM keys - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_MINUS, - modifiers:{}, chars:"-"}, - "-", "Minus", nsIDOMKeyEvent.DOM_VK_HYPHEN_MINUS, "-", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_MINUS, - modifiers:{shiftKey:1}, chars:"_"}, - "_", "Minus", nsIDOMKeyEvent.DOM_VK_HYPHEN_MINUS, "_", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_MINUS, - modifiers:{ctrlKey:1}, chars:""}, - "-", "Minus", nsIDOMKeyEvent.DOM_VK_HYPHEN_MINUS, "-", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_MINUS, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u001F"}, - "_", "Minus", nsIDOMKeyEvent.DOM_VK_HYPHEN_MINUS, "_", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_MINUS, - modifiers:{altKey:1}, chars:"-"}, - "-", "Minus", nsIDOMKeyEvent.DOM_VK_HYPHEN_MINUS, "-", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_MINUS, - modifiers:{altKey:1, shiftKey:1}, chars:"_"}, - "_", "Minus", nsIDOMKeyEvent.DOM_VK_HYPHEN_MINUS, "_", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_PLUS, - modifiers:{}, chars:"="}, - "=", "Equal", nsIDOMKeyEvent.DOM_VK_EQUALS, "=", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_PLUS, - modifiers:{shiftKey:1}, chars:"+"}, - "+", "Equal", nsIDOMKeyEvent.DOM_VK_EQUALS, "+", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_PLUS, - modifiers:{ctrlKey:1}, chars:""}, - "=", "Equal", nsIDOMKeyEvent.DOM_VK_EQUALS, "=", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_PLUS, - modifiers:{ctrlKey:1, shiftKey:1}, chars:""}, - "+", "Equal", nsIDOMKeyEvent.DOM_VK_EQUALS, "+", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_PLUS, - modifiers:{altKey:1}, chars:"="}, - "=", "Equal", nsIDOMKeyEvent.DOM_VK_EQUALS, "=", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_PLUS, - modifiers:{altKey:1, shiftKey:1}, chars:"+"}, - "+", "Equal", nsIDOMKeyEvent.DOM_VK_EQUALS, "+", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_4, - modifiers:{}, chars:"["}, - "[", "BracketLeft", nsIDOMKeyEvent.DOM_VK_OPEN_BRACKET, "[", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_4, - modifiers:{shiftKey:1}, chars:"{"}, - "{", "BracketLeft", nsIDOMKeyEvent.DOM_VK_OPEN_BRACKET, "{", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_4, - modifiers:{ctrlKey:1}, chars:"\u001B"}, - "[", "BracketLeft", nsIDOMKeyEvent.DOM_VK_OPEN_BRACKET, "[", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_4, - modifiers:{ctrlKey:1, shiftKey:1}, chars:""}, - "{", "BracketLeft", nsIDOMKeyEvent.DOM_VK_OPEN_BRACKET, "{", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_4, - modifiers:{altKey:1}, chars:"["}, - "[", "BracketLeft", nsIDOMKeyEvent.DOM_VK_OPEN_BRACKET, "[", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_4, - modifiers:{altKey:1, shiftKey:1}, chars:"{"}, - "{", "BracketLeft", nsIDOMKeyEvent.DOM_VK_OPEN_BRACKET, "{", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_6, - modifiers:{}, chars:"]"}, - "]", "BracketRight", nsIDOMKeyEvent.DOM_VK_CLOSE_BRACKET, "]", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_6, - modifiers:{shiftKey:1}, chars:"}"}, - "}", "BracketRight", nsIDOMKeyEvent.DOM_VK_CLOSE_BRACKET, "}", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_6, - modifiers:{ctrlKey:1}, chars:"\u001D"}, - "]", "BracketRight", nsIDOMKeyEvent.DOM_VK_CLOSE_BRACKET, "]", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_6, - modifiers:{ctrlKey:1, shiftKey:1}, chars:""}, - "}", "BracketRight", nsIDOMKeyEvent.DOM_VK_CLOSE_BRACKET, "}", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_6, - modifiers:{altKey:1}, chars:"]"}, - "]", "BracketRight", nsIDOMKeyEvent.DOM_VK_CLOSE_BRACKET, "]", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_6, - modifiers:{altKey:1, shiftKey:1}, chars:"}"}, - "}", "BracketRight", nsIDOMKeyEvent.DOM_VK_CLOSE_BRACKET, "}", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_1, - modifiers:{}, chars:";"}, - ";", "Semicolon", nsIDOMKeyEvent.DOM_VK_SEMICOLON, ";", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_1, - modifiers:{shiftKey:1}, chars:":"}, - ":", "Semicolon", nsIDOMKeyEvent.DOM_VK_SEMICOLON, ":", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_1, - modifiers:{ctrlKey:1}, chars:""}, - ";", "Semicolon", nsIDOMKeyEvent.DOM_VK_SEMICOLON, ";", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_1, - modifiers:{ctrlKey:1, shiftKey:1}, chars:""}, - ":", "Semicolon", nsIDOMKeyEvent.DOM_VK_SEMICOLON, ":", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_1, - modifiers:{altKey:1}, chars:";"}, - ";", "Semicolon", nsIDOMKeyEvent.DOM_VK_SEMICOLON, ";", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_1, - modifiers:{altKey:1, shiftKey:1}, chars:":"}, - ":", "Semicolon", nsIDOMKeyEvent.DOM_VK_SEMICOLON, ":", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_7, - modifiers:{}, chars:"'"}, - "'", "Quote", nsIDOMKeyEvent.DOM_VK_QUOTE, "'", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_7, - modifiers:{shiftKey:1}, chars:"\""}, - "\"", "Quote", nsIDOMKeyEvent.DOM_VK_QUOTE, "\"", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_7, - modifiers:{ctrlKey:1}, chars:""}, - "'", "Quote", nsIDOMKeyEvent.DOM_VK_QUOTE, "'", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_7, - modifiers:{ctrlKey:1, shiftKey:1}, chars:""}, - "\"", "Quote", nsIDOMKeyEvent.DOM_VK_QUOTE, "\"", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_7, - modifiers:{altKey:1}, chars:"'"}, - "'", "Quote", nsIDOMKeyEvent.DOM_VK_QUOTE, "'", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_7, - modifiers:{altKey:1, shiftKey:1}, chars:"\""}, - "\"", "Quote", nsIDOMKeyEvent.DOM_VK_QUOTE, "\"", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_5, - modifiers:{}, chars:"\\"}, - "\\", "Backslash", nsIDOMKeyEvent.DOM_VK_BACK_SLASH, "\\", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_5, - modifiers:{shiftKey:1}, chars:"|"}, - "|", "Backslash", nsIDOMKeyEvent.DOM_VK_BACK_SLASH, "|", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_5, - modifiers:{ctrlKey:1}, chars:"\u001C"}, - "\\", "Backslash", nsIDOMKeyEvent.DOM_VK_BACK_SLASH, "\\", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_5, - modifiers:{ctrlKey:1, shiftKey:1}, chars:""}, - "|", "Backslash", nsIDOMKeyEvent.DOM_VK_BACK_SLASH, "|", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_5, - modifiers:{altKey:1}, chars:"\\"}, - "\\", "Backslash", nsIDOMKeyEvent.DOM_VK_BACK_SLASH, "\\", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_5, - modifiers:{altKey:1, shiftKey:1}, chars:"|"}, - "|", "Backslash", nsIDOMKeyEvent.DOM_VK_BACK_SLASH, "|", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_COMMA, - modifiers:{}, chars:","}, - ",", "Comma", nsIDOMKeyEvent.DOM_VK_COMMA, ",", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_COMMA, - modifiers:{shiftKey:1}, chars:"<"}, - "<", "Comma", nsIDOMKeyEvent.DOM_VK_COMMA, "<", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_COMMA, - modifiers:{ctrlKey:1}, chars:""}, - ",", "Comma", nsIDOMKeyEvent.DOM_VK_COMMA, ",", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_COMMA, - modifiers:{ctrlKey:1, shiftKey:1}, chars:""}, - "<", "Comma", nsIDOMKeyEvent.DOM_VK_COMMA, "<", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_COMMA, - modifiers:{altKey:1}, chars:","}, - ",", "Comma", nsIDOMKeyEvent.DOM_VK_COMMA, ",", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_COMMA, - modifiers:{altKey:1, shiftKey:1}, chars:"<"}, - "<", "Comma", nsIDOMKeyEvent.DOM_VK_COMMA, "<", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_PERIOD, - modifiers:{}, chars:"."}, - ".", "Period", nsIDOMKeyEvent.DOM_VK_PERIOD, ".", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_PERIOD, - modifiers:{shiftKey:1}, chars:">"}, - ">", "Period", nsIDOMKeyEvent.DOM_VK_PERIOD, ">", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_PERIOD, - modifiers:{ctrlKey:1}, chars:""}, - ".", "Period", nsIDOMKeyEvent.DOM_VK_PERIOD, ".", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_PERIOD, - modifiers:{ctrlKey:1, shiftKey:1}, chars:""}, - ">", "Period", nsIDOMKeyEvent.DOM_VK_PERIOD, ">", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_PERIOD, - modifiers:{altKey:1}, chars:"."}, - ".", "Period", nsIDOMKeyEvent.DOM_VK_PERIOD, ".", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_PERIOD, - modifiers:{altKey:1, shiftKey:1}, chars:">"}, - ">", "Period", nsIDOMKeyEvent.DOM_VK_PERIOD, ">", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_2, - modifiers:{}, chars:"/"}, - "/", "Slash", nsIDOMKeyEvent.DOM_VK_SLASH, "/", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_2, - modifiers:{shiftKey:1}, chars:"?"}, - "?", "Slash", nsIDOMKeyEvent.DOM_VK_SLASH, "?", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_2, - modifiers:{ctrlKey:1}, chars:""}, - "/", "Slash", nsIDOMKeyEvent.DOM_VK_SLASH, "/", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_2, - modifiers:{ctrlKey:1, shiftKey:1}, chars:""}, - "?", "Slash", nsIDOMKeyEvent.DOM_VK_SLASH, "?", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_2, - modifiers:{altKey:1}, chars:"/"}, - "/", "Slash", nsIDOMKeyEvent.DOM_VK_SLASH, "/", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_2, - modifiers:{altKey:1, shiftKey:1}, chars:"?"}, - "?", "Slash", nsIDOMKeyEvent.DOM_VK_SLASH, "?", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_3, - modifiers:{}, chars:"`"}, - "`", "Backquote", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "`", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_3, - modifiers:{shiftKey:1}, chars:"~"}, - "~", "Backquote", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "~", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_3, - modifiers:{ctrlKey:1}, chars:""}, - "`", "Backquote", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "`", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_3, - modifiers:{ctrlKey:1, shiftKey:1}, chars:""}, - "~", "Backquote", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "~", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_3, - modifiers:{altKey:1}, chars:"`"}, - "`", "Backquote", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "`", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_3, - modifiers:{altKey:1, shiftKey:1}, chars:"~"}, - "~", "Backquote", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "~", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // Numpad - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD0, - modifiers:{numLockKey:1}, chars:"0"}, - "0", "Numpad0", nsIDOMKeyEvent.DOM_VK_NUMPAD0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD1, - modifiers:{numLockKey:1}, chars:"1"}, - "1", "Numpad1", nsIDOMKeyEvent.DOM_VK_NUMPAD1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD2, - modifiers:{numLockKey:1}, chars:"2"}, - "2", "Numpad2", nsIDOMKeyEvent.DOM_VK_NUMPAD2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD3, - modifiers:{numLockKey:1}, chars:"3"}, - "3", "Numpad3", nsIDOMKeyEvent.DOM_VK_NUMPAD3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD4, - modifiers:{numLockKey:1}, chars:"4"}, - "4", "Numpad4", nsIDOMKeyEvent.DOM_VK_NUMPAD4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD5, - modifiers:{numLockKey:1}, chars:"5"}, - "5", "Numpad5", nsIDOMKeyEvent.DOM_VK_NUMPAD5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD6, - modifiers:{numLockKey:1}, chars:"6"}, - "6", "Numpad6", nsIDOMKeyEvent.DOM_VK_NUMPAD6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD7, - modifiers:{numLockKey:1}, chars:"7"}, - "7", "Numpad7", nsIDOMKeyEvent.DOM_VK_NUMPAD7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD8, - modifiers:{numLockKey:1}, chars:"8"}, - "8", "Numpad8", nsIDOMKeyEvent.DOM_VK_NUMPAD8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD9, - modifiers:{numLockKey:1}, chars:"9"}, - "9", "Numpad9", nsIDOMKeyEvent.DOM_VK_NUMPAD9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_MULTIPLY, - modifiers:{numLockKey:1}, chars:"*"}, - "*", "NumpadMultiply", nsIDOMKeyEvent.DOM_VK_MULTIPLY, "*", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_MULTIPLY, - modifiers:{numLockKey:1, shiftKey:1}, chars:"*"}, - "*", "NumpadMultiply", nsIDOMKeyEvent.DOM_VK_MULTIPLY, "*", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_ADD, - modifiers:{numLockKey:1}, chars:"+"}, - "+", "NumpadAdd", nsIDOMKeyEvent.DOM_VK_ADD, "+", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_ADD, - modifiers:{numLockKey:1, shiftKey:1}, chars:"+"}, - "+", "NumpadAdd", nsIDOMKeyEvent.DOM_VK_ADD, "+", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - // VK_SEPARATOR is keycode for NEC's PC-98 series whose keyboard layout was - // different from current PC's keyboard layout and it cannot connect to - // current PC. Note that even if we synthesize WM_KEYDOWN with - // VK_SEPARATOR, it doesn't work on Win7. - //yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_SEPARATOR, - // modifiers:{numLockKey:1}, chars:""}, - // "", "", nsIDOMKeyEvent.DOM_VK_SEPARATOR, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - //yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_SEPARATOR, - // modifiers:{numLockKey:1, shiftKey:1}, chars:""}, - // "", "", nsIDOMKeyEvent.DOM_VK_SEPARATOR, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_SUBTRACT, - modifiers:{numLockKey:1}, chars:"-"}, - "-", "NumpadSubtract", nsIDOMKeyEvent.DOM_VK_SUBTRACT, "-", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_SUBTRACT, - modifiers:{numLockKey:1, shiftKey:1}, chars:"-"}, - "-", "NumpadSubtract", nsIDOMKeyEvent.DOM_VK_SUBTRACT, "-", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_DECIMAL, - modifiers:{numLockKey:1}, chars:"."}, - ".", "NumpadDecimal", nsIDOMKeyEvent.DOM_VK_DECIMAL, ".", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_DECIMAL, - modifiers:{numLockKey:1, shiftKey:1}, chars:"."}, - ".", "NumpadDecimal", nsIDOMKeyEvent.DOM_VK_DECIMAL, ".", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_DIVIDE, - modifiers:{numLockKey:1}, chars:"/"}, - "/", "NumpadDivide", nsIDOMKeyEvent.DOM_VK_DIVIDE, "/", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_DIVIDE, - modifiers:{numLockKey:1, shiftKey:1}, chars:"/"}, - "/", "NumpadDivide", nsIDOMKeyEvent.DOM_VK_DIVIDE, "/", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD_RETURN, - modifiers:{numLockKey:1}, chars:"\r"}, - "Enter", "NumpadEnter", nsIDOMKeyEvent.DOM_VK_RETURN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD_RETURN, - modifiers:{numLockKey:1, shiftKey:1}, chars:"\r"}, - "Enter", "NumpadEnter", nsIDOMKeyEvent.DOM_VK_RETURN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - - // Numpad without NumLock - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD_PRIOR, - modifiers:{}, chars:""}, - "PageUp", "Numpad9", nsIDOMKeyEvent.DOM_VK_PAGE_UP, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD_NEXT, - modifiers:{}, chars:""}, - "PageDown", "Numpad3", nsIDOMKeyEvent.DOM_VK_PAGE_DOWN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD_END, - modifiers:{}, chars:""}, - "End", "Numpad1", nsIDOMKeyEvent.DOM_VK_END, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD_HOME, - modifiers:{}, chars:""}, - "Home", "Numpad7", nsIDOMKeyEvent.DOM_VK_HOME, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD_LEFT, - modifiers:{}, chars:""}, - "ArrowLeft", "Numpad4", nsIDOMKeyEvent.DOM_VK_LEFT, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD_UP, - modifiers:{}, chars:""}, - "ArrowUp", "Numpad8", nsIDOMKeyEvent.DOM_VK_UP, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD_RIGHT, - modifiers:{}, chars:""}, - "ArrowRight", "Numpad6", nsIDOMKeyEvent.DOM_VK_RIGHT, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD_DOWN, - modifiers:{}, chars:""}, - "ArrowDown", "Numpad2", nsIDOMKeyEvent.DOM_VK_DOWN, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD_INSERT, - modifiers:{}, chars:""}, - "Insert", "Numpad0", nsIDOMKeyEvent.DOM_VK_INSERT, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_NUMPAD_DELETE, - modifiers:{}, chars:""}, - "Delete", "NumpadDecimal", nsIDOMKeyEvent.DOM_VK_DELETE, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_CLEAR, - modifiers:{}, chars:""}, - "Clear", "Numpad5", nsIDOMKeyEvent.DOM_VK_CLEAR, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - - // Even if widget receives unknown keycode, it should dispatch key events - // whose keycode is 0 rather than native keycode. - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:0x3A, - modifiers:{numLockKey:1}, chars:""}, - "Unidentified", "", 0, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // French - // Numeric - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_0, - modifiers:{}, chars:"\u00E0"}, - "\u00E0", "Digit0", nsIDOMKeyEvent.DOM_VK_0, "\u00E0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_0, - modifiers:{shiftKey:1}, chars:"0"}, - "0", "Digit0", nsIDOMKeyEvent.DOM_VK_0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_1, - modifiers:{}, chars:"&"}, - "&", "Digit1", nsIDOMKeyEvent.DOM_VK_1, "&", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_1, - modifiers:{shiftKey:1}, chars:"1"}, - "1", "Digit1", nsIDOMKeyEvent.DOM_VK_1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_2, - modifiers:{}, chars:"\u00E9"}, - "\u00E9", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "\u00E9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_2, - modifiers:{shiftKey:1}, chars:"2"}, - "2", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_3, - modifiers:{}, chars:"\""}, - "\"", "Digit3", nsIDOMKeyEvent.DOM_VK_3, "\"", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_3, - modifiers:{shiftKey:1}, chars:"3"}, - "3", "Digit3", nsIDOMKeyEvent.DOM_VK_3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_4, - modifiers:{}, chars:"'"}, - "'", "Digit4", nsIDOMKeyEvent.DOM_VK_4, "'", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_4, - modifiers:{shiftKey:1}, chars:"4"}, - "4", "Digit4", nsIDOMKeyEvent.DOM_VK_4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_5, - modifiers:{}, chars:"("}, - "(", "Digit5", nsIDOMKeyEvent.DOM_VK_5, "(", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_5, - modifiers:{shiftKey:1}, chars:"5"}, - "5", "Digit5", nsIDOMKeyEvent.DOM_VK_5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_6, - modifiers:{}, chars:"-"}, - "-", "Digit6", nsIDOMKeyEvent.DOM_VK_6, "-", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_6, - modifiers:{shiftKey:1}, chars:"6"}, - "6", "Digit6", nsIDOMKeyEvent.DOM_VK_6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_7, - modifiers:{}, chars:"\u00E8"}, - "\u00E8", "Digit7", nsIDOMKeyEvent.DOM_VK_7, "\u00E8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_7, - modifiers:{shiftKey:1}, chars:"7"}, - "7", "Digit7", nsIDOMKeyEvent.DOM_VK_7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_8, - modifiers:{}, chars:"_"}, - "_", "Digit8", nsIDOMKeyEvent.DOM_VK_8, "_", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_8, - modifiers:{shiftKey:1}, chars:"8"}, - "8", "Digit8", nsIDOMKeyEvent.DOM_VK_8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_9, - modifiers:{}, chars:"\u00E7"}, - "\u00E7", "Digit9", nsIDOMKeyEvent.DOM_VK_9, "\u00E7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_9, - modifiers:{shiftKey:1}, chars:"9"}, - "9", "Digit9", nsIDOMKeyEvent.DOM_VK_9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // Numeric with ShiftLock - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_0, - modifiers:{capsLockKey:1}, chars:"0"}, - "0", "Digit0", nsIDOMKeyEvent.DOM_VK_0, "0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_0, - modifiers:{capsLockKey:1, shiftKey:1}, chars:"\u00E0"}, - "\u00E0", "Digit0", nsIDOMKeyEvent.DOM_VK_0, "\u00E0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_1, - modifiers:{capsLockKey:1}, chars:"1"}, - "1", "Digit1", nsIDOMKeyEvent.DOM_VK_1, "1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_1, - modifiers:{capsLockKey:1, shiftKey:1}, chars:"&"}, - "&", "Digit1", nsIDOMKeyEvent.DOM_VK_1, "&", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_2, - modifiers:{capsLockKey:1}, chars:"2"}, - "2", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_2, - modifiers:{capsLockKey:1, shiftKey:1}, chars:"\u00E9"}, - "\u00E9", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "\u00E9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_3, - modifiers:{capsLockKey:1}, chars:"3"}, - "3", "Digit3", nsIDOMKeyEvent.DOM_VK_3, "3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_3, - modifiers:{capsLockKey:1, shiftKey:1}, chars:"\""}, - "\"", "Digit3", nsIDOMKeyEvent.DOM_VK_3, "\"", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_4, - modifiers:{capsLockKey:1}, chars:"4"}, - "4", "Digit4", nsIDOMKeyEvent.DOM_VK_4, "4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_4, - modifiers:{capsLockKey:1, shiftKey:1}, chars:"'"}, - "'", "Digit4", nsIDOMKeyEvent.DOM_VK_4, "'", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_5, - modifiers:{capsLockKey:1}, chars:"5"}, - "5", "Digit5", nsIDOMKeyEvent.DOM_VK_5, "5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_5, - modifiers:{capsLockKey:1, shiftKey:1}, chars:"("}, - "(", "Digit5", nsIDOMKeyEvent.DOM_VK_5, "(", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_6, - modifiers:{capsLockKey:1}, chars:"6"}, - "6", "Digit6", nsIDOMKeyEvent.DOM_VK_6, "6", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_6, - modifiers:{capsLockKey:1, shiftKey:1}, chars:"-"}, - "-", "Digit6", nsIDOMKeyEvent.DOM_VK_6, "-", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_7, - modifiers:{capsLockKey:1}, chars:"7"}, - "7", "Digit7", nsIDOMKeyEvent.DOM_VK_7, "7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_7, - modifiers:{capsLockKey:1, shiftKey:1}, chars:"\u00E8"}, - "\u00E8", "Digit7", nsIDOMKeyEvent.DOM_VK_7, "\u00E8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_8, - modifiers:{capsLockKey:1}, chars:"8"}, - "8", "Digit8", nsIDOMKeyEvent.DOM_VK_8, "8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_8, - modifiers:{capsLockKey:1, shiftKey:1}, chars:"_"}, - "_", "Digit8", nsIDOMKeyEvent.DOM_VK_8, "_", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_9, - modifiers:{capsLockKey:1}, chars:"9"}, - "9", "Digit9", nsIDOMKeyEvent.DOM_VK_9, "9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_9, - modifiers:{capsLockKey:1, shiftKey:1}, chars:"\u00E7"}, - "\u00E7", "Digit9", nsIDOMKeyEvent.DOM_VK_9, "\u00E7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // OEM keys - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_7, - modifiers:{}, chars:"\u00B2"}, - "\u00B2", "Backquote", 0, "\u00B2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_7, - modifiers:{shiftKey:1}, chars:""}, - "", "Backquote", 0, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_4, - modifiers:{}, chars:")"}, - ")", "Minus", nsIDOMKeyEvent.DOM_VK_CLOSE_PAREN, ")", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_4, - modifiers:{shiftKey:1}, chars:"\u00B0"}, - "\u00B0", "Minus", nsIDOMKeyEvent.DOM_VK_CLOSE_PAREN, "\u00B0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_PLUS, - modifiers:{}, chars:"="}, - "=", "Equal", nsIDOMKeyEvent.DOM_VK_EQUALS, "=", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_PLUS, - modifiers:{shiftKey:1}, chars:"+"}, - "+", "Equal", nsIDOMKeyEvent.DOM_VK_EQUALS, "+", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - //yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_6, - // modifiers:{}, chars:""}, - // "Dead", "BracketLeft", nsIDOMKeyEvent.DOM_VK_CIRCUMFLEX, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); // Dead-key - //yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_6, - // modifiers:{shiftKey:1}, chars:""}, - // ["^^", "^", "^", "^"], "BracketLeft", nsIDOMKeyEvent.DOM_VK_CIRCUMFLEX, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); // Dead-key - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_1, - modifiers:{}, chars:"$"}, - "$", "BracketRight", nsIDOMKeyEvent.DOM_VK_DOLLAR, "$", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_1, - modifiers:{shiftKey:1}, chars:"\u00A3"}, - "\u00A3", "BracketRight", nsIDOMKeyEvent.DOM_VK_DOLLAR, "\u00A3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_3, - modifiers:{}, chars:"\u00F9"}, - "\u00F9", "Quote", nsIDOMKeyEvent.DOM_VK_PERCENT, "\u00F9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_3, - modifiers:{shiftKey:1}, chars:"%"}, - "%", "Quote", nsIDOMKeyEvent.DOM_VK_PERCENT, "%", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_5, - modifiers:{}, chars:"*"}, - "*", "Backslash", nsIDOMKeyEvent.DOM_VK_ASTERISK, "*", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_5, - modifiers:{shiftKey:1}, chars:"\u00B5"}, - "\u00B5", "Backslash", nsIDOMKeyEvent.DOM_VK_ASTERISK, "\u00B5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_102, - modifiers:{}, chars:"<"}, - "<", "IntlBackslash", nsIDOMKeyEvent.DOM_VK_LESS_THAN, "<", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_102, - modifiers:{shiftKey:1}, chars:">"}, - ">", "IntlBackslash", nsIDOMKeyEvent.DOM_VK_LESS_THAN, ">", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_COMMA, - modifiers:{}, chars:","}, - ",", "KeyM", nsIDOMKeyEvent.DOM_VK_COMMA, ",", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_COMMA, - modifiers:{shiftKey:1}, chars:"?"}, - "?", "KeyM", nsIDOMKeyEvent.DOM_VK_COMMA, "?", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_PERIOD, - modifiers:{}, chars:";"}, - ";", "Comma", nsIDOMKeyEvent.DOM_VK_SEMICOLON, ";", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_PERIOD, - modifiers:{shiftKey:1}, chars:"."}, - ".", "Comma", nsIDOMKeyEvent.DOM_VK_SEMICOLON, ".", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_2, - modifiers:{}, chars:":"}, - ":", "Period", nsIDOMKeyEvent.DOM_VK_COLON, ":", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_2, - modifiers:{shiftKey:1}, chars:"/"}, - "/", "Period", nsIDOMKeyEvent.DOM_VK_COLON, "/", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_8, - modifiers:{}, chars:"!"}, - "!", "Slash", nsIDOMKeyEvent.DOM_VK_EXCLAMATION, "!", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_8, - modifiers:{shiftKey:1}, chars:"\u00A7"}, - "\u00A7", "Slash", nsIDOMKeyEvent.DOM_VK_EXCLAMATION, "\u00A7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // OEM keys with ShiftLock - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_7, - modifiers:{capsLockKey:1}, chars:"\u00B2"}, - "\u00B2", "Backquote", 0, "\u00B2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_7, - modifiers:{capsLockKey:1, shiftKey:1}, chars:""}, - "", "Backquote", 0, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_4, - modifiers:{capsLockKey:1}, chars:"\u00B0"}, - "\u00B0", "Minus", nsIDOMKeyEvent.DOM_VK_CLOSE_PAREN, "\u00B0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_4, - modifiers:{capsLockKey:1, shiftKey:1}, chars:")"}, - ")", "Minus", nsIDOMKeyEvent.DOM_VK_CLOSE_PAREN, ")", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_PLUS, - modifiers:{capsLockKey:1}, chars:"+"}, - "+", "Equal", nsIDOMKeyEvent.DOM_VK_EQUALS, "+", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_PLUS, - modifiers:{capsLockKey:1, shiftKey:1}, chars:"="}, - "=", "Equal", nsIDOMKeyEvent.DOM_VK_EQUALS, "=", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - //yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_6, - // modifiers:{capsLockKey:1}, chars:""}, - // "Dead", "BracketLeft", 0, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); // Dead-key - //yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_6, - // modifiers:{capsLockKey:1, shiftKey:1}, chars:""}, - // ["\u00A8\u00A8", "\u00A8", "\u00A8", "\u00A8"], "BracketLeft", 0, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); // Dead-key - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_1, - modifiers:{capsLockKey:1}, chars:"\u00A3"}, - "\u00A3", "BracketRight", nsIDOMKeyEvent.DOM_VK_DOLLAR, "\u00A3", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_1, - modifiers:{capsLockKey:1, shiftKey:1}, chars:"$"}, - "$", "BracketRight", nsIDOMKeyEvent.DOM_VK_DOLLAR, "$", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_3, - modifiers:{capsLockKey:1}, chars:"%"}, - "%", "Quote", nsIDOMKeyEvent.DOM_VK_PERCENT, "%", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_3, - modifiers:{capsLockKey:1, shiftKey:1}, chars:"\u00F9"}, - "\u00F9", "Quote", nsIDOMKeyEvent.DOM_VK_PERCENT, "\u00F9", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_5, - modifiers:{capsLockKey:1}, chars:"\u00B5"}, - "\u00B5", "Backslash", nsIDOMKeyEvent.DOM_VK_ASTERISK, "\u00B5", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_5, - modifiers:{capsLockKey:1, shiftKey:1}, chars:"*"}, - "*", "Backslash", nsIDOMKeyEvent.DOM_VK_ASTERISK, "*", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_102, - modifiers:{capsLockKey:1}, chars:"<"}, - "<", "IntlBackslash", nsIDOMKeyEvent.DOM_VK_LESS_THAN, "<", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_102, - modifiers:{capsLockKey:1, shiftKey:1}, chars:">"}, - ">", "IntlBackslash", nsIDOMKeyEvent.DOM_VK_LESS_THAN, ">", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_COMMA, - modifiers:{capsLockKey:1}, chars:"?"}, - "?", "KeyM", nsIDOMKeyEvent.DOM_VK_COMMA, "?", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_COMMA, - modifiers:{capsLockKey:1, shiftKey:1}, chars:","}, - ",", "KeyM", nsIDOMKeyEvent.DOM_VK_COMMA, ",", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_PERIOD, - modifiers:{capsLockKey:1}, chars:"."}, - ".", "Comma", nsIDOMKeyEvent.DOM_VK_SEMICOLON, ".", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_PERIOD, - modifiers:{capsLockKey:1, shiftKey:1}, chars:";"}, - ";", "Comma", nsIDOMKeyEvent.DOM_VK_SEMICOLON, ";", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_2, - modifiers:{capsLockKey:1}, chars:"/"}, - "/", "Period", nsIDOMKeyEvent.DOM_VK_COLON, "/", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_2, - modifiers:{capsLockKey:1, shiftKey:1}, chars:":"}, - ":", "Period", nsIDOMKeyEvent.DOM_VK_COLON, ":", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_8, - modifiers:{capsLockKey:1}, chars:"\u00A7"}, - "\u00A7", "Slash", nsIDOMKeyEvent.DOM_VK_EXCLAMATION, "\u00A7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_8, - modifiers:{capsLockKey:1, shiftKey:1}, chars:"!"}, - "!", "Slash", nsIDOMKeyEvent.DOM_VK_EXCLAMATION, "!", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // AltGr - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_0, - modifiers:{altGrKey:1}, chars:"@"}, - "@", "Digit0", nsIDOMKeyEvent.DOM_VK_0, "@", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_1, - modifiers:{altGrKey:1}, chars:""}, - "&", "Digit1", nsIDOMKeyEvent.DOM_VK_1, "&", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - //yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_2, - // modifiers:{altGrKey:1}, chars:""}, - // "Dead", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); // Dead-key - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_3, - modifiers:{altGrKey:1}, chars:"#"}, - "#", "Digit3", nsIDOMKeyEvent.DOM_VK_3, "#", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_4, - modifiers:{altGrKey:1}, chars:"{"}, - "{", "Digit4", nsIDOMKeyEvent.DOM_VK_4, "{", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_5, - modifiers:{altGrKey:1}, chars:"["}, - "[", "Digit5", nsIDOMKeyEvent.DOM_VK_5, "[", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_6, - modifiers:{altGrKey:1}, chars:"|"}, - "|", "Digit6", nsIDOMKeyEvent.DOM_VK_6, "|", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - //yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_7, - // modifiers:{altGrKey:1}, chars:""}, - // "Dead", "Digit7", nsIDOMKeyEvent.DOM_VK_7, "", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); // Dead-key - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_8, - modifiers:{altGrKey:1}, chars:"\\"}, - "\\", "Digit8", nsIDOMKeyEvent.DOM_VK_8, "\\", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_9, - modifiers:{altGrKey:1}, chars:"^"}, - "^", "Digit9", nsIDOMKeyEvent.DOM_VK_9, "^", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_4, - modifiers:{altGrKey:1}, chars:"]"}, - "]", "Minus", nsIDOMKeyEvent.DOM_VK_CLOSE_PAREN, "]", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_PLUS, - modifiers:{altGrKey:1}, chars:"}"}, - "}", "Equal", nsIDOMKeyEvent.DOM_VK_EQUALS, "}", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // German - yield testKey({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:WIN_VK_OEM_2, - modifiers:{}, chars:"#"}, - "#", "Backslash", nsIDOMKeyEvent.DOM_VK_HASH, "#", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:WIN_VK_OEM_2, - modifiers:{shiftKey:1}, chars:"'"}, - "'", "Backslash", nsIDOMKeyEvent.DOM_VK_HASH, "'", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // Khmer - if (OS_VERSION >= WIN7) { - yield testKey({layout:KEYBOARD_LAYOUT_KHMER, keyCode:WIN_VK_2, - modifiers:{}, chars:"\u17E2"}, - "\u17E2", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "\u17E2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_KHMER, keyCode:WIN_VK_2, - modifiers:{shiftKey:1}, chars:"\u17D7"}, - "\u17D7", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "\u17D7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_KHMER, keyCode:WIN_VK_2, // Ctrl+2 should cause inputting Euro sign. - modifiers:{ctrlKey:1}, chars:"\u20AC", isInputtingCharacters:true}, - "\u20AC", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "\u20AC", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_KHMER, keyCode:WIN_VK_2, // Ctrl+Shift+2 shouldn't cause any input. - modifiers:{ctrlKey:1, shiftKey:1}, chars:""}, - "\u17D7", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "\u17D7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_KHMER, keyCode:WIN_VK_2, - modifiers:{altKey:1}, chars:"\u17E2"}, - "\u17E2", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "\u17E2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_KHMER, keyCode:WIN_VK_2, - modifiers:{altKey:1, shiftKey:1}, chars:"\u17D7"}, - "\u17D7", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "\u17D7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_KHMER, keyCode:WIN_VK_2, - modifiers:{altGrKey:1}, chars:"2"}, - "2", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_KHMER, keyCode:WIN_VK_2, - modifiers:{altGrKey:1, shiftKey:1}, chars:"\u19E2"}, - "\u19E2", "Digit2", nsIDOMKeyEvent.DOM_VK_2, "\u19E2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - } - - // Norwegian - yield testKey({layout:KEYBOARD_LAYOUT_NORWEGIAN, keyCode:WIN_VK_OEM_5, - modifiers:{}, chars:"|"}, - "|", "Backquote", nsIDOMKeyEvent.DOM_VK_PIPE, "|", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_NORWEGIAN, keyCode:WIN_VK_OEM_5, - modifiers:{shiftKey:1}, chars:"\u00A7"}, - "\u00A7", "Backquote", nsIDOMKeyEvent.DOM_VK_PIPE, "\u00A7", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - // Brazilian ABNT - yield testKey({layout:KEYBOARD_LAYOUT_BRAZILIAN_ABNT, keyCode:WIN_VK_ABNT_C1, - modifiers:{}, chars:"/"}, - "/", "IntlBackslash", nsIDOMKeyEvent.DOM_VK_SLASH, "/", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_BRAZILIAN_ABNT, keyCode:WIN_VK_ABNT_C1, - modifiers:{shiftKey:1}, chars:"?"}, - "?", "IntlBackslash", nsIDOMKeyEvent.DOM_VK_SLASH, "?", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_BRAZILIAN_ABNT, keyCode:WIN_VK_ABNT_C2, - modifiers:{numLockKey:1}, chars:"."}, - ".", "NumpadComma", nsIDOMKeyEvent.DOM_VK_SEPARATOR, ".", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_BRAZILIAN_ABNT, keyCode:WIN_VK_DECIMAL, - modifiers:{numLockKey:1}, chars:","}, - ",", "NumpadDecimal", nsIDOMKeyEvent.DOM_VK_DECIMAL, ",", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - - // Mac JIS keyboard - // The separator key on JIS keyboard for Mac doesn't cause any character even with Japanese keyboard layout. - yield testKey({layout:KEYBOARD_LAYOUT_JAPANESE, keyCode:WIN_VK_ABNT_C2, - modifiers:{numLockKey:1}, chars:""}, - "", "NumpadComma", nsIDOMKeyEvent.DOM_VK_SEPARATOR, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - yield testKey({layout:KEYBOARD_LAYOUT_JAPANESE, keyCode:WIN_VK_DECIMAL, - modifiers:{numLockKey:1}, chars:"."}, - ".", "NumpadDecimal", nsIDOMKeyEvent.DOM_VK_DECIMAL, ".", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_NUMPAD); - - // Dead keys on any layouts - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_6, - modifiers:{}, chars:""}, - "Dead", "BracketLeft", nsIDOMKeyEvent.DOM_VK_CIRCUMFLEX, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_6, - modifiers:{}, chars:"^^"}, - ["^^", "^", "^", "^"], "BracketLeft", nsIDOMKeyEvent.DOM_VK_CIRCUMFLEX, "^^", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_6, - modifiers:{}, chars:""}, - "Dead", "BracketLeft", nsIDOMKeyEvent.DOM_VK_CIRCUMFLEX, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_A, - modifiers:{}, chars:"\u00E2"}, - ["\u00E2", "\u00E2", "a"], "KeyQ", nsIDOMKeyEvent.DOM_VK_A, "\u00E2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_6, - modifiers:{}, chars:""}, - "Dead", "BracketLeft", nsIDOMKeyEvent.DOM_VK_CIRCUMFLEX, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_A, - modifiers:{shiftKey:1}, chars:"\u00C2"}, - ["\u00C2", "\u00C2", "A"], "KeyQ", nsIDOMKeyEvent.DOM_VK_A, "\u00C2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_6, - modifiers:{}, chars:""}, - "Dead", "BracketLeft", nsIDOMKeyEvent.DOM_VK_CIRCUMFLEX, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_Q, - modifiers:{}, chars:"^q"}, - ["^q", "^", "q", "q"], "KeyA", nsIDOMKeyEvent.DOM_VK_Q, "^q", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_6, - modifiers:{shiftKey:1}, chars:""}, - "Dead", "BracketLeft", nsIDOMKeyEvent.DOM_VK_CIRCUMFLEX, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_6, - modifiers:{shiftKey:1}, chars:"\u00A8\u00A8"}, - ["\u00A8\u00A8", "\u00A8", "\u00A8", "\u00A8"], "BracketLeft", nsIDOMKeyEvent.DOM_VK_CIRCUMFLEX, "\u00A8\u00A8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_6, - modifiers:{shiftKey:1}, chars:""}, - "Dead", "BracketLeft", nsIDOMKeyEvent.DOM_VK_CIRCUMFLEX, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_A, - modifiers:{shiftKey:1}, chars:"\u00C4"}, - ["\u00C4", "\u00C4", "A"], "KeyQ", nsIDOMKeyEvent.DOM_VK_A, "\u00C4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_6, - modifiers:{shiftKey:1}, chars:""}, - "Dead", "BracketLeft", nsIDOMKeyEvent.DOM_VK_CIRCUMFLEX, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_A, - modifiers:{}, chars:"\u00E4"}, - ["\u00E4", "\u00E4", "a"], "KeyQ", nsIDOMKeyEvent.DOM_VK_A, "\u00E4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_OEM_6, - modifiers:{shiftKey:1}, chars:""}, - "Dead", "BracketLeft", nsIDOMKeyEvent.DOM_VK_CIRCUMFLEX, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_FRENCH, keyCode:WIN_VK_Q, - modifiers:{shiftKey:1}, chars:"\u00A8Q"}, - ["\u00A8Q", "\u00A8", "Q", "Q"], "KeyA", nsIDOMKeyEvent.DOM_VK_Q, "\u00A8Q", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1, - modifiers:{}, chars:""}, - "Dead", "BracketLeft", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1, - modifiers:{}, chars:"``"}, - ["``", "`", "`", "`"], "BracketLeft", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "``", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1, - modifiers:{}, chars:""}, - "Dead", "BracketLeft", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_A, - modifiers:{}, chars:"\u00E0"}, - ["\u00E0", "\u00E0", "a"], "KeyA", nsIDOMKeyEvent.DOM_VK_A, "\u00E0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1, - modifiers:{}, chars:""}, - "Dead", "BracketLeft", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_A, - modifiers:{shiftKey:1}, chars:"\u00C0"}, - ["\u00C0", "\u00C0", "A"], "KeyA", nsIDOMKeyEvent.DOM_VK_A, "\u00C0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1, - modifiers:{}, chars:""}, - "Dead", "BracketLeft", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_Q, - modifiers:{}, chars:"`q"}, - ["`q", "`", "q", "q"], "KeyQ", nsIDOMKeyEvent.DOM_VK_Q, "`q", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1, - modifiers:{shiftKey:1}, chars:""}, - "Dead", "BracketLeft", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1, - modifiers:{shiftKey:1}, chars:"^^"}, - ["^^", "^", "^", "^"], "BracketLeft", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "^^", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1, - modifiers:{shiftKey:1}, chars:""}, - "Dead", "BracketLeft", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_A, - modifiers:{shiftKey:1}, chars:"\u00C2"}, - ["\u00C2", "\u00C2", "A"], "KeyA", nsIDOMKeyEvent.DOM_VK_A, "\u00C2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1, - modifiers:{shiftKey:1}, chars:""}, - "Dead", "BracketLeft", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_A, - modifiers:{}, chars:"\u00E2"}, - ["\u00E2", "\u00E2", "a"], "KeyA", nsIDOMKeyEvent.DOM_VK_A, "\u00E2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1, - modifiers:{shiftKey:1}, chars:""}, - "Dead", "BracketLeft", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_Q, - modifiers:{shiftKey:1}, chars:"^Q"}, - ["^Q", "^", "Q", "Q"], "KeyQ", nsIDOMKeyEvent.DOM_VK_Q, "^Q", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_7, - modifiers:{}, chars:""}, - "Dead", "Quote", 0, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_7, - modifiers:{}, chars:"\u00B4\u00B4"}, - ["\u00B4\u00B4", "\u00B4", "\u00B4", "\u00B4"], "Quote", 0, "\u00B4\u00B4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_7, - modifiers:{}, chars:""}, - "Dead", "Quote", 0, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_A, - modifiers:{}, chars:"\u00E1"}, - ["\u00E1", "\u00E1", "a"], "KeyA", nsIDOMKeyEvent.DOM_VK_A, "\u00E1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_7, - modifiers:{}, chars:""}, - "Dead", "Quote", 0, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_A, - modifiers:{shiftKey:1}, chars:"\u00C1"}, - ["\u00C1", "\u00C1", "A"], "KeyA", nsIDOMKeyEvent.DOM_VK_A, "\u00C1", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_7, - modifiers:{}, chars:""}, - "Dead", "Quote", 0, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_Q, - modifiers:{}, chars:"\u00B4q"}, - ["\u00B4q", "\u00B4", "q", "q"], "KeyQ", nsIDOMKeyEvent.DOM_VK_Q, "\u00B4q", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_7, - modifiers:{shiftKey:1}, chars:""}, - "Dead", "Quote", 0, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_7, - modifiers:{shiftKey:1}, chars:"\u00A8\u00A8"}, - ["\u00A8\u00A8", "\u00A8", "\u00A8", "\u00A8"], "Quote", 0, "\u00A8\u00A8", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_7, - modifiers:{shiftKey:1}, chars:""}, - "Dead", "Quote", 0, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_A, - modifiers:{shiftKey:1}, chars:"\u00C4"}, - ["\u00C4", "\u00C4", "A"], "KeyA", nsIDOMKeyEvent.DOM_VK_A, "\u00C4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_7, - modifiers:{shiftKey:1}, chars:""}, - "Dead", "Quote", 0, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_A, - modifiers:{}, chars:"\u00E4"}, - ["\u00E4", "\u00E4", "a"], "KeyA", nsIDOMKeyEvent.DOM_VK_A, "\u00E4", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_7, - modifiers:{shiftKey:1}, chars:""}, - "Dead", "Quote", 0, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_Q, - modifiers:{shiftKey:1}, chars:"\u00A8Q"}, - ["\u00A8Q", "\u00A8", "Q", "Q"], "KeyQ", nsIDOMKeyEvent.DOM_VK_Q, "\u00A8Q", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - if (OS_VERSION >= WIN8) { - // On Russian Mnemonic layout, both 'KeyS' and 'KeyC' are dead key. However, the sequence 'KeyS' -> 'KeyC' causes a composite character. - yield testKey({layout:KEYBOARD_LAYOUT_RUSSIAN_MNEMONIC, keyCode:WIN_VK_S, - modifiers:{}, chars:""}, - "Dead", "KeyS", nsIDOMKeyEvent.DOM_VK_S, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_RUSSIAN_MNEMONIC, keyCode:WIN_VK_S, - modifiers:{}, chars:"\u0441\u0441"}, - ["\u0441\u0441", "\u0441", "\u0441", "\u0441"], "KeyS", nsIDOMKeyEvent.DOM_VK_S, "\u0441\u0441", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_RUSSIAN_MNEMONIC, keyCode:WIN_VK_C, - modifiers:{}, chars:""}, - "Dead", "KeyC", nsIDOMKeyEvent.DOM_VK_C, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_RUSSIAN_MNEMONIC, keyCode:WIN_VK_C, - modifiers:{}, chars:"\u0446\u0446"}, - ["\u0446\u0446", "\u0446", "\u0446", "\u0446"], "KeyC", nsIDOMKeyEvent.DOM_VK_C, "\u0446\u0446", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_RUSSIAN_MNEMONIC, keyCode:WIN_VK_S, - modifiers:{}, chars:""}, - "Dead", "KeyS", nsIDOMKeyEvent.DOM_VK_S, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_RUSSIAN_MNEMONIC, keyCode:WIN_VK_C, - modifiers:{}, chars:"\u0449"}, - ["\u0449", "\u0449", "\u0446"], "KeyC", nsIDOMKeyEvent.DOM_VK_C, "\u0449", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - } - - // When Alt key is pressed, dead key sequence is generated with WM_SYSKEYDOWN, WM_SYSDEADCHAR, WM_SYSCHAR and WM_SYSKEYUP. - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1, - modifiers:{altKey:1}, chars:""}, - "Dead", "BracketLeft", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1, - modifiers:{altKey:1}, chars:"``"}, - ["``", "`", "`", "`"], "BracketLeft", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "``", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1, - modifiers:{altKey:1}, chars:""}, - "Dead", "BracketLeft", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_A, - modifiers:{altKey:1}, chars:"\u00E0"}, - ["\u00E0", "\u00E0", "a"], "KeyA", nsIDOMKeyEvent.DOM_VK_A, "\u00E0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1, - modifiers:{altKey:1}, chars:""}, - "Dead", "BracketLeft", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_A, - modifiers:{altKey:1, shiftKey:1}, chars:"\u00C0"}, - ["\u00C0", "\u00C0", "A"], "KeyA", nsIDOMKeyEvent.DOM_VK_A, "\u00C0", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1, - modifiers:{altKey:1}, chars:""}, - "Dead", "BracketLeft", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_Q, - modifiers:{altKey:1}, chars:"`q"}, - ["`q", "`", "q", "q"], "KeyQ", nsIDOMKeyEvent.DOM_VK_Q, "`q", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1, - modifiers:{altKey:1, shiftKey:1}, chars:""}, - "Dead", "BracketLeft", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1, - modifiers:{altKey:1, shiftKey:1}, chars:"^^"}, - ["^^", "^", "^", "^"], "BracketLeft", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "^^", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1, - modifiers:{altKey:1, shiftKey:1}, chars:""}, - "Dead", "BracketLeft", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_A, - modifiers:{altKey:1, shiftKey:1}, chars:"\u00C2"}, - ["\u00C2", "\u00C2", "A"], "KeyA", nsIDOMKeyEvent.DOM_VK_A, "\u00C2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1, - modifiers:{altKey:1, shiftKey:1}, chars:""}, - "Dead", "BracketLeft", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_A, - modifiers:{altKey:1}, chars:"\u00E2"}, - ["\u00E2", "\u00E2", "a"], "KeyA", nsIDOMKeyEvent.DOM_VK_A, "\u00E2", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_OEM_1, - modifiers:{altKey:1, shiftKey:1}, chars:""}, - "Dead", "BracketLeft", nsIDOMKeyEvent.DOM_VK_BACK_QUOTE, "", SHOULD_DELIVER_KEYDOWN_KEYUP, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - yield testKey({layout:KEYBOARD_LAYOUT_SPANISH, keyCode:WIN_VK_Q, - modifiers:{altKey:1, shiftKey:1}, chars:"^Q"}, - ["^Q", "^", "Q", "Q"], "KeyQ", nsIDOMKeyEvent.DOM_VK_Q, "^Q", SHOULD_DELIVER_ALL, KeyboardEvent.DOM_KEY_LOCATION_STANDARD); - - cleanup(); - } - - - if (IS_WIN) { - yield* testKeysOnWindows(); - } else if (IS_MAC) { - yield* testKeysOnMac(); - } else { - cleanup(); - } -} - -// Test the activation (or not) of an HTML accesskey -function* runAccessKeyTests() -{ - var button = document.getElementById("button"); - var activationCount; - - function onClick(e) - { - ++activationCount; - } - - // The first parameter is the complete input event. The second and third parameters are - // what to test against. - function testKey(aEvent, aAccessKey, aShouldActivate) - { - activationCount = 0; - button.setAttribute("accesskey", aAccessKey); - - return synthesizeKey(aEvent, "button", function() { - - var name = eventToString(aEvent); - - is(activationCount, aShouldActivate ? 1 : 0, name + ", activating '" + aAccessKey + "'"); - - continueTest(); - }); - } - - button.addEventListener("click", onClick, false); - - // These tests have to be per-plaform. - if (IS_MAC) { - // Basic sanity checks - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A, - modifiers:{}, chars:"a", unmodifiedChars:"a"}, - "a", false); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A, - modifiers:{ctrlKey:1}, chars:"\u0001", unmodifiedChars:"a"}, - "a", false); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A, - modifiers:{ctrlKey:1}, chars:"\u0001", unmodifiedChars:"a"}, - "A", false); - - // Shift-ctrl does not activate accesskeys - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0001", unmodifiedChars:"A"}, - "a", false); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0001", unmodifiedChars:"A"}, - "A", false); - // Alt-ctrl activate accesskeys - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A, - modifiers:{ctrlKey:1, altKey:1}, chars:"\u0001", unmodifiedChars:"a"}, - "a", true); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_A, - modifiers:{ctrlKey:1, altKey:1}, chars:"\u0001", unmodifiedChars:"a"}, - "A", true); - - // Greek layout can activate a Latin accesskey - yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:MAC_VK_ANSI_A, - modifiers:{ctrlKey:1, altKey:1}, chars:"\u0001", unmodifiedChars:"\u03b1"}, - "a", true); - yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:MAC_VK_ANSI_A, - modifiers:{ctrlKey:1, altKey:1}, chars:"\u0001", unmodifiedChars:"\u03b1"}, - "A", true); - // ... and a Greek accesskey! - yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:MAC_VK_ANSI_A, - modifiers:{ctrlKey:1, altKey:1}, chars:"\u0001", unmodifiedChars:"\u03b1"}, - "\u03b1", true); - yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:MAC_VK_ANSI_A, - modifiers:{ctrlKey:1, altKey:1}, chars:"\u0001", unmodifiedChars:"\u03b1"}, - "\u0391", true); - - // bug 359638 - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Period, - modifiers:{ctrlKey:1, altKey:1}, chars:".", unmodifiedChars:"."}, - ".", true); - - // German (KCHR/KeyTranslate case) - yield testKey({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:MAC_VK_ANSI_A, - modifiers:{ctrlKey:1, altKey:1}, chars:"a", unmodifiedChars:"a"}, - "a", true); - yield testKey({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:MAC_VK_ANSI_A, - modifiers:{ctrlKey:1, altKey:1}, chars:"a", unmodifiedChars:"a"}, - "A", true); - yield testKey({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:MAC_VK_ANSI_LeftBracket, - modifiers:{ctrlKey:1, altKey:1}, chars:"\u00fc", unmodifiedChars:"\u00fc"}, - "\u00fc", true); - yield testKey({layout:KEYBOARD_LAYOUT_GERMAN, keyCode:MAC_VK_ANSI_LeftBracket, - modifiers:{ctrlKey:1, altKey:1}, chars:"\u00fc", unmodifiedChars:"\u00fc"}, - "\u00dc", true); - } - else if (IS_WIN) { - // Basic sanity checks - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A, - modifiers:{}, chars:"a"}, - "a", false); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A, - modifiers:{shiftKey:1, altKey:1}, chars:"A"}, - "a", true); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A, - modifiers:{shiftKey:1, altKey:1}, chars:"A"}, - "A", true); - - // shift-alt-ctrl does not activate accesskeys - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A, - modifiers:{ctrlKey:1, shiftKey:1, altKey:1}, chars:""}, - "a", false); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A, - modifiers:{ctrlKey:1, shiftKey:1, altKey:1}, chars:""}, - "A", false); - - // Greek layout can activate a Latin accesskey - yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:WIN_VK_A, - modifiers:{shiftKey:1, altKey:1}, chars:"\u0391"}, - "a", true); - yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:WIN_VK_A, - modifiers:{shiftKey:1, altKey:1}, chars:"\u0391"}, - "A", true); - // ... and a Greek accesskey! - yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:WIN_VK_A, - modifiers:{shiftKey:1, altKey:1}, chars:"\u0391"}, - "\u03b1", true); - yield testKey({layout:KEYBOARD_LAYOUT_GREEK, keyCode:WIN_VK_A, - modifiers:{shiftKey:1, altKey:1}, chars:"\u0391"}, - "\u0391", true); - - // bug 359638 - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_PERIOD, - modifiers:{shiftKey:1, altKey:1}, chars:".", unmodifiedChars:"."}, - ".", true); - } - - button.removeEventListener("click", onClick, false); -} - -function* runXULKeyTests() -{ - var commandElements = { - expectedCommand: document.getElementById("expectedCommand"), - unexpectedCommand: document.getElementById("unexpectedCommand"), - expectedReservedCommand: document.getElementById("expectedReservedCommand") - }; - // Enable all command elements. - for (var id in commandElements) { - commandElements[id].removeAttribute("disabled"); - } - - var keyEvents = []; - - function onKeyInDefaultEventGroup(aDOMEvent) - { - if (isModifierKeyEvent(aDOMEvent)) { - return; - } - keyEvents.push({ type: aDOMEvent.type, group: "default", phase: getPhase(aDOMEvent), currentTarget: eventTargetToString(aDOMEvent.currentTarget) }); - } - - function onKeyInSystemEventGroup(aDOMEvent) - { - if (isModifierKeyEvent(aDOMEvent)) { - return; - } - keyEvents.push({ type: aDOMEvent.type, group: "system", phase: getPhase(aDOMEvent), currentTarget: eventTargetToString(aDOMEvent.currentTarget) }); - } - - var buttonParent = document.getElementById("button").parentNode; - buttonParent.addEventListener("keydown", onKeyInDefaultEventGroup, true); - buttonParent.addEventListener("keypress", onKeyInDefaultEventGroup, true); - buttonParent.addEventListener("keydown", onKeyInDefaultEventGroup, false); - buttonParent.addEventListener("keypress", onKeyInDefaultEventGroup, false); - SpecialPowers.addSystemEventListener(buttonParent, "keydown", onKeyInSystemEventGroup, true); - SpecialPowers.addSystemEventListener(buttonParent, "keypress", onKeyInSystemEventGroup, true); - SpecialPowers.addSystemEventListener(buttonParent, "keydown", onKeyInSystemEventGroup, false); - SpecialPowers.addSystemEventListener(buttonParent, "keypress", onKeyInSystemEventGroup, false); - - function finializeKeyElementTest() - { - buttonParent.removeEventListener("keydown", onKeyInDefaultEventGroup, true); - buttonParent.removeEventListener("keypress", onKeyInDefaultEventGroup, true); - buttonParent.removeEventListener("keydown", onKeyInDefaultEventGroup, false); - buttonParent.removeEventListener("keypress", onKeyInDefaultEventGroup, false); - SpecialPowers.removeSystemEventListener(buttonParent, "keydown", onKeyInSystemEventGroup, true); - SpecialPowers.removeSystemEventListener(buttonParent, "keypress", onKeyInSystemEventGroup, true); - SpecialPowers.removeSystemEventListener(buttonParent, "keydown", onKeyInSystemEventGroup, false); - SpecialPowers.removeSystemEventListener(buttonParent, "keypress", onKeyInSystemEventGroup, false); - } - - // If aKeyElement is empty string, this function tests if the event kicks - // no key elements. - function testKeyElement(aEvent, aKeyElementId) - { - var testName = "testKeyElement (with non-reserved command element): " + eventToString(aEvent) + " "; - var keyElement = aKeyElementId == "" ? null : document.getElementById(aKeyElementId); - if (keyElement) { - keyElement.setAttribute("command", "expectedCommand"); - } - - for (var id in commandElements) { - commandElements[id].activeCount = 0; - } - - keyEvents = []; - return synthesizeKey(aEvent, "button", function() { - if (keyElement) { - is(commandElements["expectedCommand"].activeCount, 1, testName + "the command element (id='expectedCommand') should be preformed"); - } else { - is(commandElements["expectedCommand"].activeCount, 0, testName + "the command element (id='expectedCommand') shouldn't be preformed"); - } - is(commandElements["unexpectedCommand"].activeCount, 0, testName + "the command element (id='unexpectedCommand') shouldn't be preformed"); - is(commandElements["expectedReservedCommand"].activeCount, 0, testName + "the command element (id='expectedReservedCommand') shouldn't be preformed"); - - function checkFiredEvents() - { - is(keyEvents.length, 8, testName + "wrong number events fired"); - 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"); - 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"); - - 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"); - 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"); - - 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"); - 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"); - - 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"); - 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"); - } - - checkFiredEvents(); - - if (keyElement) { - testName = "testKeyElement (with reserved command element): " + eventToString(aEvent) + " "; - keyElement.setAttribute("command", "expectedReservedCommand"); - - for (id in commandElements) { - commandElements[id].activeCount = 0; - } - keyEvents = []; - synthesizeKey(aEvent, "button", function() { - is(commandElements["expectedCommand"].activeCount, 0, testName + "the command element (id='expectedCommand') shouldn't be preformed"); - is(commandElements["unexpectedCommand"].activeCount, 0, testName + "the command element (id='unexpectedCommand') shouldn't be preformed"); - is(commandElements["expectedReservedCommand"].activeCount, 1, testName + "the command element (id='expectedReservedCommand') should be preformed"); - - checkFiredEvents(); - - if (keyElement) { - keyElement.setAttribute("command", "unexpectedCommand"); - } - continueTest(); - }); - } else { - if (keyElement) { - keyElement.setAttribute("command", "unexpectedCommand"); - } - continueTest(); - } - }); - } - - if (IS_MAC) { - yield testKeyElement({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Semicolon, - modifiers:{metaKey:1}, chars:";", unmodifiedChars:";"}, - "unshiftedKey"); - yield testKeyElement({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Semicolon, - modifiers:{metaKey:1, shiftKey:1}, chars:";", unmodifiedChars:":"}, - "shiftedKey"); - yield testKeyElement({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Quote, - modifiers:{metaKey:1}, chars:"'", unmodifiedChars:"'"}, - "reservedUnshiftedKey"); - yield testKeyElement({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_Quote, - modifiers:{metaKey:1, shiftKey:1}, chars:"\"", unmodifiedChars:"'"}, - "reservedShiftedKey"); - } - else if (IS_WIN) { - yield testKeyElement({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_1, - modifiers:{ctrlKey:1}, chars:""}, - "unshiftedKey"); - yield testKeyElement({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_1, - modifiers:{ctrlKey:1, shiftKey:1}, chars:""}, - "shiftedKey"); - yield testKeyElement({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_7, - modifiers:{ctrlKey:1}, chars:""}, - "reservedUnshiftedKey"); - yield testKeyElement({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_OEM_7, - modifiers:{ctrlKey:1, shiftKey:1}, chars:""}, - "reservedShiftedKey"); - } - - // 429160 - if (IS_MAC) { - yield testKeyElement({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_F, - modifiers:{metaKey:1, altKey:1}, chars:"\u0192", unmodifiedChars:"f"}, - "commandOptionF"); - } - else if (IS_WIN) { - yield testKeyElement({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_F, - modifiers:{ctrlKey:1, altKey:1}, chars:"\u0006"}, - "commandOptionF"); - } - - // 432112 - if (IS_MAC) { - yield testKeyElement({layout:KEYBOARD_LAYOUT_SWEDISH, keyCode:MAC_VK_ANSI_Minus, - modifiers:{metaKey:1, shiftKey:1}, chars:"+", unmodifiedChars:"?"}, - "question"); - } - else if (IS_WIN) { - yield testKeyElement({layout:KEYBOARD_LAYOUT_SWEDISH, keyCode:WIN_VK_OEM_PLUS, - modifiers:{ctrlKey:1, shiftKey:1}, chars:""}, - "question"); - // For testing if Ctrl+? is kicked without Shift state, temporarily disable - // Ctrl-+ key element. - var unshiftedPlusKeyElement = document.getElementById("unshiftedPlus"); - unshiftedPlusKeyElement.setAttribute("disabled", "true"); - yield testKeyElement({layout:KEYBOARD_LAYOUT_SWEDISH, keyCode:WIN_VK_OEM_PLUS, - modifiers:{ctrlKey:1}, chars:""}, - ""); - unshiftedPlusKeyElement.removeAttribute("disabled"); - } - - // bug 433192 - if (IS_WIN) { - yield testKeyElement({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_X, - modifiers:{ctrlKey:1}, chars:"\u0018"}, - "unshiftedX"); - yield testKeyElement({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_X, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0018"}, - "shiftedX"); - yield testKeyElement({layout:KEYBOARD_LAYOUT_ARABIC, keyCode:WIN_VK_X, - modifiers:{ctrlKey:1}, chars:"\u0018"}, - "unshiftedX"); - yield testKeyElement({layout:KEYBOARD_LAYOUT_ARABIC, keyCode:WIN_VK_X, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0018"}, - "shiftedX"); - yield testKeyElement({layout:KEYBOARD_LAYOUT_HEBREW, keyCode:WIN_VK_X, - modifiers:{ctrlKey:1}, chars:"\u0018"}, - "unshiftedX"); - yield testKeyElement({layout:KEYBOARD_LAYOUT_HEBREW, keyCode:WIN_VK_X, - modifiers:{ctrlKey:1, shiftKey:1}, chars:"\u0018"}, - "shiftedX"); - yield testKeyElement({layout:KEYBOARD_LAYOUT_JAPANESE, keyCode:WIN_VK_OEM_PLUS, - modifiers:{ctrlKey:1, shiftKey:1}, chars:""}, - "unshiftedPlus"); - } - - // bug 759346 - if (IS_WIN) { - yield testKeyElement({layout:KEYBOARD_LAYOUT_THAI, keyCode:WIN_VK_1, - modifiers:{ctrlKey:1}, chars:""}, - ""); - yield testKeyElement({layout:KEYBOARD_LAYOUT_THAI, keyCode:WIN_VK_1, - modifiers:{ctrlKey:1, shiftKey:1}, chars:""}, - "unshiftedPlus"); - yield testKeyElement({layout:KEYBOARD_LAYOUT_THAI, keyCode:WIN_VK_OEM_PLUS, - modifiers:{ctrlKey:1}, chars:""}, - "unshiftedPlus"); - yield testKeyElement({layout:KEYBOARD_LAYOUT_THAI, keyCode:WIN_VK_OEM_PLUS, - modifiers:{ctrlKey:1, shiftKey:1}, chars:""}, - ""); - } - - for (id in commandElements) { - commandElements[id].setAttribute("disabled", "true"); - } - finializeKeyElementTest(); -} - -function* runReservedKeyTests() -{ - var browser = document.getElementById("browser"); - var contents = [ - browser.contentWindow, - browser.contentDocument, - browser.contentDocument.documentElement, - browser.contentDocument.body, - browser.contentDocument.getElementById("content_button") - ]; - - for (var i = 0; i < contents.length; i++) { - contents[i].addEventListener("keydown", onKeyInDefaultEventGroup, true); - contents[i].addEventListener("keypress", onKeyInDefaultEventGroup, true); - contents[i].addEventListener("keydown", onKeyInDefaultEventGroup, false); - contents[i].addEventListener("keypress", onKeyInDefaultEventGroup, false); - SpecialPowers.addSystemEventListener(contents[i], "keydown", onKeyInSystemEventGroup, true); - SpecialPowers.addSystemEventListener(contents[i], "keypress", onKeyInSystemEventGroup, true); - SpecialPowers.addSystemEventListener(contents[i], "keydown", onKeyInSystemEventGroup, false); - SpecialPowers.addSystemEventListener(contents[i], "keypress", onKeyInSystemEventGroup, false); - } - - var keyEvents = []; - - function onKeyInDefaultEventGroup(aDOMEvent) - { - if (isModifierKeyEvent(aDOMEvent)) { - return; - } - keyEvents.push({ type: aDOMEvent.type, group: "default", phase: getPhase(aDOMEvent), currentTarget: eventTargetToString(aDOMEvent.currentTarget) }); - } - - function onKeyInSystemEventGroup(aDOMEvent) - { - if (isModifierKeyEvent(aDOMEvent)) { - return; - } - keyEvents.push({ type: aDOMEvent.type, group: "system", phase: getPhase(aDOMEvent), currentTarget: eventTargetToString(aDOMEvent.currentTarget) }); - // prevents reserved default action - if (aDOMEvent.type == "keypress" && - aDOMEvent.eventPhase == aDOMEvent.BUBBLING_PHASE && - aDOMEvent.currentTarget == browser.contentWindow) { - aDOMEvent.preventDefault(); - } - } - - function finializeKeyElementTest() - { - for (var i = 0; i < contents.length; i++) { - contents[i].removeEventListener("keydown", onKeyInDefaultEventGroup, true); - contents[i].removeEventListener("keypress", onKeyInDefaultEventGroup, true); - contents[i].removeEventListener("keydown", onKeyInDefaultEventGroup, false); - contents[i].removeEventListener("keypress", onKeyInDefaultEventGroup, false); - SpecialPowers.removeSystemEventListener(contents[i], "keydown", onKeyInSystemEventGroup, true); - SpecialPowers.removeSystemEventListener(contents[i], "keypress", onKeyInSystemEventGroup, true); - SpecialPowers.removeSystemEventListener(contents[i], "keydown", onKeyInSystemEventGroup, false); - SpecialPowers.removeSystemEventListener(contents[i], "keypress", onKeyInSystemEventGroup, false); - } - } - - function testReservedKey(aEvent) - { - keyEvents = []; - return synthesizeKey(aEvent, "content_button", function() { - testName = "testReservedKey: " + eventToString(aEvent) + " "; - is(keyEvents.length, 20, testName + "wrong number events fired"); - 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"); - 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"); - 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"); - 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"); - - 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"); - 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"); - - 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"); - 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"); - 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"); - 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"); - - 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"); - 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"); - 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"); - 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"); - - 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"); - 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"); - - 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"); - 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"); - 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"); - 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"); - - continueTest(); - }); - } - - if (IS_MAC) { - // Cmd+T is reserved for opening new tab. - yield testReservedKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:MAC_VK_ANSI_T, - modifiers:{metaKey:1}, chars:"t", unmodifiedChars:"t"}); - } else if (IS_WIN) { - // Ctrl+T is reserved for opening new tab. - yield testReservedKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_T, - modifiers:{ctrlKey:1}, chars:"\u0014"}); - yield testReservedKey({layout:KEYBOARD_LAYOUT_ARABIC, keyCode:WIN_VK_T, - modifiers:{ctrlKey:1}, chars:"\u0014"}); - } - - finializeKeyElementTest(); -} - -function* runTextInputTests() -{ - var textbox = document.getElementById("textbox"); - - function testKey(aEvent, aExpectText) { - textbox.value = ""; - textbox.focus(); - - var name = eventToString(aEvent); - - // Check if the text comes with keypress events rather than composition events. - var keypress = 0; - function onKeypress(aEvent) { - keypress++; - if (keypress == 1 && aExpectText == "") { - if (!aEvent.ctrlKey && !aEvent.altKey) { - is(aEvent.charCode, 0, name + ", the charCode value should be 0 when it shouldn't cause inputting text"); - } - return; - } - if (keypress > aExpectText.length) { - ok(false, name + " causes too many keypress events"); - return; - } - is(aEvent.key, aExpectText[keypress - 1], - name + ", " + keypress + "th keypress event's key value should be '" + aExpectText[keypress - 1] + "'"); - is(aEvent.charCode, aExpectText.charCodeAt(keypress - 1), - name + ", " + keypress + "th keypress event's charCode value should be 0x" + parseInt(aExpectText.charCodeAt(keypress - 1), 16)); - } - textbox.addEventListener("keypress", onKeypress, true); - - return synthesizeKey(aEvent, "textbox", function() { - textbox.removeEventListener("keypress", onKeypress, true); - if (aExpectText == "") { - is(keypress, 1, name + " should cause one keypress event because it doesn't cause inputting text"); - } else { - is(keypress, aExpectText.length, name + " should cause " + aExpectText.length + " keypress events"); - is(textbox.value, aExpectText, name + " does not input correct text."); - } - - continueTest(); - }); - } - - if (IS_MAC) { - yield testKey({layout:KEYBOARD_LAYOUT_ARABIC_PC, keyCode:MAC_VK_ANSI_G, - modifiers:{shiftKey:1}, chars:"\u0644\u0623", unmodifiedChars:"\u0644\u0623"}, - "\u0644\u0623"); - yield testKey({layout:KEYBOARD_LAYOUT_ARABIC_PC, keyCode:MAC_VK_ANSI_T, - modifiers:{shiftKey:1}, chars:"\u0644\u0625", unmodifiedChars:"\u0644\u0625"}, - "\u0644\u0625"); - yield testKey({layout:KEYBOARD_LAYOUT_ARABIC_PC, keyCode:MAC_VK_ANSI_B, - modifiers:{shiftKey:1}, chars:"\u0644\u0622", unmodifiedChars:"\u0644\u0622"}, - "\u0644\u0622"); - yield testKey({layout:KEYBOARD_LAYOUT_ARABIC_PC, keyCode:MAC_VK_ANSI_B, - modifiers:{}, chars:"\u0644\u0627", unmodifiedChars:"\u0644\u0627"}, - "\u0644\u0627"); - } else if (IS_WIN) { - // Basic sanity checks - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A, - modifiers:{}, chars:"a"}, - "a"); - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A, - modifiers:{shiftKey:1}, chars:"A"}, - "A"); - // When Ctrl+Alt are pressed, any text should not be inputted. - yield testKey({layout:KEYBOARD_LAYOUT_EN_US, keyCode:WIN_VK_A, - modifiers:{ctrlKey:1, altKey:1}, chars:""}, - ""); - - // Lithuanian AltGr should be consumed at 9/0 keys pressed - yield testKey({layout:KEYBOARD_LAYOUT_LITHUANIAN, keyCode:WIN_VK_8, - modifiers:{}, chars:"\u016B"}, - "\u016B"); - yield testKey({layout:KEYBOARD_LAYOUT_LITHUANIAN, keyCode:WIN_VK_9, - modifiers:{}, chars:"9"}, - "9"); - yield testKey({layout:KEYBOARD_LAYOUT_LITHUANIAN, keyCode:WIN_VK_0, - modifiers:{}, chars:"0"}, - "0"); - yield testKey({layout:KEYBOARD_LAYOUT_LITHUANIAN, keyCode:WIN_VK_8, - modifiers:{ctrlKey:1, altKey:1}, chars:"8"}, - "8"); - yield testKey({layout:KEYBOARD_LAYOUT_LITHUANIAN, keyCode:WIN_VK_9, - modifiers:{ctrlKey:1, altKey:1}, chars:"9"}, - "9"); - yield testKey({layout:KEYBOARD_LAYOUT_LITHUANIAN, keyCode:WIN_VK_0, - modifiers:{ctrlKey:1, altKey:1}, chars:"0"}, - "0"); - } - - // XXX We need to move focus for canceling to search the autocomplete - // result. If we don't do here, Fx will crash at end of this tests. - document.getElementById("button").focus(); -} - -function* runAllTests() { - yield* runKeyEventTests(); - yield* runAccessKeyTests(); - yield* runXULKeyTests(); - yield* runReservedKeyTests(); - yield* runTextInputTests(); -} - -var gTestContinuation = null; - -function continueTest() -{ - if (!gTestContinuation) { - gTestContinuation = runAllTests(); - } - var ret = gTestContinuation.next(); - if (ret.done) { - SimpleTest.finish(); - } else { - is(ret.value, true, "Key synthesized successfully"); - } -} - -function runTest() -{ - if (!IS_MAC && !IS_WIN) { - todo(false, "This test is supported on MacOSX and Windows only. (Bug 431503)"); - return; - } - - if (IS_WIN && OS_VERSION >= WIN8) { - // Switching keyboard layout to Russian - Mnemonic causes 2 assertions in KeyboardLayout::LoadLayout(). - SimpleTest.expectAssertions(2, 2); - } - SimpleTest.waitForExplicitFinish(); - - clearInfobars(); - - continueTest(); -} - -]]> -</script> - -</window> |