blob: e11a859012dcaaf6903f89823d1c43dcca948875 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script>
function pass(image, messagePrefix)
{
window.top.postMessage(`PASS:${messagePrefix} with origin ${(new URL(image.src)).origin}.`, "*");
runNextImageTest();
}
function fail(image, messagePrefix)
{
window.top.postMessage(`FAIL:${messagePrefix} with origin ${(new URL(image.src)).origin}.`, "*");
runNextImageTest();
}
function finishJSTest()
{
window.top.postMessage("DONE:", "*");
}
function runNextImageTest()
{
var test = imageTests.shift();
if (!test) {
finishJSTest();
return;
}
var image = new Image;
image.onload = () => test.onload(image);
image.onerror = () => test.onerror(image);
image.src = test.src;
document.getElementById("test-container").appendChild(image);
}
window.onload = runNextImageTest;
// Tests
const DidLoadImage = "did load image";
const DidNotLoadImage = "did not load image";
var searchParams = new URLSearchParams(document.location.search);
var imageTests = [
{
src: "subresource2/protected-image.php",
onload: (image) => {
if (document.location.origin === searchParams.get("top-origin"))
pass(image, DidLoadImage);
else
fail(image, DidLoadImage);
},
onerror: (image) => {
if (document.location.origin === searchParams.get("top-origin"))
fail(image, DidNotLoadImage);
else
pass(image, DidNotLoadImage);
},
},
{
src: "http://127.0.0.1:8000/security/resources/subresource2/protected-image.php",
onload: (image) => pass(image, DidLoadImage),
onerror: (image) => fail(image, DidNotLoadImage),
},
{
src: "https://127.0.0.1:8443/security/resources/subresource2/protected-image.php",
onload: (image) => fail(image, DidLoadImage),
onerror: (image) => pass(image, DidNotLoadImage),
},
{
src: "https://localhost:8443/security/resources/subresource2/protected-image.php",
onload: (image) => fail(image, DidLoadImage),
onerror: (image) => pass(image, DidNotLoadImage),
},
];
</script>
</head>
<body>
<div id="test-container"></div>
</body>
</html>