<!DOCTYPE html>
<!-- DO NOT EDIT! This test has been generated by tools/gentest.py. -->
<title>Canvas test: 2d.imageData.object.ctor.size</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.object.ctor.size</h1>
<p class="desc">ImageData has a usable constructor</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("ImageData has a usable constructor");
_addTest(function(canvas, ctx) {

_assertDifferent(window.ImageData, undefined, "window.ImageData", "undefined");

var imgdata = new window.ImageData(2, 3);
_assertSame(imgdata.width, 2, "imgdata.width", "2");
_assertSame(imgdata.height, 3, "imgdata.height", "3");
_assertSame(imgdata.data.length, 2 * 3 * 4, "imgdata.data.length", "2 * 3 * 4");
for (var i = 0; i < imgdata.data.length; ++i) {
  _assertSame(imgdata.data[i], 0, "imgdata.data[\""+(i)+"\"]", "0");
}


});
</script>

