From 99266e48ecb75f766d3216ea15e03357edd7680e Mon Sep 17 00:00:00 2001 From: Dmitry Gozman Date: Mon, 3 Oct 2022 19:13:28 -0700 Subject: [PATCH] test: add a test for bfcache and history navigations (#17796) Fixes #17618. --- tests/page/page-history.spec.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tests/page/page-history.spec.ts b/tests/page/page-history.spec.ts index f825458afe..58a8bcb48f 100644 --- a/tests/page/page-history.spec.ts +++ b/tests/page/page-history.spec.ts @@ -53,7 +53,6 @@ it('page.goBack should work with HistoryAPI', async ({ page, server }) => { }); it('page.goBack should work for file urls', async ({ page, server, asset, browserName, platform, isAndroid }) => { - it.fixme(browserName === 'firefox', 'Firefox pretends, but does not complete goBack to the file url'); it.fail(browserName === 'webkit' && platform === 'darwin', 'WebKit embedder fails to go back/forward to the file url.'); it.skip(isAndroid, 'No files on Android'); @@ -92,6 +91,18 @@ it('page.goBack should work for file urls', async ({ page, server, asset, browse await page.screenshot(); }); +it('goBack/goForward should work with bfcache-able pages', async ({ page, server }) => { + await page.goto(server.PREFIX + '/cached/one-style.html'); + await page.setContent(`click me`); + await page.click('a'); + + let response = await page.goBack(); + expect(response.url()).toBe(server.PREFIX + '/cached/one-style.html'); + + response = await page.goForward(); + expect(response.url()).toBe(server.PREFIX + '/cached/one-style.html?foo'); +}); + it('page.reload should work', async ({ page, server }) => { await page.goto(server.EMPTY_PAGE); await page.evaluate(() => window['_foo'] = 10);