| <!DOCTYPE HTML> |
| <html> |
| <head> |
| <meta charset="utf-8"> |
| <title>Detect navigation.traverseTo()</title> |
| <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> |
| <div> |
| <a id=link>Click me!</a> |
| </div> |
| </main> |
| <script> |
| let key; |
| window.onload = async () => { |
| // Wait for after the load event so that the navigation doesn't get converted |
| // into a replace navigation. |
| await new Promise(r => step_timeout(r, 0)); |
| |
| navigation.onnavigate = e => { |
| e.intercept(); |
| }; |
| // Push a couple of navigation entries, so that we'd have a navigation entry to traverse to. |
| await navigation.navigate("foobar.html").finished; |
| key = navigation.currentEntry.key; |
| await navigation.navigate("another.html").finished; |
| |
| const link = document.getElementById("link"); |
| testSoftNavigation({ |
| addContent: () => { |
| addTextToDivOnMain(); |
| }, |
| link: link, |
| pushState: async () =>{ |
| await navigation.traverseTo(key).committed; |
| }, |
| test: "`navigation.traverseTo()` properly works with SoftNavigationHeuristics"}); |
| }; |
| </script> |
| </body> |
| </html> |
| |
| |
| |