test: update stale test expectations (#20423)

This commit is contained in:
Dmitry Gozman 2023-01-27 21:52:34 -08:00 committed by GitHub
parent 532ca3f7b3
commit 821949d580
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
32 changed files with 47 additions and 89 deletions

View File

@ -144,8 +144,8 @@ jobs:
DEBUG: pw:install
- run: npm run build
- run: npx playwright install --with-deps
- run: xvfb-run npm run test-html-reporter
- run: xvfb-run npm run test-web
- run: npm run test-html-reporter
- run: npm run test-web
if: always()
test-package-installations:

View File

@ -18,7 +18,7 @@ import path from 'path';
import { test } from './npmTest';
test('connect to selenium', async ({ exec, tmpWorkspace }, testInfo) => {
test.fixme(os.platform() !== 'linux');
test.skip(os.platform() !== 'linux');
await exec('npm i --foreground-scripts playwright-core');
await exec(`node download-chromedriver.js ${path.join(tmpWorkspace)}`);

View File

@ -353,7 +353,7 @@ it('should be able to send third party cookies via an iframe', async ({ browser,
it('should support requestStorageAccess', async ({ page, server, channel, browserName, isMac, isLinux, isWindows }) => {
it.info().annotations.push({ type: 'issue', description: 'https://github.com/microsoft/playwright/issues/17285' });
it.skip(browserName === 'chromium', 'requestStorageAccess API is not available in Chromium');
it.fixme(channel === 'firefox-beta', 'hasStorageAccess returns true, but no cookie is sent');
it.skip(channel === 'firefox-beta', 'hasStorageAccess returns true, but no cookie is sent');
server.setRoute('/set-cookie.html', (req, res) => {
res.setHeader('Set-Cookie', 'name=value; Path=/');

View File

@ -184,8 +184,6 @@ it('should goBack to redirected navigation', async ({ context, asset, server })
});
it('should goForward to redirected navigation', async ({ context, asset, server, browserName }) => {
it.fixme(browserName === 'firefox', 'Flaky in firefox');
const path = asset('har-redirect.har');
await context.routeFromHAR(path, { url: /.*theverge.*/ });
const page = await context.newPage();

View File

@ -94,6 +94,7 @@ it('should use proxy', async ({ contextFactory, server, proxyServer }) => {
it('should set cookie for top-level domain', async ({ contextFactory, server, proxyServer, browserName, isLinux }) => {
it.fixme(browserName === 'webkit' && isLinux);
proxyServer.forwardTo(server.PORT);
const context = await contextFactory({
proxy: { server: `localhost:${proxyServer.PORT}` }
@ -129,7 +130,7 @@ it.describe('should proxy local network requests', () => {
}
]) {
it(`${params.description}`, async ({ platform, browserName, contextFactory, server, proxyServer }) => {
it.fixme(browserName === 'webkit' && platform === 'darwin' && ['localhost', '127.0.0.1'].includes(params.target), 'Flaky on macOS; needs investigation.');
it.skip(browserName === 'webkit' && platform === 'darwin' && ['localhost', '127.0.0.1'].includes(params.target), 'Mac webkit does not proxy localhost');
const path = `/target-${additionalBypass}-${params.target}.html`;
server.setRoute(path, async (req, res) => {
@ -287,8 +288,6 @@ it('should authenticate with empty password', async ({ contextFactory, server, p
});
it('should isolate proxy credentials between contexts', async ({ contextFactory, server, browserName, proxyServer }) => {
it.fixme(browserName === 'firefox', 'Credentials from the first context stick around');
proxyServer.forwardTo(server.PORT);
let auth;
proxyServer.setAuthHandler(req => {

View File

@ -109,8 +109,6 @@ it('should fall back to context.route', async ({ browser, server }) => {
});
it('should support Set-Cookie header', async ({ contextFactory, server, browserName, defaultSameSiteCookieValue }) => {
it.fixme(browserName === 'webkit');
const context = await contextFactory();
const page = await context.newPage();
await page.route('https://example.com/', (route, request) => {
@ -154,8 +152,6 @@ it('should ignore secure Set-Cookie header for insecure requests', async ({ cont
});
it('should use Set-Cookie header in future requests', async ({ contextFactory, server, browserName, defaultSameSiteCookieValue }) => {
it.fixme(browserName === 'webkit');
const context = await contextFactory();
const page = await context.newPage();

View File

@ -110,8 +110,6 @@ it('should play audio @smoke', async ({ page, server, browserName, platform }) =
});
it('should support webgl @smoke', async ({ page, browserName, headless }) => {
it.fixme(browserName === 'firefox' && headless);
const hasWebGL = await page.evaluate(() => {
const canvas = document.createElement('canvas');
return !!canvas.getContext('webgl');
@ -119,9 +117,9 @@ it('should support webgl @smoke', async ({ page, browserName, headless }) => {
expect(hasWebGL).toBe(true);
});
it('should support webgl 2 @smoke', async ({ page, browserName, headless }) => {
it('should support webgl 2 @smoke', async ({ page, browserName, headless, isWindows }) => {
it.skip(browserName === 'webkit', 'WebKit doesn\'t have webgl2 enabled yet upstream.');
it.fixme(browserName === 'firefox');
it.fixme(browserName === 'firefox' && isWindows);
it.fixme(browserName === 'chromium' && !headless, 'chromium doesn\'t like webgl2 when running under xvfb');
const hasWebGL2 = await page.evaluate(() => {

View File

@ -305,7 +305,7 @@ it.describe('download event', () => {
});
it('should report alt-click downloads', async ({ browser, server, browserName }) => {
it.fixme(browserName === 'firefox' || browserName === 'webkit');
it.fixme(browserName === 'firefox');
// Firefox does not download on alt-click by default.
// Our WebKit embedder does not download on alt-click, although Safari does.
@ -524,8 +524,6 @@ it.describe('download event', () => {
});
it('should be able to cancel pending downloads', async ({ browser, server, browserName, browserVersion }) => {
// The exact upstream change is in b449b5c, which still does not appear in the first few 91.* tags until 91.0.4437.0.
it.fixme(browserName === 'chromium' && Number(browserVersion.split('.')[0]) < 91, 'The upstream Browser.cancelDownload command is not available before Chrome 91');
const page = await browser.newPage();
await page.setContent(`<a href="${server.PREFIX}/downloadWithDelay">download</a>`);
const [download] = await Promise.all([
@ -539,8 +537,6 @@ it.describe('download event', () => {
});
it('should not fail explicitly to cancel a download even if that is already finished', async ({ browser, server, browserName, browserVersion }) => {
// The exact upstream change is in b449b5c, which still does not appear in the first few 91.* tags until 91.0.4437.0.
it.fixme(browserName === 'chromium' && Number(browserVersion.split('.')[0]) < 91, 'The upstream Browser.cancelDownload command is not available before Chrome 91');
const page = await browser.newPage();
await page.setContent(`<a href="${server.PREFIX}/download">download</a>`);
const [download] = await Promise.all([
@ -639,8 +635,8 @@ it('should be able to download a inline PDF file via response interception', asy
await page.close();
});
it('should be able to download a inline PDF file via navigation', async ({ browser, server, asset, browserName }) => {
it.fixme(browserName === 'chromium' || browserName === 'webkit');
it('should be able to download a inline PDF file via navigation', async ({ browser, server, asset, browserName, headless }) => {
it.fixme((!headless && browserName === 'chromium') || browserName === 'webkit');
const page = await browser.newPage();
await page.goto(server.EMPTY_PAGE);
await page.setContent(`

View File

@ -559,7 +559,8 @@ it('should have popup requests', async ({ contextFactory, server }, testInfo) =>
});
it('should not contain internal pages', async ({ browserName, contextFactory, server }, testInfo) => {
it.fixme(true, 'https://github.com/microsoft/playwright/issues/6743');
it.info().annotations.push({ type: 'issue', description: 'https://github.com/microsoft/playwright/issues/6743' });
server.setRoute('/empty.html', (req, res) => {
res.setHeader('Set-Cookie', 'name=value');
res.end();

View File

@ -152,9 +152,8 @@ 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');
it.fixme(browserName === 'webkit', 'Our WebKit embedder does not respect window features');
// Our WebKit embedder does not respect window features.
const context = await browser.newContext({ viewport: null });
const page = await context.newPage();
await page.goto(server.EMPTY_PAGE);
@ -190,8 +189,9 @@ it('Page.bringToFront should work', async ({ browser }) => {
await page2.close();
});
it.skip('should click in OOPIF', async ({ browserName, launchPersistent, server }) => {
it.fixme(browserName === 'chromium');
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>`);
@ -210,7 +210,9 @@ it.skip('should click in OOPIF', async ({ browserName, launchPersistent, server
expect(consoleLog).toContain('ok');
});
it.skip('should click bottom row w/ infobar in OOPIF', async ({ launchPersistent, server }) => {
it('should click bottom row w/ infobar 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(`
@ -245,7 +247,8 @@ it.skip('should click bottom row w/ infobar in OOPIF', async ({ launchPersistent
it('headless and headful should use same default fonts', async ({ page, browserName, browserType }) => {
it.info().annotations.push({ type: 'issue', description: 'https://github.com/microsoft/playwright/issues/11177' });
it.fixme(browserName === 'firefox', 'Text is misaligned in headed vs headless');
it.skip(browserName === 'firefox', 'Text is misaligned in headed vs headless');
const genericFontFamilies = [
'standard',
'serif',

View File

@ -18,7 +18,6 @@ import { test, expect } from './inspectorTest';
test.describe('cli codegen', () => {
test.skip(({ mode }) => mode !== 'default');
test.fixme(({ browserName, headless }) => browserName === 'firefox' && !headless, 'Focus is off');
test('should click', async ({ page, openRecorder }) => {
const recorder = await openRecorder();
@ -609,8 +608,6 @@ test.describe('cli codegen', () => {
});
test('should await popup', async ({ page, openRecorder, browserName, headless }) => {
test.fixme(browserName === 'webkit' && !headless, 'Middle click does not open a popup in our webkit embedder');
const recorder = await openRecorder();
await recorder.setContentAndWait('<a target=_blank rel=noopener href="about:blank">link</a>');

View File

@ -105,8 +105,6 @@ test.describe('cli codegen', () => {
});
test('should upload a single file', async ({ page, openRecorder, browserName, asset }) => {
test.fixme(browserName === 'firefox', 'Hangs');
const recorder = await openRecorder();
await recorder.setContentAndWait(`
<form>
@ -137,8 +135,6 @@ test.describe('cli codegen', () => {
});
test('should upload multiple files', async ({ page, openRecorder, browserName, asset }) => {
test.fixme(browserName === 'firefox', 'Hangs');
const recorder = await openRecorder();
await recorder.setContentAndWait(`
<form>
@ -169,8 +165,6 @@ test.describe('cli codegen', () => {
});
test('should clear files', async ({ page, openRecorder, browserName, asset }) => {
test.fixme(browserName === 'firefox', 'Hangs');
const recorder = await openRecorder();
await recorder.setContentAndWait(`
<form>
@ -371,8 +365,6 @@ test.describe('cli codegen', () => {
});
test('should not clash pages', async ({ page, openRecorder, browserName }) => {
test.fixme(browserName === 'firefox', 'Times out on Firefox, maybe the focus issue');
const recorder = await openRecorder();
const [popup1] = await Promise.all([
page.context().waitForEvent('page'),
@ -445,7 +437,7 @@ test.describe('cli codegen', () => {
});
test('should update active model on action', async ({ page, openRecorder, browserName, headless }) => {
test.fixme(browserName !== 'chromium');
test.fixme(browserName === 'webkit');
const recorder = await openRecorder();
await recorder.setContentAndWait(`<input id="checkbox" type="checkbox" name="accept" onchange="checkbox.name='updated'"></input>`);

View File

@ -17,7 +17,8 @@
import { playwrightTest as it, expect } from '../config/browserTest';
it('should log @smoke', async ({ browserType, mode }) => {
it.fixme(mode === 'docker', 'logger is not plumbed into the remote connection');
it.skip(mode === 'docker', 'logger is not plumbed into the remote connection');
const log = [];
const browser = await browserType.launch({ logger: {
log: (name, severity, message) => log.push({ name, severity, message }),

View File

@ -92,7 +92,7 @@ it.describe('should proxy local network requests', () => {
}
]) {
it(`${params.description}`, async ({ platform, browserName, browserType, server, proxyServer }) => {
it.fixme(browserName === 'webkit' && platform === 'darwin' && ['localhost', '127.0.0.1'].includes(params.target), 'Flaky on macOS; needs investigation.');
it.skip(browserName === 'webkit' && platform === 'darwin' && ['localhost', '127.0.0.1'].includes(params.target), 'Mac webkit does not proxy localhost.');
const path = `/target-${additionalBypass}-${params.target}.html`;
server.setRoute(path, async (req, res) => {
@ -178,8 +178,6 @@ it('should work with authenticate followed by redirect', async ({ browserName, b
});
it('should exclude patterns', async ({ browserType, server, browserName, headless }) => {
it.fixme(browserName === 'chromium' && !headless, 'Chromium headed crashes with CHECK(!in_frame_tree_) in RenderFrameImpl::OnDeleteFrame.');
server.setRoute('/target.html', async (req, res) => {
res.end('<html><title>Served by the proxy</title></html>');
});

View File

@ -377,7 +377,8 @@ browserTest.describe('element screenshot', () => {
browserTest('should work if the main resource hangs', async ({ browser, browserName, mode, server }) => {
browserTest.skip(mode !== 'default');
browserTest.fixme(browserName === 'chromium', 'https://github.com/microsoft/playwright/issues/9757');
browserTest.skip(browserName === 'chromium', 'https://github.com/microsoft/playwright/issues/9757');
const page = await browser.newPage();
server.setRoute('/slow', (req, res) => {
res.writeHead(200, {

View File

@ -126,7 +126,6 @@ test('should render events', async ({ showTraceViewer }) => {
});
test('should render console', async ({ showTraceViewer, browserName }) => {
test.fixme(browserName === 'firefox', 'Firefox generates stray console message for page error');
const traceViewer = await showTraceViewer([traceFile]);
await traceViewer.selectAction('page.evaluate');
await traceViewer.showConsoleTab();
@ -137,7 +136,6 @@ test('should render console', async ({ showTraceViewer, browserName }) => {
});
test('should open console errors on click', async ({ showTraceViewer, browserName }) => {
test.fixme(browserName === 'firefox', 'Firefox generates stray console message for page error');
const traceViewer = await showTraceViewer([traceFile]);
expect(await traceViewer.actionIconsText('page.evaluate')).toEqual(['2', '1']);
expect(await traceViewer.page.isHidden('.console-tab')).toBeTruthy();

View File

@ -22,9 +22,6 @@ import { parseTrace } from '../config/utils';
test.skip(({ trace }) => trace === 'on');
// https://github.com/microsoft/playwright/issues/14285
test.fixme(({ browserName, headless }) => browserName === 'firefox' && !headless);
test('should collect trace with resources, but no js', async ({ context, page, server }, testInfo) => {
await context.tracing.start({ screenshots: true, snapshots: true });
await page.goto(server.PREFIX + '/frames/frame.html');
@ -119,7 +116,6 @@ test('should not include buffers in the trace', async ({ context, page, server,
});
test('should exclude internal pages', async ({ browserName, context, page, server }, testInfo) => {
test.fixme(true, 'https://github.com/microsoft/playwright/issues/6743');
await page.goto(server.EMPTY_PAGE);
await context.tracing.start();
@ -299,10 +295,11 @@ for (const params of [
}
]) {
browserTest(`should produce screencast frames ${params.id}`, async ({ video, contextFactory, browserName, platform, headless }, testInfo) => {
browserTest.fixme(browserName === 'chromium' && video === 'on', 'Same screencast resolution conflicts');
browserTest.skip(browserName === 'chromium' && video === 'on', 'Same screencast resolution conflicts');
browserTest.fixme(browserName === 'chromium' && !headless, 'Chromium screencast on headed has a min width issue');
browserTest.fixme(params.id === 'fit' && browserName === 'chromium' && platform === 'darwin', 'High DPI maxes image at 600x600');
browserTest.fixme(params.id === 'fit' && browserName === 'webkit' && platform === 'linux', 'Image size is flaky');
browserTest.fixme(browserName === 'firefox' && !headless, 'Image size is different');
const scale = Math.min(800 / params.width, 600 / params.height, 1);
const previewWidth = params.width * scale;

View File

@ -193,7 +193,7 @@ it('should report different frame instance when frame re-attaches', async ({ pag
});
it('should refuse to display x-frame-options:deny iframe', async ({ page, server, browserName }) => {
it.fixme(browserName === 'firefox');
it.skip(browserName === 'firefox');
server.setRoute('/x-frame-options-deny.html', async (req, res) => {
res.setHeader('Content-Type', 'text/html');

View File

@ -156,8 +156,6 @@ it('should work with regular expression passed from a different context', async
});
it('should not break remote worker importScripts', async ({ page, server, browserName, browserMajorVersion }) => {
it.fixme(browserName && browserMajorVersion < 91);
await page.route('**', async route => {
await route.continue();
});

View File

@ -165,7 +165,7 @@ it('should await navigation when assigning location twice', async ({ page, serve
});
it('should await navigation when evaluating reload', async ({ page, server, browserName }) => {
it.fixme(browserName === 'firefox', 'With fission enabled, navigations in Firefox start asynchronously');
it.skip(browserName === 'firefox', 'With fission enabled, navigations in Firefox start asynchronously');
await page.goto(server.EMPTY_PAGE);
const messages = initServer(server);

View File

@ -254,6 +254,6 @@ it('frame.press should work', async ({ page, server }) => {
});
it('has navigator.webdriver set to true', async ({ page, browserName }) => {
it.fixme(browserName === 'firefox');
it.skip(browserName === 'firefox');
expect(await page.evaluate(() => navigator.webdriver)).toBe(true);
});

View File

@ -17,7 +17,6 @@
import { expect, test as it } from './pageTest';
it('should not hit scroll bar', async ({ page, browserName, platform }) => {
it.fixme(browserName === 'webkit' && platform === 'darwin');
it.fixme(browserName === 'webkit' && platform === 'linux', 'Fails in headless and in headful on Ubuntu 22.04');
it.fixme(browserName === 'webkit' && platform === 'win32', 'https://github.com/microsoft/playwright/issues/18452');

View File

@ -16,17 +16,14 @@
*/
import { test as it, expect } from './pageTest';
import * as os from 'os';
function crash({ page, toImpl, browserName, platform, mode }: any) {
if (browserName === 'chromium') {
if (browserName === 'chromium')
page.goto('chrome://crash').catch(e => {});
} else if (browserName === 'webkit') {
it.fixme(platform === 'darwin' && parseInt(os.release(), 10) >= 20, 'Timing out after roll on BigSur');
else if (browserName === 'webkit')
toImpl(page)._delegate._session.send('Page.crash', {}).catch(e => {});
} else if (browserName === 'firefox') {
else if (browserName === 'firefox')
toImpl(page)._delegate._session.send('Page.crash', {}).catch(e => {});
}
}
it.describe('', () => {

View File

@ -47,8 +47,6 @@ it('should emit for immediately closed popups', async ({ page }) => {
});
it('should emit for immediately closed popups 2', async ({ page, server, browserName, video }) => {
it.fixme(browserName === 'firefox' && video === 'on');
await page.goto(server.EMPTY_PAGE);
const [popup] = await Promise.all([
page.waitForEvent('popup'),

View File

@ -16,7 +16,6 @@
*/
import url from 'url';
import os from 'os';
import { test as it, expect } from './pageTest';
import { expectedSSLError } from '../config/utils';
@ -254,7 +253,7 @@ it('should work when page calls history API in beforeunload', async ({ page, ser
});
it('should fail when navigating to bad url', async ({ mode, page, browserName }) => {
it.fixme(mode === 'service', 'baseURL is inherited from webServer in config');
it.skip(mode === 'service', 'baseURL is inherited from webServer in config');
let error = null;
await page.goto('asdfasdf').catch(e => error = e);
if (browserName === 'chromium' || browserName === 'webkit')
@ -594,7 +593,6 @@ it('should not throw unhandled rejections on invalid url', async ({ page, server
});
it('should not crash when RTCPeerConnection is used', async ({ page, server, browserName, platform }) => {
it.fixme(browserName === 'webkit' && platform === 'darwin' && parseInt(os.release(), 10) === 18, 'Does not work on MacOS 10.14');
server.setRoute('/rtc.html', (_, res) => {
res.end(`
<!DOCTYPE html>
@ -619,7 +617,6 @@ it('should not crash when RTCPeerConnection is used', async ({ page, server, bro
});
it('should properly wait for load', async ({ page, server, browserName }) => {
it.fixme(browserName === 'webkit', 'WebKit has a bug where Page.frameStoppedLoading is sent too early.');
server.setRoute('/slow.js', async (req, res) => {
await new Promise(x => setTimeout(x, 100));
res.writeHead(200, { 'Content-Type': 'application/javascript' });
@ -655,7 +652,6 @@ it('should not resolve goto upon window.stop()', async ({ browserName, page, ser
});
it('should return from goto if new navigation is started', async ({ page, server, browserName, isAndroid }) => {
it.fixme(browserName === 'webkit', 'WebKit has a bug where Page.frameStoppedLoading is sent too early.');
it.fixme(isAndroid);
server.setRoute('/slow.js', async (req, res) => void 0);
let finished = false;

View File

@ -32,7 +32,8 @@ it('should work @smoke', async ({ page, server }) => {
});
it('should return multiple header value', async ({ page, server, browserName, platform }) => {
it.fixme(browserName === 'webkit' && platform === 'win32', 'libcurl does not support non-set-cookie multivalue headers');
it.skip(browserName === 'webkit' && platform === 'win32', 'libcurl does not support non-set-cookie multivalue headers');
server.setRoute('/headers', (req, res) => {
// Headers array is only supported since Node v14.14.0 so we write directly to the socket.
// res.writeHead(200, ['name-a', 'v1','name-b', 'v4','Name-a', 'v2', 'name-A', 'v3']);
@ -179,7 +180,7 @@ it('should return status text', async ({ page, server }) => {
it('should report all headers', async ({ page, server, browserName, platform, isElectron, browserMajorVersion }) => {
it.skip(isElectron && browserMajorVersion < 99, 'This needs Chromium >= 99');
it.fixme(browserName === 'webkit' && platform === 'win32', 'libcurl does not support non-set-cookie multivalue headers');
it.skip(browserName === 'webkit' && platform === 'win32', 'libcurl does not support non-set-cookie multivalue headers');
const expectedHeaders = {
'header-a': ['value-a', 'value-a-1', 'value-a-2'],
@ -238,7 +239,7 @@ it('should report multiple set-cookie headers', async ({ page, server, isElectro
});
it('should behave the same way for headers and allHeaders', async ({ page, server, browserName, platform }) => {
it.fixme(browserName === 'webkit' && platform === 'win32', 'libcurl does not support non-set-cookie multivalue headers');
it.skip(browserName === 'webkit' && platform === 'win32', 'libcurl does not support non-set-cookie multivalue headers');
server.setRoute('/headers', (req, res) => {
const headers = {
'Set-Cookie': ['a=b', 'c=d'],
@ -271,7 +272,7 @@ it('should behave the same way for headers and allHeaders', async ({ page, serve
it('should provide a Response with a file URL', async ({ page, asset, isAndroid, isElectron, isWindows, browserName, browserMajorVersion }) => {
it.skip(isAndroid, 'No files on Android');
it.fixme(browserName === 'firefox', 'Firefox does return null for file:// URLs');
it.skip(browserName === 'firefox', 'Firefox does return null for file:// URLs');
const fileurl = url.pathToFileURL(asset('frames/two-frames.html')).href;
const response = await page.goto(fileurl);

View File

@ -251,7 +251,7 @@ it.describe('post data', () => {
it('should use content-type from original request', async ({ page, server, browserName }) => {
it.info().annotations.push({ type: 'issue', description: 'https://github.com/microsoft/playwright/issues/16736' });
it.fixme(browserName === 'firefox');
await page.goto(server.EMPTY_PAGE);
await page.route(`${server.PREFIX}/title.html`, route => route.continue({ postData: '{"b":2}' }));
const [request] = await Promise.all([

View File

@ -308,7 +308,7 @@ it('should fulfill with fetch response that has multiple set-cookie', async ({ p
it('headerValue should return set-cookie from intercepted response', async ({ page, server, browserName }) => {
it.fail(browserName === 'chromium', 'Set-Cookie is missing in response after interception');
it.fixme(browserName === 'webkit', 'Set-Cookie with \n in intercepted response does not pass validation in WebCore, see also https://github.com/microsoft/playwright/pull/9273');
it.skip(browserName === 'webkit', 'Set-Cookie with \n in intercepted response does not pass validation in WebCore, see also https://github.com/microsoft/playwright/pull/9273');
await page.route('**/empty.html', async route => {
route.fulfill({
status: 200,

View File

@ -61,7 +61,8 @@ it.describe('page screenshot', () => {
});
it('should capture blinking caret if explicitly asked for', async ({ page, server, browserName }) => {
it.fixme(browserName === 'firefox', 'browser-level screenshot API in firefox does not capture caret');
it.skip(browserName === 'firefox', 'browser-level screenshot API in firefox does not capture caret');
await page.setContent(`
<!-- Refer to stylesheet from other origin. Accessing this
stylesheet rules will throw.
@ -307,7 +308,7 @@ it.describe('page screenshot', () => {
});
it('should work for webgl', async ({ page, server, browserName }) => {
it.fixme(browserName === 'firefox' || browserName === 'webkit');
it.fixme(browserName === 'firefox');
await page.setViewportSize({ width: 640, height: 480 });
await page.goto(server.PREFIX + '/screenshots/webgl.html');

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@ -182,8 +182,6 @@ it('should work for frame', async ({ page, server }) => {
});
it('should work with javascript: iframe', async ({ page, server, browserName }) => {
it.fixme(browserName === 'firefox', 'no load event');
await page.goto(server.EMPTY_PAGE);
await page.setContent(`<iframe src="javascript:false"></iframe>`, { waitUntil: 'commit' });
await page.waitForLoadState('domcontentloaded');
@ -200,9 +198,6 @@ it('should work with broken data-url iframe', async ({ page, server }) => {
});
it('should work with broken blob-url iframe', async ({ page, server, browserName }) => {
it.fixme(browserName === 'chromium', 'no load event');
it.fixme(browserName === 'firefox', 'no load event');
await page.goto(server.EMPTY_PAGE);
await page.setContent(`<iframe src="blob:"></iframe>`, { waitUntil: 'commit' });
await page.waitForLoadState('domcontentloaded');

View File

@ -28,8 +28,6 @@ it('should work for open shadow roots', async ({ page, server }) => {
});
it('should click on links in shadow dom', async ({ page, server, browserName, browserMajorVersion }) => {
it.fixme(browserName === 'chromium' && browserMajorVersion < 91, 'Remove when crrev.com/864024 gets to the stable channel');
await page.goto(server.PREFIX + '/shadow-dom-link.html');
expect(await page.evaluate(() => (window as any).clickCount)).toBe(0);
await page.click('#inner-link');