| <!DOCTYPE HTML> |
| <html> |
| <head> |
| <meta charset="utf-8"> |
| <title>Detect simple soft navigation.</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> |
| <script> |
| // Define a custom element |
| class SPAContent extends HTMLDivElement { |
| constructor() { |
| super(); |
| } |
| connectedCallback() { |
| // Change the URL |
| history.pushState({}, '', "/foobar.html"); |
| } |
| } |
| customElements.define("spa-content", SPAContent, { extends: "div"}); |
| |
| </script> |
| <main id=main> |
| <a id=link>Click me!</a> |
| </main> |
| <script> |
| testSoftNavigation({ |
| testName: "Test that a soft navigation is detected when the click is done " |
| + "on a custom element.", |
| addContent: () => { |
| const main = document.getElementById("main"); |
| const spaContent = document.createElement("div", {is: "spa-content"}); |
| const content = document.createTextNode("Lorem Ipsum"); |
| spaContent.appendChild(content); |
| main.appendChild(spaContent); |
| }, |
| pushState: () => {}, |
| }); |
| </script> |
| </body> |
| </html> |