test: do not check deprecated KeyboardEvent.keyCode property (#34472)

This commit is contained in:
Yury Semikhatsky 2025-01-24 15:09:39 -08:00 committed by GitHub
parent fccb2b0784
commit fb145d5ebd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 59 additions and 50 deletions

View file

@ -10,13 +10,13 @@
let textarea = document.querySelector('textarea'); let textarea = document.querySelector('textarea');
textarea.focus(); textarea.focus();
textarea.addEventListener('keydown', event => { textarea.addEventListener('keydown', event => {
log('Keydown:', event.key, event.code, event.which, modifiers(event)); log('Keydown:', event.key, event.code, getLocation(event), modifiers(event));
}); });
textarea.addEventListener('keypress', event => { textarea.addEventListener('keypress', event => {
log('Keypress:', event.key, event.code, event.which, event.charCode, modifiers(event)); log('Keypress:', event.key, event.code, getLocation(event), event.charCode, modifiers(event));
}); });
textarea.addEventListener('keyup', event => { textarea.addEventListener('keyup', event => {
log('Keyup:', event.key, event.code, event.which, modifiers(event)); log('Keyup:', event.key, event.code, getLocation(event), modifiers(event));
}); });
function modifiers(event) { function modifiers(event) {
let m = []; let m = [];
@ -28,6 +28,15 @@
m.push('Shift') m.push('Shift')
return '[' + m.join(' ') + ']'; return '[' + m.join(' ') + ']';
} }
function getLocation(event) {
switch (event.location) {
case KeyboardEvent.DOM_KEY_LOCATION_STANDARD: return 'STANDARD';
case KeyboardEvent.DOM_KEY_LOCATION_LEFT: return 'LEFT';
case KeyboardEvent.DOM_KEY_LOCATION_RIGHT: return 'RIGHT';
case KeyboardEvent.DOM_KEY_LOCATION_NUMPAD: return 'NUMPAD';
default: return 'Unknown: ' + event.location;
};
}
function log(...args) { function log(...args) {
console.log.apply(console, args); console.log.apply(console, args);
result += args.join(' ') + '\n'; result += args.join(' ') + '\n';

View file

@ -93,18 +93,18 @@ it('should report shiftKey', async ({ page, server, browserName, platform }) =>
const codeForKey = { 'Shift': 16, 'Alt': 18, 'Control': 17 }; const codeForKey = { 'Shift': 16, 'Alt': 18, 'Control': 17 };
for (const modifierKey in codeForKey) { for (const modifierKey in codeForKey) {
await keyboard.down(modifierKey); await keyboard.down(modifierKey);
expect(await page.evaluate('getResult()')).toBe('Keydown: ' + modifierKey + ' ' + modifierKey + 'Left ' + codeForKey[modifierKey] + ' [' + modifierKey + ']'); expect(await page.evaluate('getResult()')).toBe('Keydown: ' + modifierKey + ' ' + modifierKey + 'Left LEFT [' + modifierKey + ']');
await keyboard.down('!'); await keyboard.down('!');
// Shift+! will generate a keypress // Shift+! will generate a keypress
if (modifierKey === 'Shift') if (modifierKey === 'Shift')
expect(await page.evaluate('getResult()')).toBe('Keydown: ! Digit1 49 [' + modifierKey + ']\nKeypress: ! Digit1 33 33 [' + modifierKey + ']'); expect(await page.evaluate('getResult()')).toBe('Keydown: ! Digit1 STANDARD [' + modifierKey + ']\nKeypress: ! Digit1 STANDARD 33 [' + modifierKey + ']');
else else
expect(await page.evaluate('getResult()')).toBe('Keydown: ! Digit1 49 [' + modifierKey + ']'); expect(await page.evaluate('getResult()')).toBe('Keydown: ! Digit1 STANDARD [' + modifierKey + ']');
await keyboard.up('!'); await keyboard.up('!');
expect(await page.evaluate('getResult()')).toBe('Keyup: ! Digit1 49 [' + modifierKey + ']'); expect(await page.evaluate('getResult()')).toBe('Keyup: ! Digit1 STANDARD [' + modifierKey + ']');
await keyboard.up(modifierKey); await keyboard.up(modifierKey);
expect(await page.evaluate('getResult()')).toBe('Keyup: ' + modifierKey + ' ' + modifierKey + 'Left ' + codeForKey[modifierKey] + ' []'); expect(await page.evaluate('getResult()')).toBe('Keyup: ' + modifierKey + ' ' + modifierKey + 'Left LEFT []');
} }
}); });
@ -112,31 +112,31 @@ it('should report multiple modifiers', async ({ page, server }) => {
await page.goto(server.PREFIX + '/input/keyboard.html'); await page.goto(server.PREFIX + '/input/keyboard.html');
const keyboard = page.keyboard; const keyboard = page.keyboard;
await keyboard.down('Control'); await keyboard.down('Control');
expect(await page.evaluate('getResult()')).toBe('Keydown: Control ControlLeft 17 [Control]'); expect(await page.evaluate('getResult()')).toBe('Keydown: Control ControlLeft LEFT [Control]');
await keyboard.down('Alt'); await keyboard.down('Alt');
expect(await page.evaluate('getResult()')).toBe('Keydown: Alt AltLeft 18 [Alt Control]'); expect(await page.evaluate('getResult()')).toBe('Keydown: Alt AltLeft LEFT [Alt Control]');
await keyboard.down(';'); await keyboard.down(';');
expect(await page.evaluate('getResult()')).toBe('Keydown: ; Semicolon 186 [Alt Control]'); expect(await page.evaluate('getResult()')).toBe('Keydown: ; Semicolon STANDARD [Alt Control]');
await keyboard.up(';'); await keyboard.up(';');
expect(await page.evaluate('getResult()')).toBe('Keyup: ; Semicolon 186 [Alt Control]'); expect(await page.evaluate('getResult()')).toBe('Keyup: ; Semicolon STANDARD [Alt Control]');
await keyboard.up('Control'); await keyboard.up('Control');
expect(await page.evaluate('getResult()')).toBe('Keyup: Control ControlLeft 17 [Alt]'); expect(await page.evaluate('getResult()')).toBe('Keyup: Control ControlLeft LEFT [Alt]');
await keyboard.up('Alt'); await keyboard.up('Alt');
expect(await page.evaluate('getResult()')).toBe('Keyup: Alt AltLeft 18 []'); expect(await page.evaluate('getResult()')).toBe('Keyup: Alt AltLeft LEFT []');
}); });
it('should send proper codes while typing', async ({ page, server }) => { it('should send proper codes while typing', async ({ page, server }) => {
await page.goto(server.PREFIX + '/input/keyboard.html'); await page.goto(server.PREFIX + '/input/keyboard.html');
await page.keyboard.type('!'); await page.keyboard.type('!');
expect(await page.evaluate('getResult()')).toBe( expect(await page.evaluate('getResult()')).toBe(
['Keydown: ! Digit1 49 []', ['Keydown: ! Digit1 STANDARD []',
'Keypress: ! Digit1 33 33 []', 'Keypress: ! Digit1 STANDARD 33 []',
'Keyup: ! Digit1 49 []'].join('\n')); 'Keyup: ! Digit1 STANDARD []'].join('\n'));
await page.keyboard.type('^'); await page.keyboard.type('^');
expect(await page.evaluate('getResult()')).toBe( expect(await page.evaluate('getResult()')).toBe(
['Keydown: ^ Digit6 54 []', ['Keydown: ^ Digit6 STANDARD []',
'Keypress: ^ Digit6 94 94 []', 'Keypress: ^ Digit6 STANDARD 94 []',
'Keyup: ^ Digit6 54 []'].join('\n')); 'Keyup: ^ Digit6 STANDARD []'].join('\n'));
}); });
it('should send proper codes while typing with shift', async ({ page, server }) => { it('should send proper codes while typing with shift', async ({ page, server }) => {
@ -145,10 +145,10 @@ it('should send proper codes while typing with shift', async ({ page, server })
await keyboard.down('Shift'); await keyboard.down('Shift');
await page.keyboard.type('~'); await page.keyboard.type('~');
expect(await page.evaluate('getResult()')).toBe( expect(await page.evaluate('getResult()')).toBe(
['Keydown: Shift ShiftLeft 16 [Shift]', ['Keydown: Shift ShiftLeft LEFT [Shift]',
'Keydown: ~ Backquote 192 [Shift]', // 192 is ` keyCode 'Keydown: ~ Backquote STANDARD [Shift]',
'Keypress: ~ Backquote 126 126 [Shift]', // 126 is ~ charCode 'Keypress: ~ Backquote STANDARD 126 [Shift]',
'Keyup: ~ Backquote 192 [Shift]'].join('\n')); 'Keyup: ~ Backquote STANDARD [Shift]'].join('\n'));
await keyboard.up('Shift'); await keyboard.up('Shift');
}); });
@ -173,54 +173,54 @@ it('should press plus', async ({ page, server }) => {
await page.goto(server.PREFIX + '/input/keyboard.html'); await page.goto(server.PREFIX + '/input/keyboard.html');
await page.keyboard.press('+'); await page.keyboard.press('+');
expect(await page.evaluate('getResult()')).toBe( expect(await page.evaluate('getResult()')).toBe(
['Keydown: + Equal 187 []', // 192 is ` keyCode ['Keydown: + Equal STANDARD []',
'Keypress: + Equal 43 43 []', // 126 is ~ charCode 'Keypress: + Equal STANDARD 43 []',
'Keyup: + Equal 187 []'].join('\n')); 'Keyup: + Equal STANDARD []'].join('\n'));
}); });
it('should press shift plus', async ({ page, server }) => { it('should press shift plus', async ({ page, server }) => {
await page.goto(server.PREFIX + '/input/keyboard.html'); await page.goto(server.PREFIX + '/input/keyboard.html');
await page.keyboard.press('Shift++'); await page.keyboard.press('Shift++');
expect(await page.evaluate('getResult()')).toBe( expect(await page.evaluate('getResult()')).toBe(
['Keydown: Shift ShiftLeft 16 [Shift]', ['Keydown: Shift ShiftLeft LEFT [Shift]',
'Keydown: + Equal 187 [Shift]', // 192 is ` keyCode 'Keydown: + Equal STANDARD [Shift]',
'Keypress: + Equal 43 43 [Shift]', // 126 is ~ charCode 'Keypress: + Equal STANDARD 43 [Shift]',
'Keyup: + Equal 187 [Shift]', 'Keyup: + Equal STANDARD [Shift]',
'Keyup: Shift ShiftLeft 16 []'].join('\n')); 'Keyup: Shift ShiftLeft LEFT []'].join('\n'));
}); });
it('should support plus-separated modifiers', async ({ page, server }) => { it('should support plus-separated modifiers', async ({ page, server }) => {
await page.goto(server.PREFIX + '/input/keyboard.html'); await page.goto(server.PREFIX + '/input/keyboard.html');
await page.keyboard.press('Shift+~'); await page.keyboard.press('Shift+~');
expect(await page.evaluate('getResult()')).toBe( expect(await page.evaluate('getResult()')).toBe(
['Keydown: Shift ShiftLeft 16 [Shift]', ['Keydown: Shift ShiftLeft LEFT [Shift]',
'Keydown: ~ Backquote 192 [Shift]', // 192 is ` keyCode 'Keydown: ~ Backquote STANDARD [Shift]',
'Keypress: ~ Backquote 126 126 [Shift]', // 126 is ~ charCode 'Keypress: ~ Backquote STANDARD 126 [Shift]',
'Keyup: ~ Backquote 192 [Shift]', 'Keyup: ~ Backquote STANDARD [Shift]',
'Keyup: Shift ShiftLeft 16 []'].join('\n')); 'Keyup: Shift ShiftLeft LEFT []'].join('\n'));
}); });
it('should support multiple plus-separated modifiers', async ({ page, server }) => { it('should support multiple plus-separated modifiers', async ({ page, server }) => {
await page.goto(server.PREFIX + '/input/keyboard.html'); await page.goto(server.PREFIX + '/input/keyboard.html');
await page.keyboard.press('Control+Shift+~'); await page.keyboard.press('Control+Shift+~');
expect(await page.evaluate('getResult()')).toBe( expect(await page.evaluate('getResult()')).toBe(
['Keydown: Control ControlLeft 17 [Control]', ['Keydown: Control ControlLeft LEFT [Control]',
'Keydown: Shift ShiftLeft 16 [Control Shift]', 'Keydown: Shift ShiftLeft LEFT [Control Shift]',
'Keydown: ~ Backquote 192 [Control Shift]', // 192 is ` keyCode 'Keydown: ~ Backquote STANDARD [Control Shift]',
'Keyup: ~ Backquote 192 [Control Shift]', 'Keyup: ~ Backquote STANDARD [Control Shift]',
'Keyup: Shift ShiftLeft 16 [Control]', 'Keyup: Shift ShiftLeft LEFT [Control]',
'Keyup: Control ControlLeft 17 []'].join('\n')); 'Keyup: Control ControlLeft LEFT []'].join('\n'));
}); });
it('should shift raw codes', async ({ page, server }) => { it('should shift raw codes', async ({ page, server }) => {
await page.goto(server.PREFIX + '/input/keyboard.html'); await page.goto(server.PREFIX + '/input/keyboard.html');
await page.keyboard.press('Shift+Digit3'); await page.keyboard.press('Shift+Digit3');
expect(await page.evaluate('getResult()')).toBe( expect(await page.evaluate('getResult()')).toBe(
['Keydown: Shift ShiftLeft 16 [Shift]', ['Keydown: Shift ShiftLeft LEFT [Shift]',
'Keydown: # Digit3 51 [Shift]', // 51 is # keyCode 'Keydown: # Digit3 STANDARD [Shift]',
'Keypress: # Digit3 35 35 [Shift]', // 35 is # charCode 'Keypress: # Digit3 STANDARD 35 [Shift]',
'Keyup: # Digit3 51 [Shift]', 'Keyup: # Digit3 STANDARD [Shift]',
'Keyup: Shift ShiftLeft 16 []'].join('\n')); 'Keyup: Shift ShiftLeft LEFT []'].join('\n'));
}); });
it('should specify repeat property', async ({ page, server }) => { it('should specify repeat property', async ({ page, server }) => {
@ -710,7 +710,7 @@ it('should have correct Keydown/Keyup order when pressing Escape key', async ({
await page.goto(server.PREFIX + '/input/keyboard.html'); await page.goto(server.PREFIX + '/input/keyboard.html');
await page.keyboard.press('Escape'); await page.keyboard.press('Escape');
expect(await page.evaluate('getResult()')).toBe(` expect(await page.evaluate('getResult()')).toBe(`
Keydown: Escape Escape 27 [] Keydown: Escape Escape STANDARD []
Keyup: Escape Escape 27 [] Keyup: Escape Escape STANDARD []
`.trim()); `.trim());
}); });