From cc0abb0f7111f1facf5273a4a1d6f3c0959a862b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Thu, 9 Dec 2021 16:24:28 +0100 Subject: [PATCH] feat(keyboard): support simple copy-pasting using meta+c/v --- .../playwright-core/src/server/macEditingCommands.ts | 2 ++ tests/page/page-keyboard.spec.ts | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/packages/playwright-core/src/server/macEditingCommands.ts b/packages/playwright-core/src/server/macEditingCommands.ts index d7867da029c621..8f4c496e8accc9 100644 --- a/packages/playwright-core/src/server/macEditingCommands.ts +++ b/packages/playwright-core/src/server/macEditingCommands.ts @@ -126,4 +126,6 @@ export const macEditingCommands: {[key: string]: string|string[]} = { 'Shift+Meta+ArrowRight': 'moveToRightEndOfLineAndModifySelection:', 'Meta+KeyA': 'selectAll:', + 'Meta+KeyC': 'copy:', + 'Meta+KeyV': 'paste:', }; diff --git a/tests/page/page-keyboard.spec.ts b/tests/page/page-keyboard.spec.ts index 2edf44397672c8..0db045e2062395 100644 --- a/tests/page/page-keyboard.spec.ts +++ b/tests/page/page-keyboard.spec.ts @@ -464,6 +464,17 @@ it('should dispatch a click event on a button when Enter gets pressed', async ({ expect((await actual.jsonValue()).clicked).toBe(true); }); +it('should support simple copy-pasting', async ({ page, isMac }) => { + it.skip(!isMac); + await page.setContent(`
123
`); + await page.focus('div'); + await page.keyboard.press('Meta+KeyA'); + await page.keyboard.press('Meta+KeyC'); + await page.keyboard.press('Meta+KeyV'); + await page.keyboard.press('Meta+KeyV'); + expect(await page.evaluate(() => document.querySelector('div').textContent)).toBe('123123'); +}); + async function captureLastKeydown(page) { const lastEvent = await page.evaluateHandle(() => { const lastEvent = {