From ee0b16b087099c1ff4762eba6468446a0ca58fea Mon Sep 17 00:00:00 2001 From: Yury Semikhatsky Date: Tue, 13 Jul 2021 09:47:44 -0700 Subject: [PATCH] test: MouseEvent.buttons for mouse move events (failing) (#7577) --- tests/page/page-mouse.spec.ts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/tests/page/page-mouse.spec.ts b/tests/page/page-mouse.spec.ts index 4737408dd6..2f414e6d35 100644 --- a/tests/page/page-mouse.spec.ts +++ b/tests/page/page-mouse.spec.ts @@ -164,3 +164,25 @@ it('should tween mouse movement', async ({page, browserName, isAndroid}) => { [200, 300] ]); }); + +it('should keep button state on move', async ({page, browserName, isAndroid}) => { + it.skip(isAndroid, 'Bad rounding'); + it.fixme(browserName === 'webkit', 'https://github.com/microsoft/playwright/issues/7576'); + + // The test becomes flaky on WebKit without next line. + if (browserName === 'webkit') + await page.evaluate(() => new Promise(requestAnimationFrame)); + await page.mouse.move(100, 100); + await page.evaluate(() => { + window['result'] = []; + document.addEventListener('mousemove', event => { + window['result'].push(event.buttons); + }); + }); + await page.mouse.move(110, 110); + await page.mouse.down(); + await page.mouse.move(130, 130, {steps: 2}); + await page.mouse.up(); + await page.mouse.move(110, 110); + expect(await page.evaluate('result')).toEqual([0, 1, 1, 0]); +}); \ No newline at end of file