blob: 539ed300716eb9d239eef251e1ec5b7bf8eed192 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../resources/js-test.js"></script>
</head>
<body>
<script>
description("Test createImageBitmap from a SVG image without intrinsic size and with zero size.");
window.jsTestIsAsync = true;
var image1Loaded = false;
var image2Loaded = false;
var image1 = new Image();
var image2 = new Image();
image1.onload = function() {
image1Loaded = true;
testCreateImageBitmap();
}
image1.src = '../../svg/hixie/intrinsic/resources/003.svg';
image2.onload = function() {
image2Loaded = true;
testCreateImageBitmap();
}
image2.src = 'resources/zeroSize.svg';
function testCreateImageBitmap()
{
if (image1Loaded && image2Loaded) {
createImageBitmap(image1).then(function(bitmap1) {
testFailed("createImageBitmap from a SVG without intrinsic size succeed, expected to be rejected");
finishJSTest();
}, function (e) {
testPassed("createImageBitmap from a SVG without intrinsic size rejected: " + e);
createImageBitmap(image2).then(function(bitmap2) {
testFailed("createImageBitmap from a SVG with zero size succeed, expected to be rejected");
finishJSTest();
}, function(e) {
testPassed("createImageBitmap from a SVG with zero size rejected: " + e);
createImageBitmap(image2, 0, 0, 100, 100).then(function(bitmap3) {
testPassed("createImageBitmap from a zero size SVG with cropRect succeed");
checkImageBitmap(bitmap3);
createImageBitmap(image2, {resizeWidth: 50, resizeHeight: 50, resizeQuality: "high"}).then(function(bitmap4) {
testPassed("createImageBitmap from a zero size SVG with resize and cropRect succeed");
finishJSTest();
}, function(e) {
testFailed("createImageBitmap from a zero size SVG with resize and cropRect rejected: " + e);
finishJSTest();
});
}, function(e) {
testFailed("createImageBitmap from a zero size SVG with cropRect rejected: " + e);
finishJSTest();
});
});
});
}
}
function shouldBeClear(ctx, x, y) {
// should be transparent black pixels
d = ctx.getImageData(x, y, 1, 1).data;
shouldBe("d[0]", "0");
shouldBe("d[1]", "0");
shouldBe("d[2]", "0");
shouldBe("d[3]", "0");
}
function checkImageBitmap(bitmap)
{
var canvas = document.createElement("canvas");
canvas.width = 100;
canvas.height = 100;
var ctx = canvas.getContext('2d');
ctx.clearRect(0, 0, 100, 100);
ctx.drawImage(bitmap, 0, 0);
shouldBeClear(ctx, 0, 0);
shouldBeClear(ctx, 0, 99);
shouldBeClear(ctx, 99, 0);
shouldBeClear(ctx, 99, 99);
}
</script>
</body>
</html>