<!DOCTYPE html>
<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
<title>Canvas test: 2d.drawImage.zerosource.image</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/html/canvas/resources/canvas-tests.js"></script>
<link rel="stylesheet" href="/html/canvas/resources/canvas-tests.css">
<body class="show_output">

<h1>2d.drawImage.zerosource.image</h1>
<p class="desc">drawImage with zero-sized source rectangle from image draws nothing without exception</p>


<p class="output">Actual output:</p>
<canvas id="c" class="output" width="100" height="50"><p class="fallback">FAIL (fallback content)</p></canvas>
<p class="output expectedtext">Expected output:<p><img src="/images/green-100x50.png" class="output expected" id="expected" alt="">
<ul id="d"></ul>
<script>
var t = async_test("drawImage with zero-sized source rectangle from image draws nothing without exception");
_addTest(function(canvas, ctx) {

ctx.fillStyle = '#0f0';
ctx.fillRect(0, 0, 100, 50);
ctx.drawImage(document.getElementById('red-zerowidth.svg'), 0, 0, 100, 50);
ctx.drawImage(document.getElementById('red-zeroheight.svg'), 0, 0, 100, 50);
ctx.drawImage(document.getElementById('red-zerosize.svg'), 0, 0, 100, 50);
_assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");


});
</script>
<img src="/images/red-zerowidth.svg" id="red-zerowidth.svg" class="resource">
<img src="/images/red-zeroheight.svg" id="red-zeroheight.svg" class="resource">
<img src="/images/red-zerosize.svg" id="red-zerosize.svg" class="resource">

