summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/navigation-api/navigation-methods/navigate-state-repeated.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/navigation-api/navigation-methods/navigate-state-repeated.html')
-rw-r--r--testing/web-platform/tests/navigation-api/navigation-methods/navigate-state-repeated.html20
1 files changed, 20 insertions, 0 deletions
diff --git a/testing/web-platform/tests/navigation-api/navigation-methods/navigate-state-repeated.html b/testing/web-platform/tests/navigation-api/navigation-methods/navigate-state-repeated.html
new file mode 100644
index 0000000000..227bbb0cfc
--- /dev/null
+++ b/testing/web-platform/tests/navigation-api/navigation-methods/navigate-state-repeated.html
@@ -0,0 +1,20 @@
+<!doctype html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+promise_test(async t => {
+ navigation.onnavigate = e => e.intercept();
+
+ let result1 = navigation.navigate('/foo', {state: {foo: 1}});
+ assert_equals(navigation.currentEntry.getState().foo, 1);
+
+ // Don't let the harness fail because of the "AbortError" DOMException that is caused by interrupting the navigation.
+ result1.finished.catch(() => {});
+
+ let result2 = navigation.navigate('/foo', {state: {foo: 2}});
+ assert_equals(navigation.currentEntry.getState().foo, 2);
+
+ await result1.committed;
+ await result2.committed;
+}, "navigate() with state should work correctly when called repeatedly");
+</script>