summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin_3.html
blob: b6a35680dd716328e5547c4e42185b597f4d091e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<!doctype html>
<title>Restoring window.name on cross-origin history traversal</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<pre id="step_log"></pre>
<iframe id="test"></iframe>
<script>
var t = async_test();
var f = document.getElementById("test");
var l = document.getElementById("step_log");

log = function(t) {l.textContent += ("\n" + t)}

var steps = [
  function() {f.src = "browsing_context_name-1.html"},
  function() {
                assert_equals(f.contentWindow.name, "test", "Initial load");
                setTimeout(next, 0);
              },
  function() {f.src = "browsing_context_name-3.html"},
  function() {
                assert_equals(f.contentWindow.name, "test3", "After navigation 1");
                setTimeout(next, 0);
              },
  function() {f.src = f.src.replace("http://", "http://www.").replace("browsing_context_name-1", "browsing_context_name-2");},
  function() {f.src = f.src.replace("http://www.", "http://").replace("browsing_context_name-2", "browsing_context_name-4");},
  function() {
                assert_equals(f.contentWindow.name, "test3", "After navigation 2");
                history.go(-3); setTimeout(next, 500)
             },
  function() {
               assert_equals(f.contentWindow.name, "test3", "After navigation 3");
               t.done();
             }
].map(function(x) {return t.step_func(function() {log("Step " + step + " " + f.contentWindow.location); x()})});

var step = 0;
next = t.step_func(function() {steps[step++]()});

f.onload=next;

onload = function() { setTimeout(next, 0); };
</script>