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:
Dmitry Gozman 2024-04-24 14:05:39 -07:00 committed by GitHub
parent 1b7e097b68
commit 6fecf52016
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

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