test: can delete origin header in route.continue (#13879)
This commit is contained in:
parent
bd2a2873b7
commit
539546ab74
|
|
@ -251,3 +251,35 @@ it('should connect to a browser with the default page', async ({ browserType,cre
|
||||||
expect(context.pages().length).toBe(1);
|
expect(context.pages().length).toBe(1);
|
||||||
await context.close();
|
await context.close();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('route.continue should delete the origin header', async ({ launchPersistent, server, isAndroid, browserName }) => {
|
||||||
|
it.info().annotations.push({ type: 'issue', description: 'https://github.com/microsoft/playwright/issues/13106' });
|
||||||
|
it.skip(isAndroid, 'No cross-process on Android');
|
||||||
|
it.fail(browserName === 'webkit', 'Does not delete origin in webkit');
|
||||||
|
|
||||||
|
const { page } = await launchPersistent();
|
||||||
|
|
||||||
|
await page.goto(server.PREFIX + '/empty.html');
|
||||||
|
server.setRoute('/something', (request, response) => {
|
||||||
|
response.writeHead(200, { 'Access-Control-Allow-Origin': '*' });
|
||||||
|
response.end('done');
|
||||||
|
});
|
||||||
|
let interceptedRequest;
|
||||||
|
await page.route(server.CROSS_PROCESS_PREFIX + '/something', async (route, request) => {
|
||||||
|
interceptedRequest = request;
|
||||||
|
const headers = await request.allHeaders();
|
||||||
|
delete headers['origin'];
|
||||||
|
route.continue({ headers });
|
||||||
|
});
|
||||||
|
|
||||||
|
const [text, serverRequest] = await Promise.all([
|
||||||
|
page.evaluate(async url => {
|
||||||
|
const data = await fetch(url);
|
||||||
|
return data.text();
|
||||||
|
}, server.CROSS_PROCESS_PREFIX + '/something'),
|
||||||
|
server.waitForRequest('/something')
|
||||||
|
]);
|
||||||
|
expect(text).toBe('done');
|
||||||
|
expect(interceptedRequest.headers()['origin']).toEqual(server.PREFIX);
|
||||||
|
expect(serverRequest.headers.origin).toBeFalsy();
|
||||||
|
});
|
||||||
|
|
|
||||||
|
|
@ -246,3 +246,34 @@ it('should work with Cross-Origin-Opener-Policy', async ({ page, server, browser
|
||||||
expect(requests.size).toBe(1);
|
expect(requests.size).toBe(1);
|
||||||
expect(response.request().failure()).toBeNull();
|
expect(response.request().failure()).toBeNull();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should delete the origin header', async ({ page, server, isAndroid, browserName }) => {
|
||||||
|
it.info().annotations.push({ type: 'issue', description: 'https://github.com/microsoft/playwright/issues/13106' });
|
||||||
|
it.skip(isAndroid, 'No cross-process on Android');
|
||||||
|
it.fail(browserName === 'webkit', 'Does not delete origin in webkit');
|
||||||
|
|
||||||
|
await page.goto(server.PREFIX + '/empty.html');
|
||||||
|
server.setRoute('/something', (request, response) => {
|
||||||
|
response.writeHead(200, { 'Access-Control-Allow-Origin': '*' });
|
||||||
|
response.end('done');
|
||||||
|
});
|
||||||
|
let interceptedRequest;
|
||||||
|
await page.route(server.CROSS_PROCESS_PREFIX + '/something', async (route, request) => {
|
||||||
|
interceptedRequest = request;
|
||||||
|
const headers = await request.allHeaders();
|
||||||
|
delete headers['origin'];
|
||||||
|
route.continue({ headers });
|
||||||
|
});
|
||||||
|
|
||||||
|
const [text, serverRequest] = await Promise.all([
|
||||||
|
page.evaluate(async url => {
|
||||||
|
const data = await fetch(url);
|
||||||
|
return data.text();
|
||||||
|
}, server.CROSS_PROCESS_PREFIX + '/something'),
|
||||||
|
server.waitForRequest('/something')
|
||||||
|
]);
|
||||||
|
expect(text).toBe('done');
|
||||||
|
expect(interceptedRequest.headers()['origin']).toEqual(server.PREFIX);
|
||||||
|
expect(serverRequest.headers.origin).toBeFalsy();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue