dom/tests/mochitest/bugs/test_bug458091.html

branch
TOR_BUG_9701
changeset 8
97036ab72558
equal deleted inserted replaced
-1:000000000000 0:df9800ac4bf0
1 <!DOCTYPE HTML>
2 <html>
3 <!--
4 https://bugzilla.mozilla.org/show_bug.cgi?id=458091
5 -->
6 <head>
7 <title>Test for Bug 458091</title>
8 <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
9 <script type="application/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
10 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
11 </head>
12 <body>
13 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=458091">Mozilla Bug 458091</a>
14
15 <div id="content" style="display: none">
16
17 </div>
18 <pre id="test">
19 <a id="testlink1" target="_blank" href="javascript:window.opener.finish(sessionStorage['testItem']);window.close();">Javascript Link</a>
20 <a id="testlink2" target="_blank" href="bug458091_child.html">HTTP Link</a>
21 <a id="testlink3" target="alreadyOpened" href="bug458091_child.html">Target Link</a>
22 <script type="application/javascript">
23
24 /** Test for Bug 458091 **/
25
26 var gTestWin;
27 var gRunningTests = 0;
28
29 function runNextTest()
30 {
31 if (gTests.length > 0) {
32 var test = gTests.shift();
33 test();
34 } else {
35 SimpleTest.finish();
36 }
37 }
38
39 function finish(val)
40 {
41 is(val, "correct value",
42 "New window should access the correct session storage");
43 if (--gRunningTests == 0) {
44 runNextTest();
45 }
46 }
47
48 SimpleTest.waitForExplicitFinish();
49
50 function test1() {
51 sessionStorage["testItem"] = "correct value";
52
53 gRunningTests++;
54 window.open('javascript:window.opener.finish(sessionStorage["testItem"]);window.close();');
55
56 gRunningTests++;
57 window.open("bug458091_child.html");
58
59 gRunningTests++;
60 sendMouseEvent({type: "click"}, "testlink1");
61
62 gRunningTests++;
63 sendMouseEvent({type: "click"}, "testlink2");
64
65 // targetted load into an existing window
66 var testWin = window.open("about:blank", "alreadyOpened");
67 gRunningTests++;
68 sendMouseEvent({type: "click"}, "testlink3");
69
70 // window.location into an existing window. Leave the window open
71 // for further tests...
72 gRunningTests++;
73 gTestWin = window.open("about:blank", "testWindow");
74 gTestWin.location = 'javascript:window.opener.finish(sessionStorage["testItem"]);';
75 }
76
77 function test2() {
78 // Now change session storage and load a new item in gTestWin, to
79 // verify that they properly diverged after window.open().
80 gRunningTests++;
81 sessionStorage["testItem"] = "incorrect value";
82 gTestWin.location = 'javascript:window.opener.finish(sessionStorage["testItem"]);';
83 }
84
85 function test3()
86 {
87 // Now, with session storage still changed, try the window.open()
88 // path, make sure it doesn't overwrite the session storage.
89 gRunningTests++;
90 window.open('javascript:window.opener.finish(sessionStorage["testItem"]);window.close();',
91 "testWindow");
92 }
93
94 var gTests = [test1, test2, test3];
95 runNextTest();
96
97 </script>
98 </pre>
99 </body>
100 </html>

mercurial