summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/soft-navigation-heuristics/multiple-nested-events.tentative.html
blob: e51841865d654a65e44fefc505e8102196a4093c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="resources/soft-navigation-helper.js"></script>
</head>
<body>
  <main id=main>
  <a id=link>Click me!</a>
  </main>
    <script>
    const link = document.getElementById("link");
    let should_navigate = true;
    navigation.addEventListener("navigate", () => {
      if (should_navigate) {
        // It's the last sync navigation that determines the soft nav URL.
        history.pushState({}, '', 'foobar.html');
        should_navigate = false;
      }
    });
    testSoftNavigation({
      eventPrepWork: url => {
        addTextToDivOnMain();
        history.pushState({}, '', 'foobar1.html');
        // Here we're bypassing the regular test's event logic, as this test is
        // fully sync.
        return false;
      },
      link: link,
      eventName: "click",
      eventTarget: link,
      testName: "Test multiple nested navigate events"});
  </script>
</body>
</html>