OLD | NEW |
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> | 1 <script src="../../resources/testharness.js"></script> |
2 <html> | 2 <script src="../../resources/testharnessreport.js"></script> |
3 <head> | |
4 <script src="../../resources/js-test.js"></script> | |
5 </head> | |
6 <body> | 3 <body> |
7 <script src="resources/canvas-ImageData.js"></script> | 4 <script> |
| 5 |
| 6 function setRGBA(imageData, i, rgba) { |
| 7 var s = i * 4; |
| 8 imageData[s] = rgba[0]; |
| 9 imageData[s + 1] = rgba[1]; |
| 10 imageData[s + 2] = rgba[2]; |
| 11 imageData[s + 3] = rgba[3]; |
| 12 } |
| 13 |
| 14 function getRGBA(imageData, i) { |
| 15 var result = []; |
| 16 var s = i * 4; |
| 17 for (var j = 0; j < 4; j++) { |
| 18 result[j] = imageData[s + j]; |
| 19 } |
| 20 return result; |
| 21 } |
| 22 |
| 23 test(function(t) { |
| 24 assert_not_equals(ImageData, undefined); |
| 25 assert_equals(ImageData.length, 2); |
| 26 |
| 27 imageData = new ImageData(100, 50); |
| 28 |
| 29 assert_not_equals(imageData, null); |
| 30 assert_not_equals(imageData.data, null); |
| 31 assert_equals(imageData.width, 100); |
| 32 assert_equals(imageData.height, 50); |
| 33 assert_array_equals(getRGBA(imageData.data, 4), [0, 0, 0, 0]); |
| 34 |
| 35 var testColor = [0, 255, 255, 128]; |
| 36 setRGBA(imageData.data, 4, testColor); |
| 37 assert_array_equals(getRGBA(imageData.data, 4), testColor); |
| 38 |
| 39 assert_throws(null, function() {new ImageData(10)}); |
| 40 assert_throws(null, function() {new ImageData(0, 10)}); |
| 41 assert_throws(null, function() {new ImageData(10, 0)}); |
| 42 assert_throws(null, function() {new ImageData('width', 'height')}); |
| 43 assert_throws(null, function() {new ImageData(1 << 31, 1 << 31)}); |
| 44 |
| 45 assert_throws(null, function() {new ImageData(new Uint8ClampedArray(0))}); |
| 46 assert_throws(null, function() {new ImageData(new Uint8Array(100), 25)}); |
| 47 assert_throws(null, function() {new ImageData(new Uint8ClampedArray(27), 2)}
); |
| 48 assert_throws(null, function() {new ImageData(new Uint8ClampedArray(28), 7,
0)}); |
| 49 assert_throws(null, function() {new ImageData(new Uint8ClampedArray(104), 14
)}); |
| 50 assert_throws(null, function() {new ImageData(self, 4, 4)}); |
| 51 assert_throws(null, function() {new ImageData(null, 4, 4)}); |
| 52 assert_throws(null, function() {new ImageData(imageData.data, 0)}); |
| 53 assert_throws(null, function() {new ImageData(imageData.data, 13)}); |
| 54 assert_throws(null, function() {new ImageData(imageData.data, 1 << 31)}); |
| 55 assert_throws(null, function() {new ImageData(imageData.data, 'biggish')}); |
| 56 assert_throws(null, function() {new ImageData(imageData.data, 1 << 24, 1 <<
31)}); |
| 57 assert_equals((new ImageData(new Uint8ClampedArray(28), 7)).height, 1); |
| 58 |
| 59 imageDataFromData = new ImageData(imageData.data, 100); |
| 60 assert_equals(imageDataFromData.width, 100); |
| 61 assert_equals(imageDataFromData.height, 50); |
| 62 assert_equals(imageDataFromData.data, imageData.data); |
| 63 assert_array_equals(getRGBA(imageDataFromData.data, 10), getRGBA(imageData.d
ata, 10)); |
| 64 setRGBA(imageData.data, 10, testColor); |
| 65 assert_array_equals(getRGBA(imageDataFromData.data, 10), getRGBA(imageData.d
ata, 10)); |
| 66 |
| 67 var data = new Uint8ClampedArray(400); |
| 68 data[22] = 129; |
| 69 imageDataFromData = new ImageData(data, 20, 5); |
| 70 assert_equals(imageDataFromData.width, 20); |
| 71 assert_equals(imageDataFromData.height, 5); |
| 72 assert_equals(imageDataFromData.data, data); |
| 73 assert_array_equals(getRGBA(imageDataFromData.data, 2), getRGBA(data, 2)); |
| 74 setRGBA(imageDataFromData.data, 2, testColor); |
| 75 assert_array_equals(getRGBA(imageDataFromData.data, 2), getRGBA(data, 2)); |
| 76 |
| 77 }, 'Test ImageData constructor'); |
| 78 </script> |
8 </body> | 79 </body> |
9 </html> | |
OLD | NEW |