|
2 | 2 | * Helper function used in browser tests to simulate HTML5 events |
3 | 3 | */ |
4 | 4 |
|
5 | | -function simulateKeyEvent(eventType, keyCode, code) { |
| 5 | +function simulateKeyEvent(eventType, keyCode, code, key) { |
6 | 6 | var props = { keyCode, charCode: keyCode, view: window, bubbles: true, cancelable: true }; |
7 | 7 | if (code) props['code'] = code; |
| 8 | + if (key) props['key'] = key; |
8 | 9 | var event = new KeyboardEvent(eventType, props); |
9 | 10 | return document.dispatchEvent(event); |
10 | 11 | } |
11 | 12 |
|
12 | | -function simulateKeyDown(keyCode, code = undefined) { |
13 | | - var doDefault = simulateKeyEvent('keydown', keyCode, code); |
| 13 | +function simulateKeyDown(keyCode, code = undefined, key = undefined) { |
| 14 | + var doDefault = simulateKeyEvent('keydown', keyCode, code, key); |
14 | 15 | // As long as not handler called `preventDefault` we also send a keypress |
15 | 16 | // event. |
16 | 17 | if (doDefault) { |
17 | | - simulateKeyEvent('keypress', keyCode, code); |
| 18 | + simulateKeyEvent('keypress', keyCode, code, key); |
18 | 19 | } |
19 | 20 | } |
20 | 21 |
|
21 | | -function simulateKeyUp(keyCode, code = undefined) { |
22 | | - simulateKeyEvent('keyup', keyCode, code); |
| 22 | +function simulateKeyUp(keyCode, code = undefined, key = undefined) { |
| 23 | + simulateKeyEvent('keyup', keyCode, code, key); |
23 | 24 | } |
24 | 25 |
|
25 | 26 | function simulateMouseEvent(x, y, button, absolute) { |
|
0 commit comments