blob: 1965a2763a7fa7aa100ec1773434bcd4971a6e92 [file] [log] [blame]
<pre id="console"></pre>
<script>
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
log = function(msg)
{
document.getElementById('console').appendChild(document.createTextNode(msg + "\n"));
}
var image;
var url = "http://localhost:8000/security/resources/abe-allow-star.php";
function testGetImageData(shouldWork)
{
var canvas = document.createElement("canvas");
canvas.width = 100;
canvas.height = 100;
var context = canvas.getContext("2d");
context.drawImage(image, 0, 0, 100, 100);
var worked = true;
try {
context.getImageData(0, 0, 100, 100);
} catch (e) {
worked = false;
}
if (worked == shouldWork) {
if (shouldWork) {
log("PASS: image did not taint canvas");
} else {
log("PASS: image tainted canvas");
}
} else {
if (shouldWork) {
log("FAIL: image tainted canvas");
} else {
log("FAIL: image did not taint canvas");
}
}
}
function testWithoutCORS()
{
log("Testing uploading without CORS headers");
testGetImageData(false);
image = new Image();
image.onload = testWithCORS;
image.crossOrigin = "";
image.src = url;
}
function testWithCORS()
{
log("Testing uploading with CORS headers");
testGetImageData(true);
if (window.testRunner)
testRunner.notifyDone();
}
function start()
{
log('Test that if an image is served with "Access-Control-Allow-Origin: *", then loading it first without and then with a CORS request works the second time.');
image = new Image();
image.onload = testWithoutCORS;
image.src = url;
}
start();
</script>