Index: third_party/WebKit/LayoutTests/fast/canvas/canvas-ImageData-constructor.html |
diff --git a/third_party/WebKit/LayoutTests/fast/canvas/canvas-ImageData-constructor.html b/third_party/WebKit/LayoutTests/fast/canvas/canvas-ImageData-constructor.html |
index 409c71f252624ad5f132436c9b7317daafec9067..08542657188db7cdf744c186673d036b18be9f7e 100644 |
--- a/third_party/WebKit/LayoutTests/fast/canvas/canvas-ImageData-constructor.html |
+++ b/third_party/WebKit/LayoutTests/fast/canvas/canvas-ImageData-constructor.html |
@@ -1,9 +1,79 @@ |
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
-<html> |
-<head> |
-<script src="../../resources/js-test.js"></script> |
-</head> |
+<script src="../../resources/testharness.js"></script> |
+<script src="../../resources/testharnessreport.js"></script> |
<body> |
-<script src="resources/canvas-ImageData.js"></script> |
+<script> |
+ |
+function setRGBA(imageData, i, rgba) { |
+ var s = i * 4; |
+ imageData[s] = rgba[0]; |
+ imageData[s + 1] = rgba[1]; |
+ imageData[s + 2] = rgba[2]; |
+ imageData[s + 3] = rgba[3]; |
+} |
+ |
+function getRGBA(imageData, i) { |
+ var result = []; |
+ var s = i * 4; |
+ for (var j = 0; j < 4; j++) { |
+ result[j] = imageData[s + j]; |
+ } |
+ return result; |
+} |
+ |
+test(function(t) { |
+ assert_not_equals(ImageData, undefined); |
+ assert_equals(ImageData.length, 2); |
+ |
+ imageData = new ImageData(100, 50); |
+ |
+ assert_not_equals(imageData, null); |
+ assert_not_equals(imageData.data, null); |
+ assert_equals(imageData.width, 100); |
+ assert_equals(imageData.height, 50); |
+ assert_array_equals(getRGBA(imageData.data, 4), [0, 0, 0, 0]); |
+ |
+ var testColor = [0, 255, 255, 128]; |
+ setRGBA(imageData.data, 4, testColor); |
+ assert_array_equals(getRGBA(imageData.data, 4), testColor); |
+ |
+ assert_throws(null, function() {new ImageData(10)}); |
+ assert_throws(null, function() {new ImageData(0, 10)}); |
+ assert_throws(null, function() {new ImageData(10, 0)}); |
+ assert_throws(null, function() {new ImageData('width', 'height')}); |
+ assert_throws(null, function() {new ImageData(1 << 31, 1 << 31)}); |
+ |
+ assert_throws(null, function() {new ImageData(new Uint8ClampedArray(0))}); |
+ assert_throws(null, function() {new ImageData(new Uint8Array(100), 25)}); |
+ assert_throws(null, function() {new ImageData(new Uint8ClampedArray(27), 2)}); |
+ assert_throws(null, function() {new ImageData(new Uint8ClampedArray(28), 7, 0)}); |
+ assert_throws(null, function() {new ImageData(new Uint8ClampedArray(104), 14)}); |
+ assert_throws(null, function() {new ImageData(self, 4, 4)}); |
+ assert_throws(null, function() {new ImageData(null, 4, 4)}); |
+ assert_throws(null, function() {new ImageData(imageData.data, 0)}); |
+ assert_throws(null, function() {new ImageData(imageData.data, 13)}); |
+ assert_throws(null, function() {new ImageData(imageData.data, 1 << 31)}); |
+ assert_throws(null, function() {new ImageData(imageData.data, 'biggish')}); |
+ assert_throws(null, function() {new ImageData(imageData.data, 1 << 24, 1 << 31)}); |
+ assert_equals((new ImageData(new Uint8ClampedArray(28), 7)).height, 1); |
+ |
+ imageDataFromData = new ImageData(imageData.data, 100); |
+ assert_equals(imageDataFromData.width, 100); |
+ assert_equals(imageDataFromData.height, 50); |
+ assert_equals(imageDataFromData.data, imageData.data); |
+ assert_array_equals(getRGBA(imageDataFromData.data, 10), getRGBA(imageData.data, 10)); |
+ setRGBA(imageData.data, 10, testColor); |
+ assert_array_equals(getRGBA(imageDataFromData.data, 10), getRGBA(imageData.data, 10)); |
+ |
+ var data = new Uint8ClampedArray(400); |
+ data[22] = 129; |
+ imageDataFromData = new ImageData(data, 20, 5); |
+ assert_equals(imageDataFromData.width, 20); |
+ assert_equals(imageDataFromData.height, 5); |
+ assert_equals(imageDataFromData.data, data); |
+ assert_array_equals(getRGBA(imageDataFromData.data, 2), getRGBA(data, 2)); |
+ setRGBA(imageDataFromData.data, 2, testColor); |
+ assert_array_equals(getRGBA(imageDataFromData.data, 2), getRGBA(data, 2)); |
+ |
+}, 'Test ImageData constructor'); |
+</script> |
</body> |
-</html> |