From c5793456107d0a4a8adc004a96c3c5bc0a1b91f9 Mon Sep 17 00:00:00 2001 From: Yury Semikhatsky Date: Wed, 10 May 2023 09:31:20 -0700 Subject: [PATCH] test: requestFullscreen API is supported (#22889) https://github.com/microsoft/playwright/issues/22832 --- tests/library/capabilities.spec.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/tests/library/capabilities.spec.ts b/tests/library/capabilities.spec.ts index aad9fb278a..37ba409b57 100644 --- a/tests/library/capabilities.spec.ts +++ b/tests/library/capabilities.spec.ts @@ -250,3 +250,22 @@ it('window.GestureEvent in WebKit', async ({ page, server, browserName }) => { const type = await page.evaluate(() => typeof (window as any).GestureEvent); expect(type).toBe(browserName === 'webkit' ? 'function' : 'undefined'); }); + +it('requestFullscreen', async ({ page, server, browserName, headless, isLinux }) => { + it.info().annotations.push({ type: 'issue', description: 'https://github.com/microsoft/playwright/issues/22832' }); + it.fixme(browserName === 'chromium' && headless, 'fullscreenchange is not fired in headless Chromium'); + it.fixme(browserName === 'webkit'); + await page.goto(server.EMPTY_PAGE); + await page.evaluate(() => { + const result = new Promise(resolve => document.addEventListener('fullscreenchange', resolve)); + document.documentElement.requestFullscreen(); + return result; + }); + expect(await page.evaluate(() => document.fullscreenElement === document.documentElement)).toBeTruthy(); + await page.evaluate(() => { + const result = new Promise(resolve => document.addEventListener('fullscreenchange', resolve)); + document.exitFullscreen(); + return result; + }); + expect(await page.evaluate(() => !!document.fullscreenElement)).toBeFalsy(); +});