mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-01-06 00:10:25 +00:00
71b8c7686e
When we turn on the pref security.data_uri.unique_opaque_origin to make data URI is unique origin, the following tests will fail because now data document is treated as cross origin, so we replace data URIs with seperate files, hence it will still in the same origin.
152 lines
3.8 KiB
HTML
152 lines
3.8 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<!--
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=602256
|
|
-->
|
|
<head>
|
|
<title>Test for Bug 602256</title>
|
|
</head>
|
|
<body onload="SimpleTest.executeSoon(run_test)">
|
|
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=602256">Mozilla Bug 602256</a>
|
|
<div id="content">
|
|
<iframe id="iframe" src="start_historyframe.html"></iframe>
|
|
</div>
|
|
<pre id="test">
|
|
<script type="application/javascript">
|
|
|
|
/** Test for Bug 602256 **/
|
|
|
|
var testWin = window.opener ? window.opener : window.parent;
|
|
|
|
var SimpleTest = testWin.SimpleTest;
|
|
function is() { testWin.is.apply(testWin, arguments); }
|
|
|
|
var gFrame = null;
|
|
|
|
function gState() {
|
|
return location.hash.replace(/^#/, "");
|
|
}
|
|
|
|
function waitForLoad(aCallback) {
|
|
function listener() {
|
|
gFrame.removeEventListener("load", listener);
|
|
SimpleTest.executeSoon(aCallback);
|
|
}
|
|
|
|
gFrame.addEventListener("load", listener);
|
|
}
|
|
|
|
function loadContent(aURL, aCallback) {
|
|
waitForLoad(aCallback);
|
|
|
|
gFrame.src = aURL;
|
|
}
|
|
|
|
function getURL() {
|
|
return gFrame.contentDocument.documentURI;
|
|
}
|
|
|
|
function getContent() {
|
|
return gFrame.contentDocument.getElementById("text").textContent;
|
|
}
|
|
|
|
var BASE_URI = "http://mochi.test:8888/tests/docshell/test/";
|
|
var START = BASE_URI + "start_historyframe.html";
|
|
var URL1 = BASE_URI + "url1_historyframe.html";
|
|
var URL2 = BASE_URI + "url2_historyframe.html";
|
|
|
|
function run_test() {
|
|
window.location.hash = "START";
|
|
|
|
gFrame = document.getElementById("iframe");
|
|
|
|
test_basic_inner_navigation();
|
|
}
|
|
|
|
function end_test() {
|
|
testWin.done();
|
|
}
|
|
|
|
function test_basic_inner_navigation() {
|
|
// Navigate the inner frame a few times
|
|
loadContent(URL1, function() {
|
|
is(getURL(), URL1, "URL should be correct");
|
|
is(getContent(), "Test1", "Page should be correct");
|
|
|
|
loadContent(URL2, function() {
|
|
is(getURL(), URL2, "URL should be correct");
|
|
is(getContent(), "Test2", "Page should be correct");
|
|
|
|
// Test that history is working
|
|
waitForLoad(function() {
|
|
is(getURL(), URL1, "URL should be correct");
|
|
is(getContent(), "Test1", "Page should be correct");
|
|
|
|
waitForLoad(function() {
|
|
is(getURL(), URL2, "URL should be correct");
|
|
is(getContent(), "Test2", "Page should be correct");
|
|
|
|
test_state_navigation();
|
|
});
|
|
window.history.forward();
|
|
});
|
|
window.history.back();
|
|
});
|
|
});
|
|
}
|
|
|
|
function test_state_navigation() {
|
|
window.location.hash = "STATE1";
|
|
|
|
is(getURL(), URL2, "URL should be correct");
|
|
is(getContent(), "Test2", "Page should be correct");
|
|
|
|
window.location.hash = "STATE2";
|
|
|
|
is(getURL(), URL2, "URL should be correct");
|
|
is(getContent(), "Test2", "Page should be correct");
|
|
|
|
window.history.back();
|
|
|
|
is(gState(), "STATE1", "State should be correct after going back");
|
|
is(getURL(), URL2, "URL should be correct");
|
|
is(getContent(), "Test2", "Page should be correct");
|
|
|
|
window.history.forward();
|
|
|
|
is(gState(), "STATE2", "State should be correct after going forward");
|
|
is(getURL(), URL2, "URL should be correct");
|
|
is(getContent(), "Test2", "Page should be correct");
|
|
|
|
window.history.back();
|
|
window.history.back();
|
|
|
|
is(gState(), "START", "State should be correct");
|
|
is(getURL(), URL2, "URL should be correct");
|
|
is(getContent(), "Test2", "Page should be correct");
|
|
|
|
waitForLoad(function() {
|
|
is(getURL(), URL1, "URL should be correct");
|
|
is(getContent(), "Test1", "Page should be correct");
|
|
|
|
waitForLoad(function() {
|
|
is(gState(), "START", "State should be correct");
|
|
is(getURL(), START, "URL should be correct");
|
|
is(getContent(), "Start", "Page should be correct");
|
|
|
|
end_test();
|
|
});
|
|
|
|
window.history.back();
|
|
|
|
is(gState(), "START", "State should be correct after going back twice");
|
|
});
|
|
|
|
window.history.back();
|
|
is(gState(), "START", "State should be correct");
|
|
}
|
|
</script>
|
|
</pre>
|
|
</body>
|
|
</html>
|