mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00
test: response interception after redirects (failing) (#7534)
This commit is contained in:
parent
22bc9c0285
commit
869ef072e7
@ -160,3 +160,42 @@ it('should be abortable after interception', async ({page, server, browserName})
|
|||||||
expect(failed).toBe(true);
|
expect(failed).toBe(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should fulfill after redirects', async ({page, server}) => {
|
||||||
|
it.fixme();
|
||||||
|
server.setRedirect('/redirect/1.html', '/redirect/2.html');
|
||||||
|
server.setRedirect('/redirect/2.html', '/empty.html');
|
||||||
|
const expectedUrls = ['/redirect/1.html', '/redirect/2.html', '/empty.html'].map(s => server.PREFIX + s);
|
||||||
|
const requestUrls = [];
|
||||||
|
const responseUrls = [];
|
||||||
|
const requestFinishedUrls = [];
|
||||||
|
page.on('request', request => requestUrls.push(request.url()));
|
||||||
|
page.on('response', response => responseUrls.push(response.url()));
|
||||||
|
page.on('requestfinished', request => requestFinishedUrls.push(request.url()));
|
||||||
|
await page.route('**/*', async route => {
|
||||||
|
// @ts-expect-error
|
||||||
|
await route._intercept({});
|
||||||
|
await route.fulfill({
|
||||||
|
status: 201,
|
||||||
|
headers: {
|
||||||
|
foo: 'bar'
|
||||||
|
},
|
||||||
|
contentType: 'text/plain',
|
||||||
|
body: 'Yo, page!'
|
||||||
|
});
|
||||||
|
});
|
||||||
|
const response = await page.goto(server.PREFIX + '/redirect/1.html');
|
||||||
|
expect(requestUrls).toEqual(expectedUrls);
|
||||||
|
expect(responseUrls).toEqual(expectedUrls);
|
||||||
|
await response.finished();
|
||||||
|
expect(requestFinishedUrls).toEqual(expectedUrls);
|
||||||
|
|
||||||
|
const redirectChain = [];
|
||||||
|
for (let req = response.request(); req; req = req.redirectedFrom())
|
||||||
|
redirectChain.unshift(req.url());
|
||||||
|
expect(redirectChain).toEqual(expectedUrls);
|
||||||
|
|
||||||
|
expect(response.status()).toBe(201);
|
||||||
|
expect(response.headers().foo).toBe('bar');
|
||||||
|
expect(response.headers()['content-type']).toBe('text/plain');
|
||||||
|
expect(await response.text()).toBe('Yo, page!');
|
||||||
|
});
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user