<!DOCTYPE html>
<title>Canvas test: 2d.pattern.modify.image2</title>
<meta name="author" content="Philip Taylor">
<script src="../common/canvas-tests.js"></script>
<link rel="stylesheet" href="../common/canvas-tests.css">
<body class="show_output">

<h1><a href="index.2d.html">2d</a>.<a href="index.2d.pattern.html">pattern</a>.<a href="index.2d.pattern.modify.html">modify</a>.image2</h1>
<p class="desc"></p>

<div class="refs">Spec references:
<ul>
<li><a href="../annotated-spec/canvas.html#testrefs.2d.pattern.modify">2d.pattern.modify</a>
</ul>
</div>

<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="../resources/green-100x50.png" class="output expected" id="expected" alt="">
<ul id="d"></ul>
<script>
_addTest(function(canvas, ctx) {

var img = document.getElementById('green.png');
var pattern = ctx.createPattern(img, 'no-repeat');
ctx.fillStyle = pattern;
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#00f';
ctx.fillRect(0, 0, 100, 50);
deferTest();
img.onload = wrapFunction(function ()
{
    ctx.fillStyle = pattern;
    ctx.fillRect(0, 0, 100, 50);

    _assertPixel(canvas, 1,1, 0,255,0,255, "1,1", "0,255,0,255");
    _assertPixel(canvas, 98,1, 0,255,0,255, "98,1", "0,255,0,255");
    _assertPixel(canvas, 1,48, 0,255,0,255, "1,48", "0,255,0,255");
    _assertPixel(canvas, 98,48, 0,255,0,255, "98,48", "0,255,0,255");
});
img.src = '../images/red.png';


});
</script>
<img src="../resources/green.png" id="green.png" class="resource">

