dom/tests/mochitest/dom-level0/test_location.html

branch
TOR_BUG_9701
changeset 8
97036ab72558
equal deleted inserted replaced
-1:000000000000 0:bb7ad888f5fa
1 <!DOCTYPE HTML>
2 <html>
3 <head>
4 <title>Test for location object behaviors</title>
5 <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
6 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
7 </head>
8 <body>
9 <p id="display"></p>
10 <div id="content" style="display: none">
11
12 </div>
13 <pre id="test">
14 <script class="testbody" type="text/javascript">
15
16 SimpleTest.waitForExplicitFinish();
17
18 var count = 0;
19 var firstlocation;
20 var lastlocation;
21
22 function runTest() {
23 ++count;
24 if (count == 1) {
25 firstlocation = $('ifr').contentWindow.location;
26 firstlocation.existingprop = 'fail';
27 firstlocation.href = 'file_location.html';
28 return;
29 }
30
31 if (count == 2) {
32 lastlocation = $('ifr').contentWindow.location;
33 is(lastlocation.iframeprop, 42, 'can read the new prop');
34 ok(firstlocation !== lastlocation, 'got a new location object');
35 // firstlocation should still work.
36 ok(firstlocation.href.indexOf('file_location.html'), 'can read location.href');
37 firstlocation.href = 'http://example.com/tests/dom/tests/mochitest/dom-level0/file_location.html';
38 return;
39 }
40
41 if (count == 3) {
42 var permissionDenied = false;
43 try {
44 var foo = $('ifr').contentWindow.location.href == '';
45 } catch (e) {
46 permissionDenied = /Permission denied/.test(e.message);
47 }
48 ok(permissionDenied, 'correctly threw a permission denied security error when reading location.href');
49
50 permissionDenied = false;
51 try {
52 var foo = $('ifr').contentWindow.location.iframeprop == 42;
53 } catch (e) {
54 permissionDenied = /Permission denied/.test(e.message);
55 }
56 ok(permissionDenied, 'correctly threw a permission denied security error an expando on location');
57
58 firstlocation.href = 'http://mochi.test:8888/tests/dom/tests/mochitest/dom-level0/file_location.html';
59 return;
60 }
61
62 is(lastlocation.iframeprop, 42, 'can still read old values of the location object');
63 ok(lastlocation !== $('ifr').contentWindow.location, 'location objects are distinct');
64 ok(firstlocation.href.indexOf('file_location.html'), 'can read location.href');
65
66 SimpleTest.finish();
67 }
68
69 </script>
70 </pre>
71 <iframe id="ifr" onload="runTest()"></iframe>
72 </body>
73 </html>

mercurial