1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/content/canvas/test/test_ImageData_ctor.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,80 @@ 1.4 +<!DOCTYPE HTML><meta charset=utf-8> 1.5 +<title>Canvas test: ImageData</title> 1.6 +<script type="text/javascript" src="/resources/testharness.js"></script> 1.7 +<script type="text/javascript" src="/resources/testharnessreport.js"></script> 1.8 +<body> 1.9 +<div id="log"></div> 1.10 +<script> 1.11 + 1.12 +test(function() { 1.13 + assert_throws(new TypeError(), function(){ new ImageData(); }); 1.14 + assert_throws(new TypeError(), function(){ new ImageData(1); }); 1.15 + assert_throws(new TypeError(), function(){ new ImageData(new Uint8ClampedArray([1,2,3,4])); }); 1.16 + assert_throws("IndexSizeError", function(){ new ImageData(0,0); }); 1.17 + assert_throws("IndexSizeError", function(){ new ImageData(0,1); }); 1.18 + assert_throws("IndexSizeError", function(){ new ImageData(1,0); }); 1.19 + new ImageData(1,1); 1.20 + new ImageData(1,2); 1.21 + new ImageData(1,3); 1.22 + assert_throws("IndexSizeError", function(){ new ImageData(2,0); }); 1.23 + new ImageData(2,1); 1.24 + new ImageData(2,2); 1.25 + assert_throws("IndexSizeError", function(){ new ImageData(32768,32768); }); 1.26 + assert_throws("IndexSizeError", function(){ new ImageData(32768,32769); }); 1.27 + assert_throws("IndexSizeError", function(){ new ImageData(32769,32768); }); 1.28 + assert_throws("IndexSizeError", function(){ new ImageData(2,536870912); }); 1.29 + assert_throws("IndexSizeError", function(){ new ImageData(2,536870913); }); 1.30 + assert_throws("IndexSizeError", function(){ new ImageData(536870912,2); }); 1.31 + assert_throws("IndexSizeError", function(){ new ImageData(536870913,2); }); 1.32 + assert_throws("InvalidStateError", function(){ new ImageData(new Uint8ClampedArray([]),0); }); 1.33 + assert_throws("InvalidStateError", function(){ new ImageData(new Uint8ClampedArray([]),0,0); }); 1.34 + assert_throws("InvalidStateError", function(){ new ImageData(new Uint8ClampedArray([]),1); }); 1.35 + assert_throws("InvalidStateError", function(){ new ImageData(new Uint8ClampedArray([1]),1); }); 1.36 + assert_throws("InvalidStateError", function(){ new ImageData(new Uint8ClampedArray([1,2]),1); }); 1.37 + assert_throws("InvalidStateError", function(){ new ImageData(new Uint8ClampedArray([1,2,3]),1); }); 1.38 + assert_throws("InvalidStateError", function(){ new ImageData(new Uint8ClampedArray([1,2,3,4,5]),1); }); 1.39 + assert_throws("IndexSizeError", function(){ new ImageData(new Uint8ClampedArray([1,2,3,4]),0); }); 1.40 + new ImageData(new Uint8ClampedArray([1,2,3,4]),1); 1.41 + assert_throws("IndexSizeError", function(){ new ImageData(new Uint8ClampedArray([1,2,3,4]),2); }); 1.42 + assert_throws("IndexSizeError", function(){ new ImageData(new Uint8ClampedArray([1,2,3,4,5,6,7,8]),0); }); 1.43 + new ImageData(new Uint8ClampedArray([1,2,3,4,5,6,7,8]),1); 1.44 + new ImageData(new Uint8ClampedArray([1,2,3,4,5,6,7,8]),2); 1.45 + assert_throws("IndexSizeError", function(){ new ImageData(new Uint8ClampedArray([1,2,3,4,5,6,7,8]),3); }); 1.46 + assert_throws("InvalidStateError", function(){ new ImageData(new Uint8ClampedArray([]),1,1); }); 1.47 + assert_throws("InvalidStateError", function(){ new ImageData(new Uint8ClampedArray([1]),1,1); }); 1.48 + assert_throws("InvalidStateError", function(){ new ImageData(new Uint8ClampedArray([1,2]),1,1); }); 1.49 + assert_throws("InvalidStateError", function(){ new ImageData(new Uint8ClampedArray([1,2,3]),1,1); }); 1.50 + assert_throws("InvalidStateError", function(){ new ImageData(new Uint8ClampedArray([1,2,3,4,5]),1,1); }); 1.51 + assert_throws("IndexSizeError", function(){ new ImageData(new Uint8ClampedArray([1,2,3,4]),0,0); }); 1.52 + assert_throws("IndexSizeError", function(){ new ImageData(new Uint8ClampedArray([1,2,3,4]),0,1); }); 1.53 + assert_throws("IndexSizeError", function(){ new ImageData(new Uint8ClampedArray([1,2,3,4]),0,2); }); 1.54 + assert_throws("IndexSizeError", function(){ new ImageData(new Uint8ClampedArray([1,2,3,4]),1,0); }); 1.55 + new ImageData(new Uint8ClampedArray([1,2,3,4]),1,1); 1.56 + assert_throws("IndexSizeError", function(){ new ImageData(new Uint8ClampedArray([1,2,3,4]),1,2); }); 1.57 + assert_throws("IndexSizeError", function(){ new ImageData(new Uint8ClampedArray([1,2,3,4]),2,0); }); 1.58 + assert_throws("IndexSizeError", function(){ new ImageData(new Uint8ClampedArray([1,2,3,4]),2,1); }); 1.59 + assert_throws("IndexSizeError", function(){ new ImageData(new Uint8ClampedArray([1,2,3,4]),2,2); }); 1.60 + assert_throws("IndexSizeError", function(){ new ImageData(new Uint8ClampedArray([1,2,3,4,5,6,7,8]),1,1); }); 1.61 + new ImageData(new Uint8ClampedArray([1,2,3,4,5,6,7,8]),1,2); 1.62 + assert_throws("IndexSizeError", function(){ new ImageData(new Uint8ClampedArray([1,2,3,4,5,6,7,8]),1,3); }); 1.63 + assert_throws("IndexSizeError", function(){ new ImageData(new Uint8ClampedArray([1,2,3,4,5,6,7,8]),2,0); }); 1.64 + new ImageData(new Uint8ClampedArray([1,2,3,4,5,6,7,8]),2,1); 1.65 + assert_throws("IndexSizeError", function(){ new ImageData(new Uint8ClampedArray([1,2,3,4,5,6,7,8]),2,2); }); 1.66 + assert_throws("IndexSizeError", function(){ new ImageData(new Uint8ClampedArray([1,2,3,4,5,6,7,8]),2,536870912); }); 1.67 + assert_throws("IndexSizeError", function(){ new ImageData(new Uint8ClampedArray([1,2,3,4,5,6,7,8]),2,536870913); }); 1.68 + assert_throws("IndexSizeError", function(){ new ImageData(new Uint8ClampedArray([1,2,3,4,5,6,7,8]),536870912,2); }); 1.69 + assert_throws("IndexSizeError", function(){ new ImageData(new Uint8ClampedArray([1,2,3,4,5,6,7,8]),536870913,2); }); 1.70 +}, "Test constructor arguments"); 1.71 + 1.72 +test(function() { 1.73 + var data = new Uint8ClampedArray([1,2,3,4,5,6,7,8]); 1.74 + var imgData = new ImageData(data,1); 1.75 + assert_equals(imgData.width, 1); 1.76 + assert_equals(imgData.height, 2); 1.77 + assert_array_equals(imgData.data, [1,2,3,4,5,6,7,8]); 1.78 + data.set([8,7,6,5,4,3,2,1]); 1.79 + assert_array_equals(imgData.data, [8,7,6,5,4,3,2,1]); 1.80 +}, "The data argument is not copied"); 1.81 + 1.82 +</script> 1.83 +