summaryrefslogtreecommitdiffstats
path: root/dom/tests/mochitest/dom-level0/test_location.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/tests/mochitest/dom-level0/test_location.html')
-rw-r--r--dom/tests/mochitest/dom-level0/test_location.html73
1 files changed, 73 insertions, 0 deletions
diff --git a/dom/tests/mochitest/dom-level0/test_location.html b/dom/tests/mochitest/dom-level0/test_location.html
new file mode 100644
index 0000000000..52106395fd
--- /dev/null
+++ b/dom/tests/mochitest/dom-level0/test_location.html
@@ -0,0 +1,73 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <title>Test for location object behaviors</title>
+ <script src="/tests/SimpleTest/SimpleTest.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
+</head>
+<body>
+<p id="display"></p>
+<div id="content" style="display: none">
+
+</div>
+<pre id="test">
+<script class="testbody" type="text/javascript">
+
+SimpleTest.waitForExplicitFinish();
+
+var count = 0;
+var firstlocation;
+var lastlocation;
+
+function runTest() {
+ ++count;
+ if (count == 1) {
+ firstlocation = $('ifr').contentWindow.location;
+ firstlocation.existingprop = 'fail';
+ firstlocation.href = 'file_location.html';
+ return;
+ }
+
+ if (count == 2) {
+ lastlocation = $('ifr').contentWindow.location;
+ is(lastlocation.iframeprop, 42, 'can read the new prop');
+ ok(firstlocation !== lastlocation, 'got a new location object');
+ // firstlocation should still work.
+ ok(firstlocation.href.indexOf('file_location.html'), 'can read location.href');
+ firstlocation.href = 'http://example.com/tests/dom/tests/mochitest/dom-level0/file_location.html';
+ return;
+ }
+
+ if (count == 3) {
+ var permissionDenied = false;
+ try {
+ var foo = $('ifr').contentWindow.location.href == '';
+ } catch (e) {
+ permissionDenied = /Permission denied/.test(e.message);
+ }
+ ok(permissionDenied, 'correctly threw a permission denied security error when reading location.href');
+
+ permissionDenied = false;
+ try {
+ var foo = $('ifr').contentWindow.location.iframeprop == 42;
+ } catch (e) {
+ permissionDenied = /Permission denied/.test(e.message);
+ }
+ ok(permissionDenied, 'correctly threw a permission denied security error an expando on location');
+
+ firstlocation.href = 'http://mochi.test:8888/tests/dom/tests/mochitest/dom-level0/file_location.html';
+ return;
+ }
+
+ is(lastlocation.iframeprop, 42, 'can still read old values of the location object');
+ ok(lastlocation !== $('ifr').contentWindow.location, 'location objects are distinct');
+ ok(firstlocation.href.indexOf('file_location.html'), 'can read location.href');
+
+ SimpleTest.finish();
+}
+
+</script>
+</pre>
+<iframe id="ifr" onload="runTest()"></iframe>
+</body>
+</html>