From 0878548238db28fedc8bfee57cbbcf241c217205 Mon Sep 17 00:00:00 2001 From: Joel Einbinder Date: Tue, 23 Nov 2021 02:59:32 -0500 Subject: [PATCH] test(wheel): add test for scrolling while emulating mobile (#10224) --- tests/page/wheel.spec.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tests/page/wheel.spec.ts b/tests/page/wheel.spec.ts index 79b7a8748a..b87397f2bf 100644 --- a/tests/page/wheel.spec.ts +++ b/tests/page/wheel.spec.ts @@ -15,6 +15,8 @@ */ import type { Page } from 'playwright-core'; import { test as it, expect } from './pageTest'; +import { contextTest } from '../config/browserTest'; + it.skip(({ isElectron, browserMajorVersion }) => { // Old Electron has flaky wheel events. return isElectron && browserMajorVersion <= 11; @@ -108,6 +110,20 @@ it('should work when the event is canceled', async ({ page }) => { expect(await page.evaluate('window.scrollY')).toBe(0); }); +contextTest('should scroll when emulating a mobile viewport', async ({ contextFactory, server, browserName }) => { + contextTest.skip(browserName === 'firefox'); + contextTest.fixme(browserName === 'webkit'); + const context = await contextFactory({ + viewport: { 'width': 1000, 'height': 600 }, + isMobile: true, + }); + const page = await context.newPage(); + await page.goto(server.PREFIX + '/input/scrollable.html'); + await page.mouse.move(50, 60); + await page.mouse.wheel(0, 100); + await page.waitForFunction('window.scrollY === 100'); +}); + async function listenForWheelEvents(page: Page, selector: string) { await page.evaluate(selector => { document.querySelector(selector).addEventListener('wheel', (e: WheelEvent) => {