182 lines
6.0 KiB
HTML
182 lines
6.0 KiB
HTML
<body onload="draw();">
|
|
<p>This test checks behavior of invalid arguments to Canvas::drawImage.</p>
|
|
<p id="result"></p>
|
|
<canvas id="canvas" width="150" height="150"></canvas>
|
|
<script>
|
|
// Create image
|
|
var myImage = new Image();
|
|
var img_src = 'resources/apple.gif';
|
|
myImage.src = img_src;
|
|
|
|
function print(message)
|
|
{
|
|
var line = document.createElement("div");
|
|
line.appendChild(document.createTextNode(message));
|
|
document.getElementById("result").appendChild(line);
|
|
}
|
|
|
|
function draw() {
|
|
if (window.testRunner)
|
|
testRunner.dumpAsText();
|
|
|
|
var ctx = document.getElementById('canvas').getContext('2d');
|
|
|
|
// draw image
|
|
try{
|
|
ctx.drawImage();
|
|
print("FAIL");
|
|
} catch (e) {
|
|
print("PASS: no arguments, got exception as expected");
|
|
}
|
|
try{
|
|
ctx.drawImage(myImage);
|
|
print("FAIL");
|
|
} catch (e) {
|
|
print("PASS: image argument only, got exception as expected");
|
|
}
|
|
try{
|
|
ctx.drawImage(myImage, 0);
|
|
print("FAIL");
|
|
} catch (e) {
|
|
print("PASS: image argument plus one number, got exception as expected");
|
|
}
|
|
try{
|
|
ctx.drawImage(myImage, 0, 0);
|
|
print("PASS: image argument plus 2 numbers");
|
|
} catch (e) {
|
|
print("FAIL");
|
|
}
|
|
try{
|
|
ctx.drawImage(myImage, 0, 0, 20, 20);
|
|
print("PASS: image argument plus 4 numbers");
|
|
} catch (e) {
|
|
print("FAIL");
|
|
}
|
|
try{
|
|
ctx.drawImage(myImage, 0, 0, 20, 20, 0, 0, 20, 20);
|
|
print("PASS: image argument plus 8 numbers");
|
|
} catch (e) {
|
|
print("FAIL");
|
|
}
|
|
try{
|
|
ctx.drawImage(myImage, 0, 0, 0, 0);
|
|
print("PASS: image argument plus zero size");
|
|
} catch (e) {
|
|
print("FAIL");
|
|
}
|
|
try{
|
|
ctx.drawImage(myImage, 0, 0, 20, 20, 0, 0, 0, 0);
|
|
print("PASS: image argument plus 8 numbers, zero size");
|
|
} catch (e) {
|
|
print("FAIL");
|
|
}
|
|
try{
|
|
ctx.drawImage(myImage, 20, 20, -20, 0, 0, 0, 20, 20);
|
|
print("FAIL");
|
|
} catch (e) {
|
|
print("PASS: image argument plus 8 numbers, negative size of source, zero size, got exception as expected");
|
|
}
|
|
try{
|
|
ctx.drawImage(myImage, 0, 0, 20, 0, 20, 20, -20, -20);
|
|
print("FAIL");
|
|
} catch (e) {
|
|
print("PASS: image argument plus 8 numbers, negative size of destination, zero size, got exception as expected");
|
|
}
|
|
try{
|
|
ctx.drawImage(myImage, 20, 20, -20, 0, 20, 20, -20, -20);
|
|
print("FAIL");
|
|
} catch (e) {
|
|
print("PASS: image argument plus 8 numbers, negative size of source and destination, zero size, got exception as expected");
|
|
}
|
|
try{
|
|
ctx.drawImage(null);
|
|
print("FAIL");
|
|
} catch (e) {
|
|
print("PASS: null image, got exception as expected");
|
|
}
|
|
try{
|
|
ctx.drawImage(null, 0);
|
|
print("FAIL");
|
|
} catch (e) {
|
|
print("PASS: null image, got exception as expected");
|
|
}
|
|
try{
|
|
ctx.drawImage(null, 0, 0);
|
|
print("FAIL");
|
|
} catch (e) {
|
|
print("PASS: null image, got exception as expected");
|
|
}
|
|
try{
|
|
ctx.drawImage(null, 0, 0, 20, 20);
|
|
print("FAIL");
|
|
} catch (e) {
|
|
print("PASS: null image, got exception as expected");
|
|
}
|
|
try{
|
|
ctx.drawImage(myImage, -10, 0, 52, 64, 0, 0, 20, 20);
|
|
print("PASS: imageRect does not contain sourceRect on the left side");
|
|
} catch (e) {
|
|
print("FAIL");
|
|
}
|
|
try{
|
|
ctx.drawImage(myImage, 10, 0, 52, 64, 0, 0, 20, 20);
|
|
print("PASS: imageRect does not contain sourceRect on the right side");
|
|
} catch (e) {
|
|
print("FAIL");
|
|
}
|
|
try{
|
|
ctx.drawImage(myImage, 0, -10, 52, 64, 0, 0, 20, 20);
|
|
print("PASS: imageRect does not contain sourceRect on top");
|
|
} catch (e) {
|
|
print("FAIL");
|
|
}
|
|
try{
|
|
ctx.drawImage(myImage, 0, 10, 52, 64, 0, 0, 20, 20);
|
|
print("PASS: imageRect does not contain sourceRect on bottom");
|
|
} catch (e) {
|
|
print("FAIL");
|
|
}
|
|
try{
|
|
ctx.drawImage(myImage, -10, -10, 72, 84, 0, 0, 20, 20);
|
|
print("PASS: sourceRect is bigger than imageSource on every side");
|
|
} catch (e) {
|
|
print("FAIL");
|
|
}
|
|
try{
|
|
ctx.drawImage(myImage, 42, 64, -52, -64, 0, 0, 20, 20);
|
|
print("PASS: negative size of source, imageRect does not contain sourceRect on the left side");
|
|
} catch (e) {
|
|
print("FAIL");
|
|
}
|
|
try{
|
|
ctx.drawImage(myImage, 62, 64, -52, -64, 0, 0, 20, 20);
|
|
print("PASS: negative size of source, imageRect does not contain sourceRect on the right side");
|
|
} catch (e) {
|
|
print("FAIL");
|
|
}
|
|
try{
|
|
ctx.drawImage(myImage, 52, 54, -52, -64, 0, 0, 20, 20);
|
|
print("PASS: negative size of source, imageRect does not contain sourceRect on top");
|
|
} catch (e) {
|
|
print("FAIL");
|
|
}
|
|
try{
|
|
ctx.drawImage(myImage, 52, 74, -52, -64, 0, 0, 20, 20);
|
|
print("PASS: negative size of source, imageRect does not contain sourceRect on bottom");
|
|
} catch (e) {
|
|
print("FAIL");
|
|
}
|
|
try{
|
|
ctx.drawImage(myImage, 62, 74, -72, -84, 0, 0, 20, 20);
|
|
print("PASS: negative size of source, imageRect does not contain sourceRect on every side");
|
|
} catch (e) {
|
|
print("FAIL");
|
|
}
|
|
ctx.fillStyle = 'green';
|
|
ctx.fillRect(0,0,150,150);
|
|
|
|
print("Test complete.");
|
|
}
|
|
</script>
|
|
</body>
|