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

<h1>toDataURL.jpeg.primarycolours</h1>
<p class="desc">toDataURL with JPEG handles simple colours correctly</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="toDataURL.jpeg.primarycolours.png" class="output expected" id="expected" alt="">
<ul id="d"></ul>
<script>
var t = async_test("toDataURL with JPEG handles simple colours correctly");
_addTest(function(canvas, ctx) {

ctx.fillStyle = '#ff0';
ctx.fillRect(0, 0, 25, 40);
ctx.fillStyle = '#0ff';
ctx.fillRect(25, 0, 50, 40);
ctx.fillStyle = '#00f';
ctx.fillRect(75, 0, 25, 40);
ctx.fillStyle = '#fff';
ctx.fillRect(0, 40, 100, 10);
var data = canvas.toDataURL('image/jpeg'); // it is okay if this returns a PNG instead
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
var img = new Image();
deferTest();
img.onload = t.step_func_done(function ()
{
    ctx.drawImage(img, 0, 0);
    _assertPixelApprox(canvas, 12,20, 255,255,0,255, "12,20", "255,255,0,255", 8);
    _assertPixelApprox(canvas, 50,20, 0,255,255,255, "50,20", "0,255,255,255", 8);
    _assertPixelApprox(canvas, 87,20, 0,0,255,255, "87,20", "0,0,255,255", 8);
    _assertPixelApprox(canvas, 50,45, 255,255,255,255, "50,45", "255,255,255,255", 8);
});
img.src = data;


});
</script>

