| This tests that DOM keydown and keyup events are dispatched to a non-editable <body> on iOS when pressing special keys on a hardware keyboard. To run this test manually, verify that two messages are emitted when you press the following keys: Tab, ↑, ↓, ←, →, Delete, End, Enter, Escape, Home, left Alt, left ⌘ Command, left Ctrl, left ⇧ Shift, Page Down, Page Up, Return, right Alt, right ⌘ Command, right Ctrl, right ⇧ Shift, Numpad ,, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15, F16. |
| |
| type: keydown, key: Tab, code: Tab, keyIdentifier: U+0009, keyCode: 9, charCode: 0, keyCode: 9, which: 9 |
| type: keyup, key: Tab, code: Tab, keyIdentifier: U+0009, keyCode: 9, charCode: 0, keyCode: 9, which: 9 |
| type: keydown, key: ArrowUp, code: ArrowUp, keyIdentifier: Up, keyCode: 38, charCode: 0, keyCode: 38, which: 38 |
| type: keyup, key: ArrowUp, code: ArrowUp, keyIdentifier: Up, keyCode: 38, charCode: 0, keyCode: 38, which: 38 |
| type: keydown, key: ArrowDown, code: ArrowDown, keyIdentifier: Down, keyCode: 40, charCode: 0, keyCode: 40, which: 40 |
| type: keyup, key: ArrowDown, code: ArrowDown, keyIdentifier: Down, keyCode: 40, charCode: 0, keyCode: 40, which: 40 |
| type: keydown, key: ArrowLeft, code: ArrowLeft, keyIdentifier: Left, keyCode: 37, charCode: 0, keyCode: 37, which: 37 |
| type: keyup, key: ArrowLeft, code: ArrowLeft, keyIdentifier: Left, keyCode: 37, charCode: 0, keyCode: 37, which: 37 |
| type: keydown, key: ArrowRight, code: ArrowRight, keyIdentifier: Right, keyCode: 39, charCode: 0, keyCode: 39, which: 39 |
| type: keyup, key: ArrowRight, code: ArrowRight, keyIdentifier: Right, keyCode: 39, charCode: 0, keyCode: 39, which: 39 |
| type: keydown, key: Backspace, code: Backspace, keyIdentifier: U+0008, keyCode: 8, charCode: 0, keyCode: 8, which: 8 |
| type: keyup, key: Backspace, code: Backspace, keyIdentifier: U+0008, keyCode: 8, charCode: 0, keyCode: 8, which: 8 |
| type: keydown, key: End, code: End, keyIdentifier: End, keyCode: 35, charCode: 0, keyCode: 35, which: 35 |
| type: keyup, key: End, code: End, keyIdentifier: End, keyCode: 35, charCode: 0, keyCode: 35, which: 35 |
| type: keydown, key: Enter, code: Enter, keyIdentifier: Enter, keyCode: 13, charCode: 0, keyCode: 13, which: 13 |
| type: keyup, key: Enter, code: Enter, keyIdentifier: Enter, keyCode: 13, charCode: 0, keyCode: 13, which: 13 |
| type: keydown, key: Escape, code: Escape, keyIdentifier: U+001B, keyCode: 27, charCode: 0, keyCode: 27, which: 27 |
| type: keyup, key: Escape, code: Escape, keyIdentifier: U+001B, keyCode: 27, charCode: 0, keyCode: 27, which: 27 |
| type: keydown, key: Home, code: Home, keyIdentifier: Home, keyCode: 36, charCode: 0, keyCode: 36, which: 36 |
| type: keyup, key: Home, code: Home, keyIdentifier: Home, keyCode: 36, charCode: 0, keyCode: 36, which: 36 |
| type: keydown, key: Alt, code: AltLeft, keyIdentifier: Alt, keyCode: 18, charCode: 0, keyCode: 18, which: 18 |
| type: keyup, key: Alt, code: AltLeft, keyIdentifier: Alt, keyCode: 18, charCode: 0, keyCode: 18, which: 18 |
| type: keydown, key: Meta, code: MetaLeft, keyIdentifier: Meta, keyCode: 91, charCode: 0, keyCode: 91, which: 91 |
| type: keyup, key: Meta, code: MetaLeft, keyIdentifier: Meta, keyCode: 91, charCode: 0, keyCode: 91, which: 91 |
| type: keydown, key: Control, code: ControlLeft, keyIdentifier: Control, keyCode: 17, charCode: 0, keyCode: 17, which: 17 |
| type: keyup, key: Control, code: ControlLeft, keyIdentifier: Control, keyCode: 17, charCode: 0, keyCode: 17, which: 17 |
| type: keydown, key: Shift, code: ShiftLeft, keyIdentifier: Shift, keyCode: 16, charCode: 0, keyCode: 16, which: 16 |
| type: keyup, key: Shift, code: ShiftLeft, keyIdentifier: Shift, keyCode: 16, charCode: 0, keyCode: 16, which: 16 |
| type: keydown, key: PageDown, code: PageDown, keyIdentifier: PageDown, keyCode: 34, charCode: 0, keyCode: 34, which: 34 |
| type: keyup, key: PageDown, code: PageDown, keyIdentifier: PageDown, keyCode: 34, charCode: 0, keyCode: 34, which: 34 |
| type: keydown, key: PageUp, code: PageUp, keyIdentifier: PageUp, keyCode: 33, charCode: 0, keyCode: 33, which: 33 |
| type: keyup, key: PageUp, code: PageUp, keyIdentifier: PageUp, keyCode: 33, charCode: 0, keyCode: 33, which: 33 |
| type: keydown, key: Enter, code: Enter, keyIdentifier: Enter, keyCode: 13, charCode: 0, keyCode: 13, which: 13 |
| type: keyup, key: Enter, code: Enter, keyIdentifier: Enter, keyCode: 13, charCode: 0, keyCode: 13, which: 13 |
| type: keydown, key: Alt, code: AltRight, keyIdentifier: Alt, keyCode: 18, charCode: 0, keyCode: 18, which: 18 |
| type: keyup, key: Alt, code: AltRight, keyIdentifier: Alt, keyCode: 18, charCode: 0, keyCode: 18, which: 18 |
| type: keydown, key: Meta, code: MetaRight, keyIdentifier: Meta, keyCode: 93, charCode: 0, keyCode: 93, which: 93 |
| type: keyup, key: Meta, code: MetaRight, keyIdentifier: Meta, keyCode: 93, charCode: 0, keyCode: 93, which: 93 |
| type: keydown, key: Control, code: ControlRight, keyIdentifier: Control, keyCode: 17, charCode: 0, keyCode: 17, which: 17 |
| type: keyup, key: Control, code: ControlRight, keyIdentifier: Control, keyCode: 17, charCode: 0, keyCode: 17, which: 17 |
| type: keydown, key: Shift, code: ShiftRight, keyIdentifier: Shift, keyCode: 16, charCode: 0, keyCode: 16, which: 16 |
| type: keyup, key: Shift, code: ShiftRight, keyIdentifier: Shift, keyCode: 16, charCode: 0, keyCode: 16, which: 16 |
| type: keydown, key: ,, code: NumpadComma, keyIdentifier: U+002C, keyCode: 108, charCode: 0, keyCode: 108, which: 108 |
| type: keyup, key: ,, code: NumpadComma, keyIdentifier: U+002C, keyCode: 108, charCode: 0, keyCode: 108, which: 108 |
| type: keydown, key: F1, code: F1, keyIdentifier: F1, keyCode: 112, charCode: 0, keyCode: 112, which: 112 |
| type: keyup, key: F1, code: F1, keyIdentifier: F1, keyCode: 112, charCode: 0, keyCode: 112, which: 112 |
| type: keydown, key: F2, code: F2, keyIdentifier: F2, keyCode: 113, charCode: 0, keyCode: 113, which: 113 |
| type: keyup, key: F2, code: F2, keyIdentifier: F2, keyCode: 113, charCode: 0, keyCode: 113, which: 113 |
| type: keydown, key: F3, code: F3, keyIdentifier: F3, keyCode: 114, charCode: 0, keyCode: 114, which: 114 |
| type: keyup, key: F3, code: F3, keyIdentifier: F3, keyCode: 114, charCode: 0, keyCode: 114, which: 114 |
| type: keydown, key: F4, code: F4, keyIdentifier: F4, keyCode: 115, charCode: 0, keyCode: 115, which: 115 |
| type: keyup, key: F4, code: F4, keyIdentifier: F4, keyCode: 115, charCode: 0, keyCode: 115, which: 115 |
| type: keydown, key: F5, code: F5, keyIdentifier: F5, keyCode: 116, charCode: 0, keyCode: 116, which: 116 |
| type: keyup, key: F5, code: F5, keyIdentifier: F5, keyCode: 116, charCode: 0, keyCode: 116, which: 116 |
| type: keydown, key: F6, code: F6, keyIdentifier: F6, keyCode: 117, charCode: 0, keyCode: 117, which: 117 |
| type: keyup, key: F6, code: F6, keyIdentifier: F6, keyCode: 117, charCode: 0, keyCode: 117, which: 117 |
| type: keydown, key: F7, code: F7, keyIdentifier: F7, keyCode: 118, charCode: 0, keyCode: 118, which: 118 |
| type: keyup, key: F7, code: F7, keyIdentifier: F7, keyCode: 118, charCode: 0, keyCode: 118, which: 118 |
| type: keydown, key: F8, code: F8, keyIdentifier: F8, keyCode: 119, charCode: 0, keyCode: 119, which: 119 |
| type: keyup, key: F8, code: F8, keyIdentifier: F8, keyCode: 119, charCode: 0, keyCode: 119, which: 119 |
| type: keydown, key: F9, code: F9, keyIdentifier: F9, keyCode: 120, charCode: 0, keyCode: 120, which: 120 |
| type: keyup, key: F9, code: F9, keyIdentifier: F9, keyCode: 120, charCode: 0, keyCode: 120, which: 120 |
| type: keydown, key: F10, code: F10, keyIdentifier: F10, keyCode: 121, charCode: 0, keyCode: 121, which: 121 |
| type: keyup, key: F10, code: F10, keyIdentifier: F10, keyCode: 121, charCode: 0, keyCode: 121, which: 121 |
| type: keydown, key: F11, code: F11, keyIdentifier: F11, keyCode: 122, charCode: 0, keyCode: 122, which: 122 |
| type: keyup, key: F11, code: F11, keyIdentifier: F11, keyCode: 122, charCode: 0, keyCode: 122, which: 122 |
| type: keydown, key: F12, code: F12, keyIdentifier: F12, keyCode: 123, charCode: 0, keyCode: 123, which: 123 |
| type: keyup, key: F12, code: F12, keyIdentifier: F12, keyCode: 123, charCode: 0, keyCode: 123, which: 123 |
| type: keydown, key: F13, code: F13, keyIdentifier: F13, keyCode: 124, charCode: 0, keyCode: 124, which: 124 |
| type: keyup, key: F13, code: F13, keyIdentifier: F13, keyCode: 124, charCode: 0, keyCode: 124, which: 124 |
| type: keydown, key: F14, code: F14, keyIdentifier: F14, keyCode: 125, charCode: 0, keyCode: 125, which: 125 |
| type: keyup, key: F14, code: F14, keyIdentifier: F14, keyCode: 125, charCode: 0, keyCode: 125, which: 125 |
| type: keydown, key: F15, code: F15, keyIdentifier: F15, keyCode: 126, charCode: 0, keyCode: 126, which: 126 |
| type: keyup, key: F15, code: F15, keyIdentifier: F15, keyCode: 126, charCode: 0, keyCode: 126, which: 126 |
| type: keydown, key: F16, code: F16, keyIdentifier: F16, keyCode: 127, charCode: 0, keyCode: 127, which: 127 |
| type: keyup, key: F16, code: F16, keyIdentifier: F16, keyCode: 127, charCode: 0, keyCode: 127, which: 127 |
| |