123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- <!DOCTYPE html>
- <html>
- <head>
- <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
- </head>
- <body>
- <script type="text/javascript">
- SimpleTest.waitForExplicitFinish();
- const SAME_ORIGIN_URI = "http://mochi.test:8888/tests/docshell/test/dummy_page.html";
- const CROSS_ORIGIN_URI = "http://example.com/tests/docshell/test/dummy_page.html";
- const NUMBER_OF_TESTS = 3;
- let testCounter = 0;
- function checkFinish() {
- testCounter++;
- if (testCounter < NUMBER_OF_TESTS) {
- return;
- }
- SimpleTest.finish();
- }
- // ---- test 1 ----
- let myFrame1 = document.createElement("iframe");
- myFrame1.src = SAME_ORIGIN_URI;
- myFrame1.addEventListener("load", checkLoadFrame1);
- document.documentElement.appendChild(myFrame1);
- function checkLoadFrame1() {
- myFrame1.removeEventListener('load', checkLoadFrame1, false);
- // window.location.href is no longer cross-origin accessible in gecko.
- is(SpecialPowers.wrap(myFrame1.contentWindow).location.href, SAME_ORIGIN_URI,
- "initial same origin dummy loaded into frame1");
- SpecialPowers.wrap(myFrame1.contentWindow).location.hash = "#bar";
- is(SpecialPowers.wrap(myFrame1.contentWindow).location.href, SAME_ORIGIN_URI + "#bar",
- "initial same origin dummy#bar loaded into iframe1");
- myFrame1.addEventListener("load", checkNavFrame1);
- myFrame1.src = CROSS_ORIGIN_URI;
- }
- function checkNavFrame1() {
- myFrame1.removeEventListener('load', checkNavFrame1, false);
- is(SpecialPowers.wrap(myFrame1.contentWindow).location.href, CROSS_ORIGIN_URI,
- "cross origin dummy loaded into frame1");
- myFrame1.addEventListener("load", checkBackNavFrame1);
- myFrame1.src = SAME_ORIGIN_URI + "#bar";
- }
- function checkBackNavFrame1() {
- myFrame1.removeEventListener('load', checkBackNavFrame1, false);
- is(SpecialPowers.wrap(myFrame1.contentWindow).location.href, SAME_ORIGIN_URI + "#bar",
- "navagiating back to same origin dummy for frame1");
- checkFinish();
- }
- // ---- test 2 ----
- let myFrame2 = document.createElement("iframe");
- myFrame2.src = "about:blank";
- myFrame2.addEventListener("load", checkLoadFrame2);
- document.documentElement.appendChild(myFrame2);
- function checkLoadFrame2() {
- myFrame2.removeEventListener('load', checkLoadFrame2, false);
- is(SpecialPowers.wrap(myFrame2.contentWindow).location.href, "about:blank",
- "initial about:blank frame loaded");
- myFrame2.contentWindow.location.hash = "#foo";
- is(SpecialPowers.wrap(myFrame2.contentWindow).location.href, "about:blank#foo",
- "about:blank#foo frame loaded");
-
- myFrame2.addEventListener('load', checkHistoryFrame2);
- myFrame2.src = "about:blank";
- }
- function checkHistoryFrame2() {
- myFrame2.removeEventListener('load', checkHistoryFrame2, false);
- is(SpecialPowers.wrap(myFrame2.contentWindow).location.href, "about:blank",
- "about:blank frame loaded again");
- checkFinish();
- }
- // ---- test 3 ----
- let myFrame3 = document.createElement("frame");
- document.documentElement.appendChild(myFrame3);
- myFrame3.contentWindow.location.hash = "#foo";
- is(myFrame3.contentWindow.location.href, "about:blank#foo",
- "created history entry with about:blank#foo");
- checkFinish();
- </script>
- </body>
- </html>
|