diff --git a/tests/page/page-network-sizes.spec.ts b/tests/page/page-network-sizes.spec.ts index 384ec66c18..f9485eddff 100644 --- a/tests/page/page-network-sizes.spec.ts +++ b/tests/page/page-network-sizes.spec.ts @@ -167,3 +167,31 @@ for (const statusCode of [200, 401, 404, 500]) { expect(sizes.responseBodySize).toBe(3); }); } + +it('should have correct responseBodySize for 404 with content', async ({ page, server, browserName }) => { + it.fail(browserName === 'chromium'); + + server.setRoute('/broken-image.png', (req, resp) => { + resp.writeHead(404); + resp.end(`
this should have a non-negative size
`); + }); + server.setRoute('/page-with-404-image.html', (req, resp) => { + resp.end(` + + +
+
+
+ `);
+ });
+
+ const [req] = await Promise.all([
+ page.waitForRequest(/broken-image\.png$/),
+ page.goto(server.PREFIX + '/page-with-404-image.html'),
+ ]);
+
+ const { responseBodySize } = await req.sizes();
+ expect(responseBodySize).toBeGreaterThanOrEqual(0);
+});