123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- <!DOCTYPE HTML>
- <html>
- <!--
- https://bugzilla.mozilla.org/show_bug.cgi?id=413310
- -->
- <head>
- <title>Test for Bug 413310</title>
- <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
- </head>
- <body>
- <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=413310">Mozilla Bug 413310</a>
- <p id="display">
- <script class="testbody" type="text/javascript">
- if (navigator.platform.startsWith("Mac")) {
- SimpleTest.expectAssertions(0, 2);
- } else {
- SimpleTest.expectAssertions(0, 1);
- }
- /** Test for Bug 413310 **/
- // NOTE: If we ever make subframes do bfcache stuff, this test will need to be
- // modified accordingly! It assumes that subframes do NOT get bfcached.
- var onloadCount = 0;
- var step = -1; // One increment will come from the initial subframe onload.
- // Note that this script should come before the subframe,
- // so that doNextStep is defined when its onload handler fires.
- var textContent;
- SimpleTest.waitForExplicitFinish();
- addLoadEvent(doNextStep);
- function doNextStep() {
- ++step;
- switch (step) {
- case 1:
- is(onloadCount, 1, "Loaded initial page");
- is($("i").contentWindow.location.href,
- location.href.replace(/test_bug413310.html/,
- "bug413310-subframe.html"),
- "Unexpected subframe location after initial load");
- $("i").contentDocument.forms[0].submit();
- break;
- case 2:
- is(onloadCount, 2, "Loaded POST result");
- is($("i").contentWindow.location.href,
- location.href.replace(/test_bug413310.html/,
- "bug413310-post.sjs"),
- "Unexpected subframe location after POST load");
- textContent = $("i").contentDocument.body.textContent;
- isDeeply(textContent.match(/^POST /), ["POST "], "Not a POST?");
- $("i").contentWindow.location.hash = "foo";
- setTimeout(doNextStep, 0);
- break;
- case 3:
- is(onloadCount, 2, "Anchor scroll should not fire onload");
- is($("i").contentWindow.location.href,
- location.href.replace(/test_bug413310.html/,
- "bug413310-post.sjs#foo"),
- "Unexpected subframe location after anchor scroll");
- is(textContent, $("i").contentDocument.body.textContent,
- "Did a load when scrolling?");
- $("i").contentWindow.location.href = "bug413310-subframe.html";;
- break;
- case 4:
- is(onloadCount, 3, "Done new load");
- is($("i").contentWindow.location.href,
- location.href.replace(/test_bug413310.html/,
- "bug413310-subframe.html"),
- "Unexpected subframe location after new load");
- history.back();
- break;
- case 5:
- is(onloadCount, 4,
- "History traversal didn't fire onload: bfcache issues!");
- is($("i").contentWindow.location.href,
- location.href.replace(/test_bug413310.html/,
- "bug413310-post.sjs#foo"),
- "Unexpected subframe location");
- is(textContent, $("i").contentDocument.body.textContent,
- "Did a load when going back?");
- SimpleTest.finish();
- break;
- }
- }
- </script>
- <!-- Use a timeout in onload so that we don't do a load immediately inside onload -->
- <iframe id="i" src="bug413310-subframe.html" onload="setTimeout(doNextStep, 20)">
- </iframe>
- </p>
- <div id="content" style="display: none">
-
- </div>
- <pre id="test">
- </pre>
- </body>
- </html>
|