test: remove some fixmes (#32953)

This commit is contained in:
Dmitry Gozman 2024-10-04 08:22:27 -07:00 committed by GitHub
parent 40670e6ffd
commit 34ad67659f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
22 changed files with 33 additions and 55 deletions

View File

@ -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);

View File

@ -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', [

View File

@ -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();
});

View File

@ -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 });

View File

@ -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');

View File

@ -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(`<audio src="${server.PREFIX}/example.mp3"></audio>`);
@ -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);
});
@ -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));

View File

@ -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 });

View File

@ -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 }) => {

View File

@ -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`);

View File

@ -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(`<iframe src="${server.CROSS_PROCESS_PREFIX}/iframe.html"></iframe>`);
@ -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' });

View File

@ -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>
@ -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>
@ -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>

View File

@ -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) => {

View File

@ -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();
});

View File

@ -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>`);
});

View File

@ -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)');

View File

@ -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 => {

View File

@ -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>

View File

@ -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.

View File

@ -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 });

View File

@ -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

View File

@ -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);

View File

@ -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(`