| <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> |