From 2cc4dfc96fcfda0036a4df9b0f72030df4d31027 Mon Sep 17 00:00:00 2001 From: Yury Semikhatsky Date: Wed, 5 Jan 2022 17:35:26 -0800 Subject: [PATCH] test: set-cookie response header after route.fulfill (#11044) --- tests/page/page-network-response.spec.ts | 42 ++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/tests/page/page-network-response.spec.ts b/tests/page/page-network-response.spec.ts index ec5f9dae66..1a64e19346 100644 --- a/tests/page/page-network-response.spec.ts +++ b/tests/page/page-network-response.spec.ts @@ -15,9 +15,9 @@ * limitations under the License. */ -import url from 'url'; -import { test as it, expect } from './pageTest'; import fs from 'fs'; +import url from 'url'; +import { expect, test as it } from './pageTest'; it('should work #smoke', async ({ page, server }) => { server.setRoute('/empty.html', (req, res) => { @@ -280,3 +280,41 @@ it('should provide a Response with a file URL', async ({ page, asset, isAndroid, expect(response.status()).toBe(0); expect(response.ok()).toBe(true); }); + +it('should return set-cookie header after route.fulfill', async ({ page, server, browserName }) => { + it.fail(browserName === 'webkit' || browserName === 'chromium', 'https://github.com/microsoft/playwright/issues/11035'); + await page.route('**/*', async route => { + await route.fulfill({ + status: 200, + headers: { + 'set-cookie': 'a=b' + }, + contentType: 'text/plain', + body: '' + }); + }); + const response = await page.goto(server.EMPTY_PAGE); + const headers = await response.allHeaders(); + expect(headers['set-cookie']).toBe('a=b'); +}); + +it('should return headers after route.fulfill', async ({ page, server }) => { + await page.route('**/*', async route => { + await route.fulfill({ + status: 200, + headers: { + 'foo': 'bar', + 'content-language': 'en' + }, + contentType: 'text/plain', + body: 'done' + }); + }); + const response = await page.goto(server.EMPTY_PAGE); + expect(await response.allHeaders()).toEqual({ + 'foo': 'bar', + 'content-type': 'text/plain', + 'content-length': '4', + 'content-language': 'en' + }); +});