dom/smil/test/db_smilCSSFromTo.js

branch
TOR_BUG_9701
changeset 15
b8a032363ba2
equal deleted inserted replaced
-1:000000000000 0:e338bd4e3221
1 /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set ts=2 sw=2 sts=2 et: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6
7 /* testcase data for simple "from-to" animations of CSS properties */
8
9 // NOTE: This js file requires db_smilCSSPropertyList.js
10
11 // NOTE: I'm Including 'inherit' and 'currentColor' as interpolatable values.
12 // According to SVG Mobile 1.2 section 16.2.9, "keywords such as inherit which
13 // yield a numeric computed value may be included in the values list for an
14 // interpolated animation".
15
16 // Path of test URL (stripping off final slash + filename), for use in
17 // generating computed value of 'cursor' property
18 var _testPath = document.URL.substring(0, document.URL.lastIndexOf('/'));
19
20 // Lists of testcases for re-use across multiple properties of the same type
21 var _fromToTestLists = {
22 color: [
23 new AnimTestcaseFromTo("rgb(100, 100, 100)", "rgb(200, 200, 200)",
24 { midComp: "rgb(150, 150, 150)" }),
25 new AnimTestcaseFromTo("#F02000", "#0080A0",
26 { fromComp: "rgb(240, 32, 0)",
27 midComp: "rgb(120, 80, 80)",
28 toComp: "rgb(0, 128, 160)" }),
29 new AnimTestcaseFromTo("crimson", "lawngreen",
30 { fromComp: "rgb(220, 20, 60)",
31 midComp: "rgb(172, 136, 30)",
32 toComp: "rgb(124, 252, 0)" }),
33 new AnimTestcaseFromTo("currentColor", "rgb(100, 100, 100)",
34 { fromComp: "rgb(50, 50, 50)",
35 midComp: "rgb(75, 75, 75)" }),
36 ],
37 colorFromInheritBlack: [
38 new AnimTestcaseFromTo("inherit", "rgb(200, 200, 200)",
39 { fromComp: "rgb(0, 0, 0)",
40 midComp: "rgb(100, 100, 100)" }),
41 ],
42 colorFromInheritWhite: [
43 new AnimTestcaseFromTo("inherit", "rgb(205, 205, 205)",
44 { fromComp: "rgb(255, 255, 255)",
45 midComp: "rgb(230, 230, 230)" }),
46 ],
47 paintServer: [
48 new AnimTestcaseFromTo("none", "none"),
49 new AnimTestcaseFromTo("none", "blue", { toComp : "rgb(0, 0, 255)" }),
50 new AnimTestcaseFromTo("rgb(50, 50, 50)", "none"),
51 new AnimTestcaseFromTo("url(#gradA)", "url(#gradB) currentColor",
52 { fromComp: "url(\"" + document.URL +
53 "#gradA\") rgb(0, 0, 0)",
54 toComp: "url(\"" + document.URL +
55 "#gradB\") rgb(50, 50, 50)" },
56 "need support for URI-based paints"),
57 new AnimTestcaseFromTo("url(#gradA) orange", "url(#gradB)",
58 { fromComp: "url(\"" + document.URL +
59 "#gradA\") rgb(255, 165, 0)",
60 toComp: "url(\"" + document.URL +
61 "#gradB\") rgb(0, 0, 0)" },
62 "need support for URI-based paints"),
63 new AnimTestcaseFromTo("url(#no_grad)", "url(#gradB)",
64 { fromComp: "url(\"" + document.URL +
65 "#no_grad\") " + "rgb(0, 0, 0)",
66 toComp: "url(\"" + document.URL +
67 "#gradB\") rgb(0, 0, 0)" },
68 "need support for URI-based paints"),
69 new AnimTestcaseFromTo("url(#no_grad) rgb(1,2,3)", "url(#gradB) blue",
70 { fromComp: "url(\"" + document.URL +
71 "#no_grad\") " + "rgb(1, 2, 3)",
72 toComp: "url(\"" + document.URL +
73 "#gradB\") rgb(0, 0, 255)" },
74 "need support for URI-based paints"),
75 ],
76 lengthNoUnits: [
77 new AnimTestcaseFromTo("0", "20", { fromComp: "0px",
78 midComp: "10px",
79 toComp: "20px"}),
80 new AnimTestcaseFromTo("50", "0", { fromComp: "50px",
81 midComp: "25px",
82 toComp: "0px"}),
83 new AnimTestcaseFromTo("30", "80", { fromComp: "30px",
84 midComp: "55px",
85 toComp: "80px"}),
86 ],
87 lengthNoUnitsSVG: [
88 new AnimTestcaseFromTo("0", "20", { fromComp: "0",
89 midComp: "10",
90 toComp: "20"}),
91 new AnimTestcaseFromTo("50", "0", { fromComp: "50",
92 midComp: "25",
93 toComp: "0"}),
94 new AnimTestcaseFromTo("30", "80", { fromComp: "30",
95 midComp: "55",
96 toComp: "80"}),
97 ],
98 lengthPx: [
99 new AnimTestcaseFromTo("0px", "12px", { fromComp: "0px",
100 midComp: "6px"}),
101 new AnimTestcaseFromTo("16px", "0px", { midComp: "8px",
102 toComp: "0px"}),
103 new AnimTestcaseFromTo("10px", "20px", { midComp: "15px"}),
104 new AnimTestcaseFromTo("41px", "1px", { midComp: "21px"}),
105 ],
106 lengthPctSVG: [
107 new AnimTestcaseFromTo("20.5%", "0.5%", { midComp: "10.5%" }),
108 ],
109 lengthPxPctSVG: [
110 new AnimTestcaseFromTo("10px", "10%", { midComp: "15px"},
111 "need support for interpolating between " +
112 "px and percent values"),
113 ],
114 opacity: [
115 new AnimTestcaseFromTo("1", "0", { midComp: "0.5" }),
116 new AnimTestcaseFromTo("0.2", "0.12", { midComp: "0.16" }),
117 new AnimTestcaseFromTo("0.5", "0.7", { midComp: "0.6" }),
118 new AnimTestcaseFromTo("0.5", "inherit",
119 { midComp: "0.75", toComp: "1" }),
120 // Make sure we don't clamp out-of-range values before interpolation
121 new AnimTestcaseFromTo("0.2", "1.2",
122 { midComp: "0.7", toComp: "1" },
123 "opacities with abs val >1 get clamped too early"),
124 new AnimTestcaseFromTo("-0.2", "0.6",
125 { fromComp: "0", midComp: "0.2" }),
126 new AnimTestcaseFromTo("-1.2", "1.6",
127 { fromComp: "0", midComp: "0.2", toComp: "1" },
128 "opacities with abs val >1 get clamped too early"),
129 new AnimTestcaseFromTo("-0.6", "1.4",
130 { fromComp: "0", midComp: "0.4", toComp: "1" },
131 "opacities with abs val >1 get clamped too early"),
132 ],
133 URIsAndNone: [
134 new AnimTestcaseFromTo("url(#idA)", "url(#idB)",
135 { fromComp: "url(\"" + document.URL + "#idA\")",
136 toComp: "url(\"" + document.URL + "#idB\")"}),
137 new AnimTestcaseFromTo("none", "url(#idB)",
138 { toComp: "url(\"" + document.URL + "#idB\")"}),
139 new AnimTestcaseFromTo("url(#idB)", "inherit",
140 { fromComp: "url(\"" + document.URL + "#idB\")",
141 toComp: "none"}),
142 ],
143 };
144
145 // List of attribute/testcase-list bundles to be tested
146 var gFromToBundles = [
147 new TestcaseBundle(gPropList.clip, [
148 new AnimTestcaseFromTo("rect(1px, 2px, 3px, 4px)",
149 "rect(11px, 22px, 33px, 44px)",
150 { midComp: "rect(6px, 12px, 18px, 24px)" }),
151 new AnimTestcaseFromTo("rect(1px, auto, 3px, 4px)",
152 "rect(11px, auto, 33px, 44px)",
153 { midComp: "rect(6px, auto, 18px, 24px)" }),
154 new AnimTestcaseFromTo("auto", "auto"),
155 new AnimTestcaseFromTo("rect(auto, auto, auto, auto)",
156 "rect(auto, auto, auto, auto)"),
157 // Interpolation not supported in these next cases (with auto --> px-value)
158 new AnimTestcaseFromTo("rect(1px, auto, 3px, auto)",
159 "rect(11px, auto, 33px, 44px)"),
160 new AnimTestcaseFromTo("rect(1px, 2px, 3px, 4px)",
161 "rect(11px, auto, 33px, 44px)"),
162 new AnimTestcaseFromTo("rect(1px, 2px, 3px, 4px)", "auto"),
163 new AnimTestcaseFromTo("auto", "rect(1px, 2px, 3px, 4px)"),
164 ]),
165 new TestcaseBundle(gPropList.clip_path, _fromToTestLists.URIsAndNone),
166 new TestcaseBundle(gPropList.clip_rule, [
167 new AnimTestcaseFromTo("nonzero", "evenodd"),
168 new AnimTestcaseFromTo("evenodd", "inherit", { toComp: "nonzero" }),
169 ]),
170 new TestcaseBundle(gPropList.color,
171 [].concat(_fromToTestLists.color, [
172 // Note: inherited value is rgb(50, 50, 50) (set on <svg>)
173 new AnimTestcaseFromTo("inherit", "rgb(200, 200, 200)",
174 { fromComp: "rgb(50, 50, 50)",
175 midComp: "rgb(125, 125, 125)" }),
176 ])),
177 new TestcaseBundle(gPropList.color_interpolation, [
178 new AnimTestcaseFromTo("sRGB", "auto", { fromComp: "srgb" }),
179 new AnimTestcaseFromTo("inherit", "linearRGB",
180 { fromComp: "srgb", toComp: "linearrgb" }),
181 ]),
182 new TestcaseBundle(gPropList.color_interpolation_filters, [
183 new AnimTestcaseFromTo("sRGB", "auto", { fromComp: "srgb" }),
184 new AnimTestcaseFromTo("auto", "inherit",
185 { toComp: "linearrgb" }),
186 ]),
187 new TestcaseBundle(gPropList.cursor, [
188 new AnimTestcaseFromTo("crosshair", "move"),
189 new AnimTestcaseFromTo("url('a.cur'), url('b.cur'), nw-resize", "sw-resize",
190 { fromComp: "url(\"" + _testPath + "/a.cur\"), " +
191 "url(\"" + _testPath + "/b.cur\"), " +
192 "nw-resize"}),
193 ]),
194 new TestcaseBundle(gPropList.direction, [
195 new AnimTestcaseFromTo("ltr", "rtl"),
196 new AnimTestcaseFromTo("rtl", "inherit"),
197 ]),
198 new TestcaseBundle(gPropList.display, [
199 // I'm not testing the "inherit" value for "display", because part of
200 // my test runs with "display: none" on everything, and so the
201 // inherited value isn't always the same. (i.e. the computed value
202 // of 'inherit' will be different in different tests)
203 new AnimTestcaseFromTo("block", "table-cell"),
204 new AnimTestcaseFromTo("inline", "inline-table"),
205 new AnimTestcaseFromTo("table-row", "none"),
206 ]),
207 new TestcaseBundle(gPropList.dominant_baseline, [
208 new AnimTestcaseFromTo("use-script", "no-change"),
209 new AnimTestcaseFromTo("reset-size", "ideographic"),
210 new AnimTestcaseFromTo("alphabetic", "hanging"),
211 new AnimTestcaseFromTo("mathematical", "central"),
212 new AnimTestcaseFromTo("middle", "text-after-edge"),
213 new AnimTestcaseFromTo("text-before-edge", "auto"),
214 new AnimTestcaseFromTo("use-script", "inherit", { toComp: "auto" } ),
215 ]),
216 // NOTE: Mozilla doesn't currently support "enable-background", but I'm
217 // testing it here in case we ever add support for it, because it's
218 // explicitly not animatable in the SVG spec.
219 new TestcaseBundle(gPropList.enable_background, [
220 new AnimTestcaseFromTo("new", "accumulate"),
221 ]),
222 new TestcaseBundle(gPropList.fill,
223 [].concat(_fromToTestLists.color,
224 _fromToTestLists.paintServer,
225 _fromToTestLists.colorFromInheritBlack)),
226 new TestcaseBundle(gPropList.fill_opacity, _fromToTestLists.opacity),
227 new TestcaseBundle(gPropList.fill_rule, [
228 new AnimTestcaseFromTo("nonzero", "evenodd"),
229 new AnimTestcaseFromTo("evenodd", "inherit", { toComp: "nonzero" }),
230 ]),
231 new TestcaseBundle(gPropList.filter, _fromToTestLists.URIsAndNone),
232 new TestcaseBundle(gPropList.flood_color,
233 [].concat(_fromToTestLists.color,
234 _fromToTestLists.colorFromInheritBlack)),
235 new TestcaseBundle(gPropList.flood_opacity, _fromToTestLists.opacity),
236 new TestcaseBundle(gPropList.font, [
237 // NOTE: 'line-height' is hard-wired at 10px in test_smilCSSFromTo.xhtml
238 // because if it's not explicitly set, its value varies across platforms.
239 // NOTE: System font values can't be tested here, because their computed
240 // values vary from platform to platform. However, they are tested
241 // visually, in the reftest "anim-css-font-1.svg"
242 new AnimTestcaseFromTo("10px serif", "30px serif",
243 { fromComp: "normal normal 400 10px / 10px serif",
244 toComp: "normal normal 400 30px / 10px serif"}),
245 new AnimTestcaseFromTo("10px serif", "30px sans-serif",
246 { fromComp: "normal normal 400 10px / 10px serif",
247 toComp: "normal normal 400 30px / 10px sans-serif"}),
248 new AnimTestcaseFromTo("1px / 90px cursive", "100px monospace",
249 { fromComp: "normal normal 400 1px / 10px cursive",
250 toComp: "normal normal 400 100px / 10px monospace"}),
251 new AnimTestcaseFromTo("italic small-caps 200 1px cursive",
252 "100px monospace",
253 { fromComp: "italic small-caps 200 1px / 10px cursive",
254 toComp: "normal normal 400 100px / 10px monospace"}),
255 new AnimTestcaseFromTo("oblique normal 200 30px / 10px cursive",
256 "normal small-caps 800 40px / 10px serif"),
257 ]),
258 new TestcaseBundle(gPropList.font_family, [
259 new AnimTestcaseFromTo("serif", "sans-serif"),
260 new AnimTestcaseFromTo("cursive", "monospace"),
261 ]),
262 new TestcaseBundle(gPropList.font_size,
263 [].concat(_fromToTestLists.lengthNoUnits,
264 _fromToTestLists.lengthPx, [
265 new AnimTestcaseFromTo("10px", "40%", { midComp: "15px", toComp: "20px" }),
266 new AnimTestcaseFromTo("160%", "80%",
267 { fromComp: "80px",
268 midComp: "60px",
269 toComp: "40px"}),
270 ])),
271 new TestcaseBundle(gPropList.font_size_adjust, [
272 new AnimTestcaseFromTo("0.9", "0.1", { midComp: "0.5" }),
273 new AnimTestcaseFromTo("0.5", "0.6", { midComp: "0.55" }),
274 new AnimTestcaseFromTo("none", "0.4"),
275 ]),
276 new TestcaseBundle(gPropList.font_stretch, [
277 new AnimTestcaseFromTo("normal", "wider", {},
278 "need support for animating between " +
279 "relative 'font-stretch' values"),
280 new AnimTestcaseFromTo("narrower", "ultra-condensed", {},
281 "need support for animating between " +
282 "relative 'font-stretch' values"),
283 new AnimTestcaseFromTo("ultra-condensed", "condensed",
284 { midComp: "extra-condensed" }),
285 new AnimTestcaseFromTo("semi-condensed", "semi-expanded",
286 { midComp: "normal" }),
287 new AnimTestcaseFromTo("expanded", "ultra-expanded",
288 { midComp: "extra-expanded" }),
289 new AnimTestcaseFromTo("ultra-expanded", "inherit",
290 { midComp: "expanded", toComp: "normal" }),
291 ]),
292 new TestcaseBundle(gPropList.font_style, [
293 new AnimTestcaseFromTo("italic", "inherit", { toComp: "normal" }),
294 new AnimTestcaseFromTo("normal", "italic"),
295 new AnimTestcaseFromTo("italic", "oblique"),
296 new AnimTestcaseFromTo("oblique", "normal"),
297 ]),
298 new TestcaseBundle(gPropList.font_variant, [
299 new AnimTestcaseFromTo("inherit", "small-caps", { fromComp: "normal" }),
300 new AnimTestcaseFromTo("small-caps", "normal"),
301 ]),
302 new TestcaseBundle(gPropList.font_weight, [
303 new AnimTestcaseFromTo("100", "900", { midComp: "500" }),
304 new AnimTestcaseFromTo("700", "100", { midComp: "400" }),
305 new AnimTestcaseFromTo("inherit", "200",
306 { fromComp: "400", midComp: "300" }),
307 new AnimTestcaseFromTo("normal", "bold",
308 { fromComp: "400", midComp: "500", toComp: "700" }),
309 new AnimTestcaseFromTo("lighter", "bolder", {},
310 "need support for animating between " +
311 "relative 'font-weight' values"),
312 ]),
313 // NOTE: Mozilla doesn't currently support "glyph-orientation-horizontal" or
314 // "glyph-orientation-vertical", but I'm testing them here in case we ever
315 // add support for them, because they're explicitly not animatable in the SVG
316 // spec.
317 new TestcaseBundle(gPropList.glyph_orientation_horizontal,
318 [ new AnimTestcaseFromTo("45deg", "60deg") ]),
319 new TestcaseBundle(gPropList.glyph_orientation_vertical,
320 [ new AnimTestcaseFromTo("45deg", "60deg") ]),
321 new TestcaseBundle(gPropList.image_rendering, [
322 new AnimTestcaseFromTo("auto", "optimizeQuality",
323 { toComp: "optimizequality" }),
324 new AnimTestcaseFromTo("optimizeQuality", "optimizeSpeed",
325 { fromComp: "optimizequality",
326 toComp: "optimizespeed" }),
327 ]),
328 new TestcaseBundle(gPropList.letter_spacing,
329 [].concat(_fromToTestLists.lengthNoUnits,
330 _fromToTestLists.lengthPx,
331 _fromToTestLists.lengthPxPctSVG)),
332 new TestcaseBundle(gPropList.letter_spacing,
333 _fromToTestLists.lengthPctSVG,
334 "pct->pct animations don't currently work for " +
335 "*-spacing properties"),
336 new TestcaseBundle(gPropList.lighting_color,
337 [].concat(_fromToTestLists.color,
338 _fromToTestLists.colorFromInheritWhite)),
339 new TestcaseBundle(gPropList.marker, _fromToTestLists.URIsAndNone),
340 new TestcaseBundle(gPropList.marker_end, _fromToTestLists.URIsAndNone),
341 new TestcaseBundle(gPropList.marker_mid, _fromToTestLists.URIsAndNone),
342 new TestcaseBundle(gPropList.marker_start, _fromToTestLists.URIsAndNone),
343 new TestcaseBundle(gPropList.mask, _fromToTestLists.URIsAndNone),
344 new TestcaseBundle(gPropList.opacity, _fromToTestLists.opacity),
345 new TestcaseBundle(gPropList.overflow, [
346 new AnimTestcaseFromTo("auto", "visible"),
347 new AnimTestcaseFromTo("inherit", "visible", { fromComp: "hidden" }),
348 new AnimTestcaseFromTo("scroll", "auto"),
349 ]),
350 new TestcaseBundle(gPropList.pointer_events, [
351 new AnimTestcaseFromTo("visibleFill", "stroke",
352 { fromComp: "visiblefill" }),
353 new AnimTestcaseFromTo("none", "visibleStroke",
354 { toComp: "visiblestroke" }),
355 ]),
356 new TestcaseBundle(gPropList.shape_rendering, [
357 new AnimTestcaseFromTo("auto", "optimizeSpeed",
358 { toComp: "optimizespeed" }),
359 new AnimTestcaseFromTo("crispEdges", "geometricPrecision",
360 { fromComp: "crispedges",
361 toComp: "geometricprecision" }),
362 ]),
363 new TestcaseBundle(gPropList.stop_color,
364 [].concat(_fromToTestLists.color,
365 _fromToTestLists.colorFromInheritBlack)),
366 new TestcaseBundle(gPropList.stop_opacity, _fromToTestLists.opacity),
367 new TestcaseBundle(gPropList.stroke,
368 [].concat(_fromToTestLists.color,
369 _fromToTestLists.paintServer, [
370 // Note: inherited value is "none" (the default for "stroke" property)
371 new AnimTestcaseFromTo("inherit", "rgb(200, 200, 200)",
372 { fromComp: "none"})])),
373 new TestcaseBundle(gPropList.stroke_dasharray,
374 [].concat(_fromToTestLists.lengthPctSVG,
375 [
376 new AnimTestcaseFromTo("inherit", "20", { fromComp: "none"}),
377 new AnimTestcaseFromTo("1", "none"),
378 new AnimTestcaseFromTo("10", "20", { midComp: "15"}),
379 new AnimTestcaseFromTo("1", "2, 3", { fromComp: "1, 1",
380 midComp: "1.5, 2"}),
381 new AnimTestcaseFromTo("2, 8", "6", { midComp: "4, 7"}),
382 new AnimTestcaseFromTo("1, 3", "1, 3, 5, 7, 9",
383 { fromComp: "1, 3, 1, 3, 1, 3, 1, 3, 1, 3",
384 midComp: "1, 3, 3, 5, 5, 2, 2, 4, 4, 6"}),
385 ])),
386 new TestcaseBundle(gPropList.stroke_dashoffset,
387 [].concat(_fromToTestLists.lengthNoUnitsSVG,
388 _fromToTestLists.lengthPx,
389 _fromToTestLists.lengthPxPctSVG,
390 _fromToTestLists.lengthPctSVG)),
391 new TestcaseBundle(gPropList.stroke_linecap, [
392 new AnimTestcaseFromTo("butt", "round"),
393 new AnimTestcaseFromTo("round", "square"),
394 ]),
395 new TestcaseBundle(gPropList.stroke_linejoin, [
396 new AnimTestcaseFromTo("miter", "round"),
397 new AnimTestcaseFromTo("round", "bevel"),
398 ]),
399 new TestcaseBundle(gPropList.stroke_miterlimit, [
400 new AnimTestcaseFromTo("1", "2", { midComp: "1.5" }),
401 new AnimTestcaseFromTo("20.1", "10.1", { midComp: "15.1" }),
402 ]),
403 new TestcaseBundle(gPropList.stroke_opacity, _fromToTestLists.opacity),
404 new TestcaseBundle(gPropList.stroke_width,
405 [].concat(_fromToTestLists.lengthNoUnitsSVG,
406 _fromToTestLists.lengthPx,
407 _fromToTestLists.lengthPxPctSVG,
408 _fromToTestLists.lengthPctSVG, [
409 new AnimTestcaseFromTo("inherit", "7px",
410 { fromComp: "1px", midComp: "4px"}),
411 ])),
412 new TestcaseBundle(gPropList.text_anchor, [
413 new AnimTestcaseFromTo("start", "middle"),
414 new AnimTestcaseFromTo("middle", "end"),
415 ]),
416 new TestcaseBundle(gPropList.text_decoration, [
417 new AnimTestcaseFromTo("none", "underline"),
418 new AnimTestcaseFromTo("overline", "line-through"),
419 new AnimTestcaseFromTo("blink", "underline"),
420 ]),
421 new TestcaseBundle(gPropList.text_rendering, [
422 new AnimTestcaseFromTo("auto", "optimizeSpeed",
423 { toComp: "optimizespeed" }),
424 new AnimTestcaseFromTo("optimizeSpeed", "geometricPrecision",
425 { fromComp: "optimizespeed",
426 toComp: "geometricprecision" }),
427 new AnimTestcaseFromTo("geometricPrecision", "optimizeLegibility",
428 { fromComp: "geometricprecision",
429 toComp: "optimizelegibility" }),
430 ]),
431 new TestcaseBundle(gPropList.unicode_bidi, [
432 new AnimTestcaseFromTo("embed", "bidi-override"),
433 ]),
434 new TestcaseBundle(gPropList.vector_effect, [
435 new AnimTestcaseFromTo("none", "non-scaling-stroke"),
436 ]),
437 new TestcaseBundle(gPropList.visibility, [
438 new AnimTestcaseFromTo("visible", "hidden"),
439 new AnimTestcaseFromTo("hidden", "collapse"),
440 ]),
441 new TestcaseBundle(gPropList.word_spacing,
442 [].concat(_fromToTestLists.lengthNoUnits,
443 _fromToTestLists.lengthPx,
444 _fromToTestLists.lengthPxPctSVG)),
445 new TestcaseBundle(gPropList.word_spacing,
446 _fromToTestLists.lengthPctSVG,
447 "pct->pct animations don't currently work for " +
448 "*-spacing properties"),
449 // NOTE: Mozilla doesn't currently support "writing-mode", but I'm
450 // testing it here in case we ever add support for it, because it's
451 // explicitly not animatable in the SVG spec.
452 new TestcaseBundle(gPropList.writing_mode, [
453 new AnimTestcaseFromTo("lr", "rl"),
454 ]),
455 ];

mercurial