test: update stale test expectations (#20423)
This commit is contained in:
parent
532ca3f7b3
commit
821949d580
|
@ -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:
|
||||
|
|
|
@ -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)}`);
|
||||
|
|
|
@ -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=/');
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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 => {
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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(() => {
|
||||
|
|
|
@ -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(`
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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>');
|
||||
|
||||
|
|
|
@ -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>`);
|
||||
|
|
|
@ -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 }),
|
||||
|
|
|
@ -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>');
|
||||
});
|
||||
|
|
|
@ -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, {
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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');
|
||||
|
|
|
@ -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();
|
||||
});
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
});
|
||||
|
|
|
@ -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');
|
||||
|
||||
|
|
|
@ -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('', () => {
|
||||
|
|
|
@ -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'),
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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([
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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 |
|
@ -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');
|
||||
|
|
|
@ -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');
|
||||
|
|
Loading…
Reference in New Issue