<!DOCTYPE html>
<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
<title>OffscreenCanvas test: 2d.imageData.get.nonpremul</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/html/canvas/resources/canvas-tests.js"></script>

<h1>2d.imageData.get.nonpremul</h1>
<p class="desc">getImageData() returns non-premultiplied colours</p>


<script>
var t = async_test("getImageData() returns non-premultiplied colours");
var t_pass = t.done.bind(t);
var t_fail = t.step_func(function(reason) {
    throw reason;
});
t.step(function() {

var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');

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");
t.done();

});
</script>
