chromium/third_party/blink/web_tests/http/tests/inspector-protocol/page/page-navigatedWithinDocument.js

(async function(/** @type {import('test_runner').TestRunner} */ testRunner) {
  var {page, session, dp} = await testRunner.startBlank(
      `Tests that Page.navigateWithinDocument is issued for history API and anchor navigation.`);

  await dp.Page.enable();
  await dp.Runtime.enable();

  testRunner.log('-- Test Page.navigate() to anchor URL --');
  await dp.Page.navigate({url: testRunner.url('../resources/inspector-protocol-page.html#foo')});
  testRunner.log(await dp.Page.onceNavigatedWithinDocument());

  testRunner.log('-- Test Page.navigate() to another anchor URL --');
  await dp.Page.navigate({url: testRunner.url('../resources/inspector-protocol-page.html#bar')});
  testRunner.log(await dp.Page.onceNavigatedWithinDocument());

  testRunner.log('-- Test history.pushState() --');
  dp.Runtime.evaluate({ expression: `history.pushState({}, '', 'wow.html')`});
  testRunner.log(await dp.Page.onceNavigatedWithinDocument());

  testRunner.log('-- Test history.replaceState() --');
  dp.Runtime.evaluate({ expression: `history.replaceState({}, '', '/replaced.html')`});
  testRunner.log(await dp.Page.onceNavigatedWithinDocument());

  testRunner.log('-- Test history.back() --');
  dp.Runtime.evaluate({ expression: `history.back()`});
  testRunner.log(await dp.Page.onceNavigatedWithinDocument());

  testRunner.log('-- Test history.forward() --');
  dp.Runtime.evaluate({ expression: `history.forward()`});
  testRunner.log(await dp.Page.onceNavigatedWithinDocument());

  testRunner.completeTest();
})