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

<h1>2d.imageData.get.type</h1>
<p class="desc">getImageData() returns an ImageData object containing a Uint8ClampedArray object</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 an ImageData object containing a Uint8ClampedArray object");
_addTest(function(canvas, ctx) {

_assertDifferent(window.ImageData, undefined, "window.ImageData", "undefined");
_assertDifferent(window.Uint8ClampedArray, undefined, "window.Uint8ClampedArray", "undefined");
window.ImageData.prototype.thisImplementsImageData = true;
window.Uint8ClampedArray.prototype.thisImplementsUint8ClampedArray = true;
var imgdata = ctx.getImageData(0, 0, 1, 1);
_assert(imgdata.thisImplementsImageData, "imgdata.thisImplementsImageData");
_assert(imgdata.data.thisImplementsUint8ClampedArray, "imgdata.data.thisImplementsUint8ClampedArray");


});
</script>

