Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Side by Side Diff: third_party/WebKit/LayoutTests/fast/canvas/script-tests/canvas-currentTransform.js

Issue 2675763005: Use testharness.js instead of js-test.js in LayoutTests/fast/canvas tests. (Closed)
Patch Set: Addressing comments Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/WebKit/LayoutTests/fast/canvas/script-tests/canvas-currentColor.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 description("Series of tests to ensure correct behaviour of canvas.currentTransf orm");
2 var ctx = document.createElement('canvas').getContext('2d');
3
4 var matrix = ctx.currentTransform;
5
6 debug("Check initial currentTransform values");
7 shouldBe("matrix.a", "1");
8 shouldBe("matrix.b", "0");
9 shouldBe("matrix.c", "0");
10 shouldBe("matrix.d", "1");
11 shouldBe("matrix.e", "0");
12 shouldBe("matrix.f", "0");
13
14 function setCurrentTransform(ctx, a, b, c, d, e, f)
15 {
16 matrix.a = a;
17 matrix.b = b;
18 matrix.c = c;
19 matrix.d = d;
20 matrix.e = e;
21 matrix.f = f;
22 ctx.currentTransform = matrix;
23 matrix.a = NaN;
24 matrix.b = NaN;
25 matrix.c = NaN;
26 matrix.d = NaN;
27 matrix.e = NaN;
28 matrix.f = NaN;
29 matrix = ctx.currentTransform;
30 shouldBe("matrix.a", "" + a);
31 shouldBe("matrix.b", "" + b);
32 shouldBe("matrix.c", "" + c);
33 shouldBe("matrix.d", "" + d);
34 shouldBe("matrix.e", "" + e);
35 shouldBe("matrix.f", "" + f);
36 }
37
38 matrix.a = 2;
39 debug("Changing matrix should not affect the CTM");
40 shouldBe("ctx.currentTransform.a", "1");
41 shouldBe("ctx.currentTransform.b", "0");
42 shouldBe("ctx.currentTransform.c", "0");
43 shouldBe("ctx.currentTransform.d", "1");
44 shouldBe("ctx.currentTransform.e", "0");
45 shouldBe("ctx.currentTransform.f", "0");
46
47 debug("Reset the CTM to the initial matrix");
48 ctx.beginPath();
49 ctx.scale(0.5, 0.5);
50 matrix = ctx.currentTransform;
51 shouldBe("matrix.a", "0.5");
52 shouldBe("matrix.b", "0");
53 shouldBe("matrix.c", "0");
54 shouldBe("matrix.d", "0.5");
55 shouldBe("matrix.e", "0");
56 shouldBe("matrix.f", "0");
57 setCurrentTransform(ctx, 1, 0, 0, 1, 0, 0);
58 ctx.fillStyle = 'green';
59 ctx.fillRect(0, 0, 100, 100);
60
61 var imageData = ctx.getImageData(1, 1, 98, 98);
62 var imgdata = imageData.data;
63 shouldBe("imgdata[4]", "0");
64 shouldBe("imgdata[5]", "128");
65 shouldBe("imgdata[6]", "0");
66
67 debug("currentTransform should not affect the current path");
68 ctx.beginPath();
69 ctx.rect(0,0,100,100);
70 ctx.save();
71 setCurrentTransform(ctx, 0.5, 0, 0, 0.5, 10, 10);
72 ctx.fillStyle = 'red';
73 ctx.fillRect(0, 0, 100, 100);
74 ctx.restore();
75 matrix = ctx.currentTransform;
76 shouldBe("matrix.a", "1");
77 shouldBe("matrix.b", "0");
78 shouldBe("matrix.c", "0");
79 shouldBe("matrix.d", "1");
80 shouldBe("matrix.e", "0");
81 shouldBe("matrix.f", "0");
82 ctx.fillStyle = 'green';
83 ctx.fillRect(0, 0, 100, 100);
84
85 imageData = ctx.getImageData(1, 1, 98, 98);
86 imgdata = imageData.data;
87 shouldBe("imgdata[4]", "0");
88 shouldBe("imgdata[5]", "128");
89 shouldBe("imgdata[6]", "0");
90
91 debug("currentTransform should not affect the CTM outside of save() and restore( )");
92 ctx.beginPath();
93 ctx.fillStyle = 'green';
94 ctx.save();
95 setCurrentTransform(ctx, 0.5, 0, 0, 0.5, 0, 0);
96 ctx.fillStyle = 'red';
97 ctx.fillRect(0, 0, 100, 100);
98 ctx.restore();
99 matrix = ctx.currentTransform;
100 shouldBe("matrix.a", "1");
101 shouldBe("matrix.b", "0");
102 shouldBe("matrix.c", "0");
103 shouldBe("matrix.d", "1");
104 shouldBe("matrix.e", "0");
105 shouldBe("matrix.f", "0");
106 ctx.fillRect(0, 0, 100, 100);
107
108 imageData = ctx.getImageData(1, 1, 98, 98);
109 imgdata = imageData.data;
110 shouldBe("imgdata[4]", "0");
111 shouldBe("imgdata[5]", "128");
112 shouldBe("imgdata[6]", "0");
113
114 debug("stop drawing on not-invertible CTM");
115 ctx.beginPath();
116 ctx.fillStyle = 'green';
117 ctx.fillRect(0, 0, 100, 100);
118 setCurrentTransform(ctx, 0, 0, 0, 0, 0, 0);
119 ctx.fillStyle = 'red';
120 ctx.fillRect(0, 0, 100, 100);
121
122 imageData = ctx.getImageData(1, 1, 98, 98);
123 imgdata = imageData.data;
124 shouldBe("imgdata[4]", "0");
125 shouldBe("imgdata[5]", "128");
126 shouldBe("imgdata[6]", "0");
127
128 debug("currentTransform with a not-invertible matrix should only stop the drawin g up to the next restore()");
129 ctx.beginPath();
130 ctx.resetTransform();
131 matrix = ctx.currentTransform;
132 shouldBe("matrix.a", "1");
133 shouldBe("matrix.b", "0");
134 shouldBe("matrix.c", "0");
135 shouldBe("matrix.d", "1");
136 shouldBe("matrix.e", "0");
137 shouldBe("matrix.f", "0");
138 ctx.save();
139 setCurrentTransform(ctx, 0, 0, 0, 0, 0, 0);
140 ctx.fillStyle = 'red';
141 ctx.fillRect(0, 0, 100, 100);
142 ctx.restore();
143 matrix = ctx.currentTransform;
144 shouldBe("matrix.a", "1");
145 shouldBe("matrix.b", "0");
146 shouldBe("matrix.c", "0");
147 shouldBe("matrix.d", "1");
148 shouldBe("matrix.e", "0");
149 shouldBe("matrix.f", "0");
150 ctx.fillStyle = 'blue';
151 ctx.fillRect(0, 0, 100, 100);
152
153 imageData = ctx.getImageData(1, 1, 98, 98);
154 imgdata = imageData.data;
155 shouldBe("imgdata[4]", "0");
156 shouldBe("imgdata[5]", "0");
157 shouldBe("imgdata[6]", "255");
158
159 debug("currentTransform should set transform although CTM is not-invertible");
160 ctx.beginPath();
161 ctx.fillStyle = 'red';
162 ctx.fillRect(0, 0, 100, 100);
163 setCurrentTransform(ctx, 0, 0, 0, 0, 0, 0);
164 ctx.fillStyle = 'green';
165 ctx.fillRect(0, 0, 100, 100);
166 setCurrentTransform(ctx, 1, 0, 0, 1, 0, 0);
167 ctx.fillStyle = 'blue';
168 ctx.fillRect(0, 0, 100, 100);
169
170 imageData = ctx.getImageData(1, 1, 98, 98);
171 imgdata = imageData.data;
172 shouldBe("imgdata[4]", "0");
173 shouldBe("imgdata[5]", "0");
174 shouldBe("imgdata[6]", "255");
175
176 debug("Check that non-invertible transforms are reflected in currentTransform");
177 setCurrentTransform(ctx, 1, 0, 0, 1, 1, 2);
178 ctx.scale(0, 0);
179 matrix = ctx.currentTransform;
180 shouldBe("matrix.a", "0");
181 shouldBe("matrix.b", "0");
182 shouldBe("matrix.c", "0");
183 shouldBe("matrix.d", "0");
184 shouldBe("matrix.e", "1");
185 shouldBe("matrix.f", "2");
186 setCurrentTransform(ctx, 1, 0, 0, 1, 0, 0);
187
188 debug("Check assigning an invalid object throws exception as expected");
189 shouldThrow("ctx.currentTransform = ctx", '"TypeError: Failed to set the \'curre ntTransform\' property on \'CanvasRenderingContext2D\': The provided value is no t of type \'SVGMatrix\'."');
190 shouldThrow("ctx.currentTransform = undefined", '"TypeError: Failed to set the \ 'currentTransform\' property on \'CanvasRenderingContext2D\': The provided value is not of type \'SVGMatrix\'."');
191 shouldThrow("ctx.currentTransform = null", '"TypeError: Failed to set the \'curr entTransform\' property on \'CanvasRenderingContext2D\': The provided value is n ot of type \'SVGMatrix\'."');
192
193 debug("Check handling non-finite values. see 2d.transformation.setTransform.nonf inite.html");
194 ctx.fillStyle = 'red';
195 ctx.fillRect(0, 0, 100, 100);
196
197 function setCurrentTransformToNonfinite(ctx, a, b, c, d, e, f)
198 {
199 matrix.a = a;
200 matrix.b = b;
201 matrix.c = c;
202 matrix.d = d;
203 matrix.e = e;
204 matrix.f = f;
205 ctx.currentTransform = matrix;
206 matrix.a = NaN;
207 matrix.b = NaN;
208 matrix.c = NaN;
209 matrix.d = NaN;
210 matrix.e = NaN;
211 matrix.f = NaN;
212 matrix = ctx.currentTransform;
213 shouldBe("matrix.a", "1");
214 shouldBe("matrix.b", "0");
215 shouldBe("matrix.c", "0");
216 shouldBe("matrix.d", "1");
217 shouldBe("matrix.e", "100");
218 shouldBe("matrix.f", "10");
219 }
220
221 ctx.translate(100, 10);
222 matrix = ctx.currentTransform;
223 shouldBe("matrix.a", "1");
224 shouldBe("matrix.b", "0");
225 shouldBe("matrix.c", "0");
226 shouldBe("matrix.d", "1");
227 shouldBe("matrix.e", "100");
228 shouldBe("matrix.f", "10");
229 setCurrentTransformToNonfinite(ctx, Infinity, 0, 0, 0, 0, 0);
230 setCurrentTransformToNonfinite(ctx, -Infinity, 0, 0, 0, 0, 0);
231 setCurrentTransformToNonfinite(ctx, NaN, 0, 0, 0, 0, 0);
232 setCurrentTransformToNonfinite(ctx, 0, Infinity, 0, 0, 0, 0);
233 setCurrentTransformToNonfinite(ctx, 0, -Infinity, 0, 0, 0, 0);
234 setCurrentTransformToNonfinite(ctx, 0, NaN, 0, 0, 0, 0);
235 setCurrentTransformToNonfinite(ctx, 0, 0, Infinity, 0, 0, 0);
236 setCurrentTransformToNonfinite(ctx, 0, 0, -Infinity, 0, 0, 0);
237 setCurrentTransformToNonfinite(ctx, 0, 0, NaN, 0, 0, 0);
238 setCurrentTransformToNonfinite(ctx, 0, 0, 0, Infinity, 0, 0);
239 setCurrentTransformToNonfinite(ctx, 0, 0, 0, -Infinity, 0, 0);
240 setCurrentTransformToNonfinite(ctx, 0, 0, 0, NaN, 0, 0);
241 setCurrentTransformToNonfinite(ctx, 0, 0, 0, 0, Infinity, 0);
242 setCurrentTransformToNonfinite(ctx, 0, 0, 0, 0, -Infinity, 0);
243 setCurrentTransformToNonfinite(ctx, 0, 0, 0, 0, NaN, 0);
244 setCurrentTransformToNonfinite(ctx, 0, 0, 0, 0, 0, Infinity);
245 setCurrentTransformToNonfinite(ctx, 0, 0, 0, 0, 0, -Infinity);
246 setCurrentTransformToNonfinite(ctx, 0, 0, 0, 0, 0, NaN);
247 setCurrentTransformToNonfinite(ctx, Infinity, Infinity, 0, 0, 0, 0);
248 setCurrentTransformToNonfinite(ctx, Infinity, Infinity, Infinity, 0, 0, 0);
249 setCurrentTransformToNonfinite(ctx, Infinity, Infinity, Infinity, Infinity, 0, 0 );
250 setCurrentTransformToNonfinite(ctx, Infinity, Infinity, Infinity, Infinity, Infi nity, 0);
251 setCurrentTransformToNonfinite(ctx, Infinity, Infinity, Infinity, Infinity, Infi nity, Infinity);
252 setCurrentTransformToNonfinite(ctx, Infinity, Infinity, Infinity, Infinity, 0, I nfinity);
253 setCurrentTransformToNonfinite(ctx, Infinity, Infinity, Infinity, 0, Infinity, 0 );
254 setCurrentTransformToNonfinite(ctx, Infinity, Infinity, Infinity, 0, Infinity, I nfinity);
255 setCurrentTransformToNonfinite(ctx, Infinity, Infinity, Infinity, 0, 0, Infinity );
256 setCurrentTransformToNonfinite(ctx, Infinity, Infinity, 0, Infinity, 0, 0);
257 setCurrentTransformToNonfinite(ctx, Infinity, Infinity, 0, Infinity, Infinity, 0 );
258 setCurrentTransformToNonfinite(ctx, Infinity, Infinity, 0, Infinity, Infinity, I nfinity);
259 setCurrentTransformToNonfinite(ctx, Infinity, Infinity, 0, Infinity, 0, Infinity );
260 setCurrentTransformToNonfinite(ctx, Infinity, Infinity, 0, 0, Infinity, 0);
261 setCurrentTransformToNonfinite(ctx, Infinity, Infinity, 0, 0, Infinity, Infinity );
262 setCurrentTransformToNonfinite(ctx, Infinity, Infinity, 0, 0, 0, Infinity);
263 setCurrentTransformToNonfinite(ctx, Infinity, 0, Infinity, 0, 0, 0);
264 setCurrentTransformToNonfinite(ctx, Infinity, 0, Infinity, Infinity, 0, 0);
265 setCurrentTransformToNonfinite(ctx, Infinity, 0, Infinity, Infinity, Infinity, 0 );
266 setCurrentTransformToNonfinite(ctx, Infinity, 0, Infinity, Infinity, Infinity, I nfinity);
267 setCurrentTransformToNonfinite(ctx, Infinity, 0, Infinity, Infinity, 0, Infinity );
268 setCurrentTransformToNonfinite(ctx, Infinity, 0, Infinity, 0, Infinity, 0);
269 setCurrentTransformToNonfinite(ctx, Infinity, 0, Infinity, 0, Infinity, Infinity );
270 setCurrentTransformToNonfinite(ctx, Infinity, 0, Infinity, 0, 0, Infinity);
271 setCurrentTransformToNonfinite(ctx, Infinity, 0, 0, Infinity, 0, 0);
272 setCurrentTransformToNonfinite(ctx, Infinity, 0, 0, Infinity, Infinity, 0);
273 setCurrentTransformToNonfinite(ctx, Infinity, 0, 0, Infinity, Infinity, Infinity );
274 setCurrentTransformToNonfinite(ctx, Infinity, 0, 0, Infinity, 0, Infinity);
275 setCurrentTransformToNonfinite(ctx, Infinity, 0, 0, 0, Infinity, 0);
276 setCurrentTransformToNonfinite(ctx, Infinity, 0, 0, 0, Infinity, Infinity);
277 setCurrentTransformToNonfinite(ctx, Infinity, 0, 0, 0, 0, Infinity);
278 setCurrentTransformToNonfinite(ctx, 0, Infinity, Infinity, 0, 0, 0);
279 setCurrentTransformToNonfinite(ctx, 0, Infinity, Infinity, Infinity, 0, 0);
280 setCurrentTransformToNonfinite(ctx, 0, Infinity, Infinity, Infinity, Infinity, 0 );
281 setCurrentTransformToNonfinite(ctx, 0, Infinity, Infinity, Infinity, Infinity, I nfinity);
282 setCurrentTransformToNonfinite(ctx, 0, Infinity, Infinity, Infinity, 0, Infinity );
283 setCurrentTransformToNonfinite(ctx, 0, Infinity, Infinity, 0, Infinity, 0);
284 setCurrentTransformToNonfinite(ctx, 0, Infinity, Infinity, 0, Infinity, Infinity );
285 setCurrentTransformToNonfinite(ctx, 0, Infinity, Infinity, 0, 0, Infinity);
286 setCurrentTransformToNonfinite(ctx, 0, Infinity, 0, Infinity, 0, 0);
287 setCurrentTransformToNonfinite(ctx, 0, Infinity, 0, Infinity, Infinity, 0);
288 setCurrentTransformToNonfinite(ctx, 0, Infinity, 0, Infinity, Infinity, Infinity );
289 setCurrentTransformToNonfinite(ctx, 0, Infinity, 0, Infinity, 0, Infinity);
290 setCurrentTransformToNonfinite(ctx, 0, Infinity, 0, 0, Infinity, 0);
291 setCurrentTransformToNonfinite(ctx, 0, Infinity, 0, 0, Infinity, Infinity);
292 setCurrentTransformToNonfinite(ctx, 0, Infinity, 0, 0, 0, Infinity);
293 setCurrentTransformToNonfinite(ctx, 0, 0, Infinity, Infinity, 0, 0);
294 setCurrentTransformToNonfinite(ctx, 0, 0, Infinity, Infinity, Infinity, 0);
295 setCurrentTransformToNonfinite(ctx, 0, 0, Infinity, Infinity, Infinity, Infinity );
296 setCurrentTransformToNonfinite(ctx, 0, 0, Infinity, Infinity, 0, Infinity);
297 setCurrentTransformToNonfinite(ctx, 0, 0, Infinity, 0, Infinity, 0);
298 setCurrentTransformToNonfinite(ctx, 0, 0, Infinity, 0, Infinity, Infinity);
299 setCurrentTransformToNonfinite(ctx, 0, 0, Infinity, 0, 0, Infinity);
300 setCurrentTransformToNonfinite(ctx, 0, 0, 0, Infinity, Infinity, 0);
301 setCurrentTransformToNonfinite(ctx, 0, 0, 0, Infinity, Infinity, Infinity);
302 setCurrentTransformToNonfinite(ctx, 0, 0, 0, Infinity, 0, Infinity);
303 setCurrentTransformToNonfinite(ctx, 0, 0, 0, 0, Infinity, Infinity);
304 matrix = ctx.currentTransform;
305 shouldBe("matrix.a", "1");
306 shouldBe("matrix.b", "0");
307 shouldBe("matrix.c", "0");
308 shouldBe("matrix.d", "1");
309 shouldBe("matrix.e", "100");
310 shouldBe("matrix.f", "10");
311
312 ctx.fillStyle = 'green';
313 ctx.fillRect(-100, -10, 100, 100);
314
315 imageData = ctx.getImageData(1, 1, 98, 98);
316 imgdata = imageData.data;
317 shouldBe("imgdata[4]", "0");
318 shouldBe("imgdata[5]", "128");
319 shouldBe("imgdata[6]", "0");
OLDNEW
« no previous file with comments | « third_party/WebKit/LayoutTests/fast/canvas/script-tests/canvas-currentColor.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698