entries-after-javascript-url-navigation.html (1674B)
1 <!doctype html> 2 <script src="/resources/testharness.js"></script> 3 <script src="/resources/testharnessreport.js"></script> 4 <iframe id="i" src="/common/blank.html"></iframe> 5 <script> 6 async_test(t => { 7 window.onload = t.step_func(() => { 8 let start_key = i.contentWindow.navigation.currentEntry.key; 9 let start_url = i.contentWindow.navigation.currentEntry.url; 10 let start_id = i.contentWindow.navigation.currentEntry.id; 11 let did_js_url_nav = false; 12 i.onload = t.step_func(() => { 13 if (!did_js_url_nav) { 14 assert_equals(i.contentWindow.navigation.entries().length, 2); 15 before_js_nav_key = i.contentWindow.navigation.currentEntry.key; 16 before_js_nav_url = i.contentWindow.navigation.currentEntry.url; 17 before_js_nav_id = i.contentWindow.navigation.currentEntry.id; 18 i.src = "javascript:'new content'"; 19 did_js_url_nav = true; 20 } else { 21 assert_equals(i.contentWindow.navigation.entries().length, 2); 22 let first_entry = i.contentWindow.navigation.entries()[0]; 23 let js_url_entry = i.contentWindow.navigation.entries()[1]; 24 assert_equals(first_entry.key, start_key); 25 assert_equals(first_entry.url, start_url); 26 assert_equals(first_entry.id, start_id); 27 28 assert_equals(js_url_entry, i.contentWindow.navigation.currentEntry); 29 assert_equals(js_url_entry.key, before_js_nav_key); 30 assert_equals(js_url_entry.url, before_js_nav_url); 31 assert_not_equals(js_url_entry.id, before_js_nav_id); 32 t.done(); 33 } 34 }); 35 i.contentWindow.navigation.navigate("?1"); 36 }); 37 }, "entries() after navigation to a javascript: URL"); 38 </script>