description("Series of tests to ensure correct behaviour of the ImageData object"); imageData = document.getElementById("canvas").getContext("2d").getImageData(0,0,2,2); shouldBe("imageData.width", "2"); shouldBe("imageData.height", "2"); shouldBe("imageData.data.length", "16"); for (var i = 0; i < imageData.data.length; i++) shouldBe("imageData.data["+i+"]", "0"); var testValues = [NaN, true, false, "\"garbage\"", "-1", "\"0\"", "\"1\"", "\"2\"", Infinity, -Infinity, -5, -0.5, 0, 0.5, 5, 5.4, 255, 256, null, undefined]; var testResults = [0, 1, 0, 0, 0, 0, 1, 2, 255, 0, 0, 0, 0, 0, 5, 5, 255, 255, 0, 0]; for (var i = 0; i < testValues.length; i++) { shouldBe("imageData.data[0] = "+testValues[i]+", imageData.data[0]", ""+testResults[i]); } shouldBe("imageData.data['foo']='garbage',imageData.data['foo']", "'garbage'"); shouldBe("imageData.data[-1]='garbage',imageData.data[-1]", "undefined"); shouldBe("imageData.data[17]='garbage',imageData.data[17]", "undefined");