Skip to content

Commit

Permalink
test: remove some fixmes (#32953)
Browse files Browse the repository at this point in the history
  • Loading branch information
dgozman authored Oct 4, 2024
1 parent 40670e6 commit 34ad676
Show file tree
Hide file tree
Showing 22 changed files with 33 additions and 55 deletions.
2 changes: 1 addition & 1 deletion tests/library/browsercontext-basic.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
1 change: 0 additions & 1 deletion tests/library/browsercontext-cookies.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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', [
Expand Down
4 changes: 1 addition & 3 deletions tests/library/browsercontext-page-event.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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();
});
4 changes: 3 additions & 1 deletion tests/library/browsercontext-proxy.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 });
Expand Down
1 change: 0 additions & 1 deletion tests/library/browsertype-connect.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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');

Expand Down
17 changes: 4 additions & 13 deletions tests/library/capabilities.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -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');
Expand All @@ -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(`<audio src="${server.PREFIX}/example.mp3"></audio>`);
Expand Down Expand Up @@ -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(`<video><source src="${server.PREFIX}/movie.mp4"/></video>`);
await page.waitForTimeout(1000);
});
Expand Down Expand Up @@ -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));
Expand Down
3 changes: 1 addition & 2 deletions tests/library/client-certificates.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 });
Expand Down
6 changes: 4 additions & 2 deletions tests/library/clock.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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: () => {},
Expand All @@ -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 }) => {
Expand Down
4 changes: 1 addition & 3 deletions tests/library/download.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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`);
Expand Down
8 changes: 3 additions & 5 deletions tests/library/headful.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down Expand Up @@ -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(`<iframe src="${server.CROSS_PROCESS_PREFIX}/iframe.html"></iframe>`);
Expand All @@ -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' });
Expand Down
3 changes: 0 additions & 3 deletions tests/library/inspector/cli-codegen-2.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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(`
<form>
Expand Down Expand Up @@ -137,7 +136,6 @@ await page.GetByRole(AriaRole.Textbox).SetInputFilesAsync(new[] { \"file-to-uplo
});

test('should upload multiple files', 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(`
<form>
Expand Down Expand Up @@ -168,7 +166,6 @@ await page.GetByRole(AriaRole.Textbox).SetInputFilesAsync(new[] { \"file-to-uplo
});

test('should clear files', 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(`
<form>
Expand Down
3 changes: 2 additions & 1 deletion tests/library/permissions.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,8 @@ it('should support clipboard read', async ({ page, context, server, browserName,
it('storage access', {
annotation: { type: 'issue', description: 'https://github.com/microsoft/playwright/issues/31227' }
}, async ({ page, context, server, browserName }) => {
it.fixme(browserName !== 'chromium');
it.skip(browserName !== 'chromium', 'chromium-only api');

await context.grantPermissions(['storage-access']);
expect(await getPermission(page, 'storage-access')).toBe('granted');
server.setRoute('/set-cookie.html', (req, res) => {
Expand Down
9 changes: 6 additions & 3 deletions tests/library/popup.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -262,14 +262,17 @@ it('should not throttle rAF in the opener page', async ({ page, server }) => {
});

it('should not throw when click closes popup', async ({ browserName, page, server }) => {
it.fixme(browserName === 'firefox');
it.fixme(browserName === 'firefox', 'locator.click: Target page, context or browser has been closed');

await page.goto(server.EMPTY_PAGE);
const [popup] = await Promise.all([
page.waitForEvent('popup'),
page.evaluate(() => {
page.evaluate(async browserName => {
const w = window.open('about:blank');
if (browserName === 'firefox')
await new Promise(x => w.onload = x);
w.document.body.innerHTML = `<button onclick="window.close()">close</button>`;
}),
}, browserName),
]);
await popup.getByRole('button').click();
});
Expand Down
8 changes: 4 additions & 4 deletions tests/library/trace-viewer.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1452,18 +1452,18 @@ test.skip('should handle case where neither snapshots nor screenshots exist', as
});

test('should show only one pointer with multilevel iframes', async ({ page, runAndTrace, server, browserName }) => {
test.fixme(browserName !== 'chromium', 'Elements in iframe are not marked');
test.fixme(browserName === 'firefox', 'Elements in iframe are not marked');

server.setRoute('/level-0.html', (req, res) => {
res.writeHead(200);
res.writeHead(200, { 'Content-Type': 'text/html' });
res.end(`<iframe src="/level-1.html" style="position: absolute; left: 100px"></iframe>`);
});
server.setRoute('/level-1.html', (req, res) => {
res.writeHead(200);
res.writeHead(200, { 'Content-Type': 'text/html' });
res.end(`<iframe src="/level-2.html"></iframe>`);
});
server.setRoute('/level-2.html', (req, res) => {
res.writeHead(200);
res.writeHead(200, { 'Content-Type': 'text/html' });
res.end(`<button>Click me</button>`);
});

Expand Down
2 changes: 0 additions & 2 deletions tests/page/elementhandle-bounding-box.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,6 @@ import { test as it, expect } from './pageTest';
it.skip(({ isAndroid }) => isAndroid);

it('should work', async ({ page, server, browserName, headless, isLinux }) => {
it.fixme(browserName === 'firefox' && !headless && !isLinux);

await page.setViewportSize({ width: 500, height: 500 });
await page.goto(server.PREFIX + '/grid.html');
const elementHandle = await page.$('.box:nth-of-type(13)');
Expand Down
2 changes: 0 additions & 2 deletions tests/page/elementhandle-wait-for-element-state.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,6 @@ it('should wait for button with an aria-disabled parent', async ({ page }) => {
});

it('should wait for stable position', async ({ page, server, browserName, platform }) => {
it.fixme(browserName === 'firefox' && platform === 'linux');

await page.goto(server.PREFIX + '/input/button.html');
const button = await page.$('button');
await page.$eval('button', button => {
Expand Down
1 change: 0 additions & 1 deletion tests/page/expect-misc.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -349,7 +349,6 @@ test.describe('toBeInViewport', () => {
});

test('should respect ratio option', async ({ page, isAndroid }) => {
test.fixme(isAndroid, 'fails due an upstream bug in Chrome, updating Chrome will fix it.');
await page.setContent(`
<style>body, div, html { padding: 0; margin: 0; }</style>
<div id=big style="height: 400vh;"></div>
Expand Down
3 changes: 1 addition & 2 deletions tests/page/frame-evaluate.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -133,8 +133,7 @@ it('should be isolated between frames', async ({ page, server }) => {
});

it('should work in iframes that failed initial navigation', async ({ page, browserName }) => {
it.fail(browserName === 'chromium');
it.fixme(browserName === 'firefox');
it.fixme(browserName !== 'webkit');

// - Firefox does not report domcontentloaded for the iframe.
// - Chromium and Firefox report empty url.
Expand Down
1 change: 0 additions & 1 deletion tests/page/locator-misc-2.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,6 @@ it('should take screenshot', async ({ page, server, browserName, headless, isAnd
});

it('should return bounding box', async ({ page, server, browserName, headless, isAndroid, isLinux }) => {
it.fixme(browserName === 'firefox' && !headless && !isLinux);
it.skip(isAndroid);

await page.setViewportSize({ width: 500, height: 500 });
Expand Down
2 changes: 1 addition & 1 deletion tests/page/page-click.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -336,7 +336,7 @@ it('should click the button inside an iframe', async ({ page, server }) => {
});

it('should click the button with fixed position inside an iframe', async ({ page, server, browserName }) => {
it.fixme(browserName === 'chromium' || browserName === 'webkit');
it.fixme(browserName === 'chromium');

// @see https://github.com/GoogleChrome/puppeteer/issues/4110
// @see https://bugs.chromium.org/p/chromium/issues/detail?id=986390
Expand Down
3 changes: 1 addition & 2 deletions tests/page/page-mouse.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -289,8 +289,7 @@ it('should not crash on mouse drag with any button', async ({ page }) => {

it('should dispatch mouse move after context menu was opened', async ({ page, browserName, isWindows }) => {
it.info().annotations.push({ type: 'issue', description: 'https://github.com/microsoft/playwright/issues/20823' });
it.fixme(browserName === 'firefox');
it.skip(browserName === 'chromium' && isWindows, 'context menu support is best-effort for Linux and MacOS');
it.fixme(browserName === 'chromium' && isWindows, 'context menu support is best-effort for Linux and MacOS');
await page.evaluate(() => {
window['contextMenuPromise'] = new Promise(x => {
window.addEventListener('contextmenu', x, false);
Expand Down
1 change: 0 additions & 1 deletion tests/page/selectors-css.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -275,7 +275,6 @@ it('should work with :nth-child', async ({ page, server }) => {
});

it('should work with :nth-child(of) notation with nested functions', async ({ page, browserName, browserMajorVersion }) => {
it.fixme(browserName === 'firefox', 'Should enable once Firefox supports this syntax');
it.skip(browserName === 'chromium' && browserMajorVersion < 111, 'https://caniuse.com/css-nth-child-of');

await page.setContent(`
Expand Down

0 comments on commit 34ad676

Please sign in to comment.