<!DOCTYPE html>
<!-- DO NOT EDIT! This test has been generated by tools/gentest.py. -->
<title>Canvas test: 2d.imageData.get.nonpremul</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>2d.imageData.get.nonpremul</h1>
<p class="desc">getImageData() returns non-premultiplied colours</p>


<p class="output">Actual output:</p>
<canvas id="c" class="output" width="100" height="50"><p class="fallback">FAIL (fallback content)</p></canvas>

<ul id="d"></ul>
<script>
var t = async_test("getImageData() returns non-premultiplied colours");
_addTest(function(canvas, ctx) {

ctx.fillStyle = 'rgba(255, 255, 255, 0.5)';
ctx.fillRect(0, 0, 100, 50);
var imgdata = ctx.getImageData(10, 10, 10, 10);
_assert(imgdata.data[0] > 200, "imgdata.data[\""+(0)+"\"] > 200");
_assert(imgdata.data[1] > 200, "imgdata.data[\""+(1)+"\"] > 200");
_assert(imgdata.data[2] > 200, "imgdata.data[\""+(2)+"\"] > 200");
_assert(imgdata.data[3] > 100, "imgdata.data[\""+(3)+"\"] > 100");
_assert(imgdata.data[3] < 200, "imgdata.data[\""+(3)+"\"] < 200");


});
</script>

