Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / fast / canvas / resources / canvas-ImageData.js
blobbf866862b15d6f72e352ea04387dae2748b72a96
1 description("Test ImageData constructor");
3 function setRGBA(imageData, i, rgba) {
4     var s = i * 4;
5     imageData[s] = rgba[0];
6     imageData[s + 1] = rgba[1];
7     imageData[s + 2] = rgba[2];
8     imageData[s + 3] = rgba[3];
11 function getRGBA(imageData, i) {
12     var result = [];
13     var s = i * 4;
14     for (var j = 0; j < 4; j++) {
15         result[j] = imageData[s + j];
16     }
17     return result;
20 shouldBeDefined("ImageData");
21 shouldBe("ImageData.length", "2");
23 imageData = new ImageData(100, 50);
25 shouldBeNonNull("imageData");
26 shouldBeNonNull("imageData.data");
27 shouldBe("imageData.width", "100");
28 shouldBe("imageData.height", "50");
29 shouldBe("getRGBA(imageData.data, 4)", "[0, 0, 0, 0]");
31 var testColor = [0, 255, 255, 128];
32 setRGBA(imageData.data, 4, testColor);
33 shouldBe("getRGBA(imageData.data, 4)", "testColor");
35 shouldThrow("new ImageData(10)");
36 shouldThrow("new ImageData(0, 10)");
37 shouldThrow("new ImageData(10, 0)");
38 shouldThrow("new ImageData('width', 'height')");
39 shouldThrow("new ImageData(1 << 31, 1 << 31)");
41 shouldThrow("new ImageData(new Uint8ClampedArray(0))");
42 shouldThrow("new ImageData(new Uint8Array(100), 25)");
43 shouldThrow("new ImageData(new Uint8ClampedArray(27), 2)");
44 shouldThrow("new ImageData(new Uint8ClampedArray(28), 7, 0)");
45 shouldThrow("new ImageData(new Uint8ClampedArray(104), 14)");
46 shouldThrow("new ImageData(self, 4, 4)");
47 shouldThrow("new ImageData(null, 4, 4)");
48 shouldThrow("new ImageData(imageData.data, 0)");
49 shouldThrow("new ImageData(imageData.data, 13)");
50 shouldThrow("new ImageData(imageData.data, 1 << 31)");
51 shouldThrow("new ImageData(imageData.data, 'biggish')");
52 shouldThrow("new ImageData(imageData.data, 1 << 24, 1 << 31)");
53 shouldBe("(new ImageData(new Uint8ClampedArray(28), 7)).height", "1");
55 imageDataFromData = new ImageData(imageData.data, 100);
56 shouldBe("imageDataFromData.width", "100");
57 shouldBe("imageDataFromData.height", "50");
58 shouldBe("imageDataFromData.data", "imageData.data");
59 shouldBe("getRGBA(imageDataFromData.data, 10)", "getRGBA(imageData.data, 10)");
60 setRGBA(imageData.data, 10, testColor);
61 shouldBe("getRGBA(imageDataFromData.data, 10)", "getRGBA(imageData.data, 10)");
63 var data = new Uint8ClampedArray(400);
64 data[22] = 129;
65 imageDataFromData = new ImageData(data, 20, 5);
66 shouldBe("imageDataFromData.width", "20");
67 shouldBe("imageDataFromData.height", "5");
68 shouldBe("imageDataFromData.data", "data");
69 shouldBe("getRGBA(imageDataFromData.data, 2)", "getRGBA(data, 2)");
70 setRGBA(imageDataFromData.data, 2, testColor);
71 shouldBe("getRGBA(imageDataFromData.data, 2)", "getRGBA(data, 2)");