mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00
test: adjust headers expectations for firefox-beta (#30520)
There is a new experimental feature enabled in firefox-beta that sends a "Priority" header.
This commit is contained in:
parent
1b7e097b68
commit
6fecf52016
@ -19,6 +19,14 @@ import { test as it, expect } from './pageTest';
|
||||
import { attachFrame } from '../config/utils';
|
||||
import fs from 'fs';
|
||||
|
||||
function adjustServerHeaders(headers: Object, browserName: string, channel: string) {
|
||||
if (browserName === 'firefox' && channel === 'firefox-beta') {
|
||||
// This is a new experimental feature, only enabled in Firefox Beta for now.
|
||||
delete headers['priority'];
|
||||
}
|
||||
return headers;
|
||||
}
|
||||
|
||||
it('should work for main frame navigation request', async ({ page, server }) => {
|
||||
const requests = [];
|
||||
page.on('request', request => requests.push(request));
|
||||
@ -82,7 +90,7 @@ it('should return headers', async ({ page, server, browserName }) => {
|
||||
expect(response.request().headers()['user-agent']).toContain('WebKit');
|
||||
});
|
||||
|
||||
it('should get the same headers as the server', async ({ page, server, browserName, platform, isElectron, browserMajorVersion }) => {
|
||||
it('should get the same headers as the server', async ({ page, server, browserName, platform, isElectron, browserMajorVersion, channel }) => {
|
||||
it.skip(isElectron && browserMajorVersion < 99, 'This needs Chromium >= 99');
|
||||
it.fail(browserName === 'webkit' && platform === 'win32', 'Curl does not show accept-encoding and accept-language');
|
||||
let serverRequest;
|
||||
@ -92,10 +100,10 @@ it('should get the same headers as the server', async ({ page, server, browserNa
|
||||
});
|
||||
const response = await page.goto(server.PREFIX + '/empty.html');
|
||||
const headers = await response.request().allHeaders();
|
||||
expect(headers).toEqual(serverRequest.headers);
|
||||
expect(headers).toEqual(adjustServerHeaders(serverRequest.headers, browserName, channel));
|
||||
});
|
||||
|
||||
it('should not return allHeaders() until they are available', async ({ page, server, browserName, platform, isElectron, browserMajorVersion }) => {
|
||||
it('should not return allHeaders() until they are available', async ({ page, server, browserName, platform, isElectron, browserMajorVersion, channel }) => {
|
||||
it.skip(isElectron && browserMajorVersion < 99, 'This needs Chromium >= 99');
|
||||
it.fail(browserName === 'webkit' && platform === 'win32', 'Curl does not show accept-encoding and accept-language');
|
||||
|
||||
@ -114,13 +122,13 @@ it('should not return allHeaders() until they are available', async ({ page, ser
|
||||
|
||||
await page.goto(server.PREFIX + '/empty.html');
|
||||
const requestHeaders = await requestHeadersPromise;
|
||||
expect(requestHeaders).toEqual(serverRequest.headers);
|
||||
expect(requestHeaders).toEqual(adjustServerHeaders(serverRequest.headers, browserName, channel));
|
||||
|
||||
const responseHeaders = await responseHeadersPromise;
|
||||
expect(responseHeaders['foo']).toBe('bar');
|
||||
});
|
||||
|
||||
it('should get the same headers as the server CORS', async ({ page, server, browserName, platform, isElectron, browserMajorVersion }) => {
|
||||
it('should get the same headers as the server CORS', async ({ page, server, browserName, platform, isElectron, browserMajorVersion, channel }) => {
|
||||
it.skip(isElectron && browserMajorVersion < 99, 'This needs Chromium >= 99');
|
||||
it.fail(browserName === 'webkit' && platform === 'win32', 'Curl does not show accept-encoding and accept-language');
|
||||
|
||||
@ -139,7 +147,7 @@ it('should get the same headers as the server CORS', async ({ page, server, brow
|
||||
expect(text).toBe('done');
|
||||
const response = await responsePromise;
|
||||
const headers = await response.request().allHeaders();
|
||||
expect(headers).toEqual(serverRequest.headers);
|
||||
expect(headers).toEqual(adjustServerHeaders(serverRequest.headers, browserName, channel));
|
||||
});
|
||||
|
||||
it('should not get preflight CORS requests when intercepting', async ({ page, server, browserName, isAndroid }) => {
|
||||
@ -353,7 +361,7 @@ it('should return navigation bit when navigating to image', async ({ page, serve
|
||||
expect(requests[0].isNavigationRequest()).toBe(true);
|
||||
});
|
||||
|
||||
it('should report raw headers', async ({ page, server, browserName, platform, isElectron, browserMajorVersion }) => {
|
||||
it('should report raw headers', async ({ page, server, browserName, platform, isElectron, browserMajorVersion, channel }) => {
|
||||
it.skip(isElectron && browserMajorVersion < 99, 'This needs Chromium >= 99');
|
||||
|
||||
let expectedHeaders: { name: string, value: string }[];
|
||||
@ -376,6 +384,10 @@ it('should report raw headers', async ({ page, server, browserName, platform, is
|
||||
return { name, value: values[0] };
|
||||
});
|
||||
}
|
||||
if (browserName === 'firefox' && channel === 'firefox-beta') {
|
||||
// This is a new experimental feature, only enabled in Firefox Beta for now.
|
||||
expectedHeaders = expectedHeaders.filter(({ name }) => name.toLowerCase() !== 'priority');
|
||||
}
|
||||
res.end();
|
||||
});
|
||||
await page.goto(server.EMPTY_PAGE);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user