diff --git a/tests/library/browsercontext-basic.spec.ts b/tests/library/browsercontext-basic.spec.ts index f075184cf95ed..df9db587d6482 100644 --- a/tests/library/browsercontext-basic.spec.ts +++ b/tests/library/browsercontext-basic.spec.ts @@ -254,7 +254,7 @@ it('should be able to navigate after disabling javascript', async ({ browser, se }); it('should not hang on promises after disabling javascript', async ({ browserName, contextFactory }) => { - it.fixme(browserName === 'webkit' || browserName === 'firefox'); + it.fixme(browserName === 'firefox'); const context = await contextFactory({ javaScriptEnabled: false }); const page = await context.newPage(); expect(await page.evaluate(() => 1)).toBe(1); diff --git a/tests/library/browsercontext-cookies.spec.ts b/tests/library/browsercontext-cookies.spec.ts index 9bb600c786237..f4dbefad5834a 100644 --- a/tests/library/browsercontext-cookies.spec.ts +++ b/tests/library/browsercontext-cookies.spec.ts @@ -406,7 +406,6 @@ it('should support requestStorageAccess', async ({ page, server, channel, browse it('should parse cookie with large Max-Age correctly', async ({ server, page, defaultSameSiteCookieValue, browserName, platform }) => { it.info().annotations.push({ type: 'issue', description: 'https://github.com/microsoft/playwright/issues/30305' }); - it.fixme(browserName === 'webkit' && platform === 'linux', 'https://github.com/microsoft/playwright/issues/30305'); server.setRoute('/foobar', (req, res) => { res.setHeader('set-cookie', [ diff --git a/tests/library/browsercontext-page-event.spec.ts b/tests/library/browsercontext-page-event.spec.ts index 30efb63fcf5c4..15e2b661638ca 100644 --- a/tests/library/browsercontext-page-event.spec.ts +++ b/tests/library/browsercontext-page-event.spec.ts @@ -171,8 +171,6 @@ it('should work with Shift-clicking', async ({ browser, server, browserName }) = }); it('should work with Ctrl-clicking', async ({ browser, server, browserName }) => { - it.fixme(browserName === 'firefox', 'Reports an opener in this case.'); - const context = await browser.newContext(); const page = await context.newPage(); await page.goto(server.EMPTY_PAGE); @@ -181,6 +179,6 @@ it('should work with Ctrl-clicking', async ({ browser, server, browserName }) => context.waitForEvent('page'), page.click('a', { modifiers: ['ControlOrMeta'] }), ]); - expect(await popup.opener()).toBe(null); + expect(await popup.opener()).toBe(browserName === 'firefox' ? page : null); await context.close(); }); diff --git a/tests/library/browsercontext-proxy.spec.ts b/tests/library/browsercontext-proxy.spec.ts index 460c242998900..58bda44632b19 100644 --- a/tests/library/browsercontext-proxy.spec.ts +++ b/tests/library/browsercontext-proxy.spec.ts @@ -65,7 +65,9 @@ it('should use proxy', async ({ contextFactory, server, proxyServer }) => { }); -it('should set cookie for top-level domain', async ({ contextFactory, server, proxyServer, browserName, isLinux }) => { +it('should set cookie for top-level domain', { + annotation: { type: 'issue', description: 'https://github.com/microsoft/playwright/issues/18362' } +}, async ({ contextFactory, server, proxyServer, browserName, isLinux }) => { it.fixme(browserName === 'webkit' && isLinux); proxyServer.forwardTo(server.PORT, { allowConnectRequests: true }); diff --git a/tests/library/browsertype-connect.spec.ts b/tests/library/browsertype-connect.spec.ts index d494f63b192fa..a732985b5b9f0 100644 --- a/tests/library/browsertype-connect.spec.ts +++ b/tests/library/browsertype-connect.spec.ts @@ -761,7 +761,6 @@ for (const kind of ['launchServer', 'run-server'] as const) { }); test.describe('socks proxy', () => { - test.fixme(({ platform, browserName }) => browserName === 'webkit' && platform === 'win32'); test.skip(({ mode }) => mode !== 'default'); test.skip(kind === 'launchServer', 'not supported yet'); diff --git a/tests/library/capabilities.spec.ts b/tests/library/capabilities.spec.ts index 3f71c7db9e653..864022a1f4900 100644 --- a/tests/library/capabilities.spec.ts +++ b/tests/library/capabilities.spec.ts @@ -65,13 +65,9 @@ it('should respect CSP @smoke', async ({ page, server }) => { expect(await page.evaluate(() => window['testStatus'])).toBe('SUCCESS'); }); -it('should play video @smoke', async ({ page, asset, browserName, platform, macVersion, mode }) => { - // TODO: the test passes on Windows locally but fails on GitHub Action bot, - // apparently due to a Media Pack issue in the Windows Server. - // Also the test is very flaky on Linux WebKit. - it.fixme(browserName === 'webkit' && platform !== 'darwin'); - it.fixme(browserName === 'firefox', 'https://github.com/microsoft/playwright/issues/5721'); - it.fixme(browserName === 'webkit' && platform === 'darwin' && macVersion === 11, 'Does not work on BigSur'); +it('should play video @smoke', async ({ page, asset, browserName, isWindows, isLinux, mode }) => { + it.skip(browserName === 'webkit' && isWindows, 'passes locally but fails on GitHub Action bot, apparently due to a Media Pack issue in the Windows Server'); + it.fixme(browserName === 'firefox' && isLinux, 'https://github.com/microsoft/playwright/issues/5721'); it.skip(mode.startsWith('service')); // Safari only plays mp4 so we test WebKit with an .mp4 clip. @@ -85,8 +81,7 @@ it('should play video @smoke', async ({ page, asset, browserName, platform, macV }); it('should play webm video @smoke', async ({ page, asset, browserName, platform, macVersion, mode }) => { - it.fixme(browserName === 'webkit' && platform === 'darwin' && macVersion === 11, 'Does not work on BigSur'); - it.fixme(browserName === 'webkit' && platform === 'win32'); + it.skip(browserName === 'webkit' && platform === 'win32', 'not supported'); it.skip(mode.startsWith('service')); const absolutePath = asset('video_webm.html'); @@ -98,8 +93,6 @@ it('should play webm video @smoke', async ({ page, asset, browserName, platform, }); it('should play audio @smoke', async ({ page, server, browserName, platform }) => { - it.fixme(browserName === 'firefox' && platform === 'win32', 'https://github.com/microsoft/playwright/issues/10887'); - it.fixme(browserName === 'firefox' && platform === 'linux', 'https://github.com/microsoft/playwright/issues/10887'); it.fixme(browserName === 'webkit' && platform === 'win32', 'https://github.com/microsoft/playwright/issues/10892'); await page.goto(server.EMPTY_PAGE); await page.setContent(``); @@ -133,7 +126,6 @@ it('should support webgl 2 @smoke', async ({ page, browserName, headless, isWind it('should not crash on page with mp4 @smoke', async ({ page, server, platform, browserName }) => { it.fixme(browserName === 'webkit' && platform === 'win32', 'https://github.com/microsoft/playwright/issues/11009, times out in setContent'); - it.fixme(browserName === 'firefox', 'https://bugzilla.mozilla.org/show_bug.cgi?id=1697004'); await page.setContent(``); await page.waitForTimeout(1000); }); @@ -261,7 +253,6 @@ it('window.GestureEvent in WebKit', async ({ page, server, browserName }) => { 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'); await page.goto(server.EMPTY_PAGE); await page.evaluate(() => { const result = new Promise(resolve => document.addEventListener('fullscreenchange', resolve)); diff --git a/tests/library/client-certificates.spec.ts b/tests/library/client-certificates.spec.ts index cadf49deb9144..10c8a5223543b 100644 --- a/tests/library/client-certificates.spec.ts +++ b/tests/library/client-certificates.spec.ts @@ -728,8 +728,7 @@ test.describe('browser', () => { }); test('should return target connection errors when using http2', async ({ browser, startCCServer, asset, browserName, isMac, isLinux }) => { - test.skip(browserName === 'webkit' && isMac, 'WebKit on macOS doesn\n proxy localhost'); - test.fixme(browserName === 'webkit' && isLinux, 'WebKit on Linux does not support http2 https://bugs.webkit.org/show_bug.cgi?id=276990'); + test.skip(browserName === 'webkit' && isMac, 'WebKit on macOS does not proxy localhost'); test.skip(+process.versions.node.split('.')[0] < 20, 'http2.performServerHandshake is not supported in older Node.js versions'); const serverURL = await startCCServer({ http2: true }); diff --git a/tests/library/clock.spec.ts b/tests/library/clock.spec.ts index daad405e70bf9..3db8e968a28b4 100644 --- a/tests/library/clock.spec.ts +++ b/tests/library/clock.spec.ts @@ -1155,7 +1155,7 @@ it.describe('stubTimers', () => { }); }); - it.fixme('deletes global property on uninstall if it was inherited onto the global object', ({}) => { + it('restores global property on uninstall if it was inherited onto the global object', ({}) => { // Give the global object an inherited 'setTimeout' method const proto = { Date, setTimeout: () => {}, @@ -1167,8 +1167,10 @@ it.describe('stubTimers', () => { const { clock } = rawInstall(myGlobal, { now: 0, toFake: ['setTimeout'] }); expect(myGlobal.hasOwnProperty('setTimeout')).toBeTruthy(); + expect(myGlobal.setTimeout).not.toBe(proto.setTimeout); clock.uninstall(); - expect(myGlobal.hasOwnProperty('setTimeout')).toBeFalsy(); + expect(myGlobal.hasOwnProperty('setTimeout')).toBeTruthy(); + expect(myGlobal.setTimeout).toBe(proto.setTimeout); }); it('fakes Date constructor', ({ installEx }) => { diff --git a/tests/library/download.spec.ts b/tests/library/download.spec.ts index 9e6fb2b8e5adc..33e33f21b4530 100644 --- a/tests/library/download.spec.ts +++ b/tests/library/download.spec.ts @@ -305,10 +305,8 @@ it.describe('download event', () => { }); it('should report alt-click downloads', async ({ browser, server, browserName }) => { - it.fixme(browserName === 'firefox'); + it.skip(browserName === 'firefox', 'Firefox does not download on alt-click.'); - // Firefox does not download on alt-click by default. - // Our WebKit embedder does not download on alt-click, although Safari does. server.setRoute('/download', (req, res) => { res.setHeader('Content-Type', 'application/octet-stream'); res.end(`Hello world`); diff --git a/tests/library/headful.spec.ts b/tests/library/headful.spec.ts index cfeb9711c9917..5832ef44da4e2 100644 --- a/tests/library/headful.spec.ts +++ b/tests/library/headful.spec.ts @@ -192,7 +192,7 @@ it('should not block third party SameSite=None cookies', async ({ httpsServer, b }); it('should not override viewport size when passed null', async function({ browserName, server, browser }) { - it.fixme(browserName === 'webkit', 'Our WebKit embedder does not respect window features'); + it.skip(browserName === 'webkit', 'Our WebKit embedder does not respect window features'); const context = await browser.newContext({ viewport: null }); const page = await context.newPage(); @@ -230,8 +230,6 @@ it('Page.bringToFront should work', async ({ browser }) => { }); it('should click in OOPIF', async ({ browserName, launchPersistent, server }) => { - it.fixme(browserName === 'chromium', 'Click is offset by the infobar height'); - server.setRoute('/empty.html', (req, res) => { res.writeHead(200, { 'Content-Type': 'text/html' }); res.end(``); @@ -250,8 +248,8 @@ it('should click in OOPIF', async ({ browserName, launchPersistent, server }) => expect(consoleLog).toContain('ok'); }); -it('should click bottom row w/ infobar in OOPIF', async ({ browserName, launchPersistent, server }) => { - it.fixme(browserName === 'chromium', 'Click is offset by the infobar height'); +it('should click bottom row w/ infobar in OOPIF', async ({ browserName, launchPersistent, server, isWindows }) => { + it.fixme(browserName === 'chromium' && isWindows, 'Click is offset by the infobar height'); server.setRoute('/empty.html', (req, res) => { res.writeHead(200, { 'Content-Type': 'text/html' }); diff --git a/tests/library/inspector/cli-codegen-2.spec.ts b/tests/library/inspector/cli-codegen-2.spec.ts index efde7d52f50ca..e4aa0a07867da 100644 --- a/tests/library/inspector/cli-codegen-2.spec.ts +++ b/tests/library/inspector/cli-codegen-2.spec.ts @@ -106,7 +106,6 @@ await page.CloseAsync();`); }); test('should upload a single file', async ({ openRecorder, browserName, asset, isLinux }) => { - test.fixme(browserName === 'firefox' && isLinux, 'https://bugzilla.mozilla.org/show_bug.cgi?id=1827551'); const { page, recorder } = await openRecorder(); await recorder.setContentAndWait(`