<!DOCTYPE html>
<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
<title>Canvas test: toDataURL.png.complexcolours</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>toDataURL.png.complexcolours</h1>
<p class="desc">toDataURL with PNG handles non-primary and non-solid 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.png.complexcolours.png" class="output expected" id="expected" alt="">
<ul id="d"></ul>
<script>
var t = async_test("toDataURL with PNG handles non-primary and non-solid colours correctly");
_addTest(function(canvas, ctx) {

// (These values are chosen to survive relatively alright through being premultiplied)
ctx.fillStyle = 'rgba(1, 3, 254, 1)';
ctx.fillRect(0, 0, 25, 25);
ctx.fillStyle = 'rgba(8, 252, 248, 0.75)';
ctx.fillRect(25, 0, 25, 25);
ctx.fillStyle = 'rgba(6, 10, 250, 0.502)';
ctx.fillRect(50, 0, 25, 25);
ctx.fillStyle = 'rgba(12, 16, 244, 0.25)';
ctx.fillRect(75, 0, 25, 25);
var img = new Image();
deferTest();
img.onload = t.step_func_done(function ()
{
    ctx.drawImage(img, 0, 25);
    // (The alpha values do not really survive float->int conversion, so just
    // do approximate comparisons)
    _assertPixel(canvas, 12,40, 1,3,254,255, "12,40", "1,3,254,255");
    _assertPixelApprox(canvas, 37,40, 8,252,248,191, "37,40", "8,252,248,191", 2);
    _assertPixelApprox(canvas, 62,40, 6,10,250,127, "62,40", "6,10,250,127", 4);
    _assertPixelApprox(canvas, 87,40, 12,16,244,63, "87,40", "12,16,244,63", 8);
});
img.src = canvas.toDataURL();


});
</script>

