Commit bcbd3d3d authored by Andrey Kosyakov's avatar Andrey Kosyakov Committed by Commit Bot

Headless: add a test for same document navigation with virtual time

This is a test for regression introduced by
https://chromium-review.googlesource.com/c/chromium/src/+/1856929

Change-Id: I833a24ceb7b316f432033f3bf721084a708dfd64
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1863850
Commit-Queue: Andrey Kosyakov <caseq@chromium.org>
Reviewed-by: default avatarJohannes Henkel <johannes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#706630}
parent 97532964
Tests virtual time with same document history navigation.
Request to http://test.com/, type: Document
PAGE: pass
\ No newline at end of file
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
(async function(testRunner) {
const {page, session, dp} = await testRunner.startBlank(
`Tests virtual time with same document history navigation.`);
const FetchHelper = await testRunner.loadScriptAbsolute(
'../fetch/resources/fetch-test.js');
const helper = new FetchHelper(testRunner, dp);
await helper.enable();
helper.onRequest('http://test.com/').fulfill(
FetchHelper.makeContentResponse(`
<body onload="step1()">
<script>
function step1() {
// Step 1 - create some history by navigating forward. Note
// that this doesn't cause a load.
history.pushState({}, '', '/foo');
setTimeout(step2, 100);
}
function step2() {
if (location.href !== 'http://test.com/foo')
throw 'pushState failed.';
history.back();
setTimeout(step3, 100);
}
function step3() {
if (location.href !== 'http://test.com/')
throw 'Backward navigation failed.';
history.forward();
setTimeout(step4, 100);
}
function step4() {
if (location.href !== 'http://test.com/foo')
throw 'Forward navigation failed.';
console.log('pass');
}
</script>
</body>`)
);
await dp.Runtime.enable();
await dp.Emulation.setVirtualTimePolicy({policy: 'pause'});
await dp.Emulation.setVirtualTimePolicy({
policy: 'pauseIfNetworkFetchesPending', budget: 5000,
waitForNavigation: true});
dp.Page.navigate({url: 'http://test.com/'});
const {params} = await dp.Runtime.onceConsoleAPICalled();
testRunner.log(`PAGE: ${params.args[0].value}`);
testRunner.completeTest();
})
......@@ -246,6 +246,8 @@ HEADLESS_PROTOCOL_TEST(VirtualTimeDialogWhileLoading,
"emulation/virtual-time-dialog-while-loading.js")
HEADLESS_PROTOCOL_TEST(VirtualTimeHistoryNavigation,
"emulation/virtual-time-history-navigation.js")
HEADLESS_PROTOCOL_TEST(VirtualTimeHistoryNavigationSameDoc,
"emulation/virtual-time-history-navigation-same-doc.js")
// http://crbug.com/633321
#if defined(OS_ANDROID)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment