cross-document-away-and-back.html (1445B)
1 <!doctype html> 2 <script src="/resources/testharness.js"></script> 3 <script src="/resources/testharnessreport.js"></script> 4 <script src="resources/helpers.js"></script> 5 <meta name="variant" content="?method=navigate"> 6 <meta name="variant" content="?method=updateCurrentEntry"> 7 8 <iframe id="i" src="/common/blank.html"></iframe> 9 <script> 10 async_test(t => { 11 window.onload = t.step_func(() => { 12 updateStateBasedOnTestVariant(i.contentWindow, { data : "value" }); 13 assert_equals(i.contentWindow.navigation.entries().length, 1); 14 assert_equals(i.contentWindow.navigation.currentEntry.getState().data, "value"); 15 16 let navigated_back = false; 17 i.contentWindow.navigation.navigate("?1"); 18 i.onload = t.step_func(() => { 19 if (navigated_back) { 20 let back_entry = i.contentWindow.navigation.currentEntry; 21 assert_equals(i.contentWindow.navigation.entries().length, 2); 22 assert_equals(back_entry.index, 0); 23 assert_equals(back_entry.getState().data, "value"); 24 t.done(); 25 } else { 26 assert_equals(i.contentWindow.navigation.entries().length, 2); 27 assert_equals(i.contentWindow.navigation.currentEntry, i.contentWindow.navigation.entries()[1]); 28 assert_equals(i.contentWindow.navigation.currentEntry.getState(), undefined); 29 history.back(); 30 navigated_back = true; 31 } 32 }); 33 }); 34 }, "entry.getState() behavior after navigating away and back"); 35 </script>