dom/smil/test/db_smilCSSPaced.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

michael@0 1 /* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
michael@0 2 /* vim: set shiftwidth=4 tabstop=4 autoindent cindent noexpandtab: */
michael@0 3 /* This Source Code Form is subject to the terms of the Mozilla Public
michael@0 4 * License, v. 2.0. If a copy of the MPL was not distributed with this
michael@0 5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
michael@0 6
michael@0 7 /* testcase data for paced-mode animations of CSS properties */
michael@0 8
michael@0 9 // Lists of testcases for re-use across multiple properties of the same type
michael@0 10 var _pacedTestLists =
michael@0 11 {
michael@0 12 color: [
michael@0 13 new AnimTestcasePaced("rgb(2, 4, 6); " +
michael@0 14 "rgb(4, 8, 12); " +
michael@0 15 "rgb(8, 16, 24)",
michael@0 16 { comp0: "rgb(2, 4, 6)",
michael@0 17 comp1_6: "rgb(3, 6, 9)",
michael@0 18 comp1_3: "rgb(4, 8, 12)",
michael@0 19 comp2_3: "rgb(6, 12, 18)",
michael@0 20 comp1: "rgb(8, 16, 24)"
michael@0 21 }),
michael@0 22 new AnimTestcasePaced("rgb(10, 10, 10); " +
michael@0 23 "rgb(20, 10, 8); " +
michael@0 24 "rgb(20, 30, 4)",
michael@0 25 { comp0: "rgb(10, 10, 10)",
michael@0 26 comp1_6: "rgb(15, 10, 9)",
michael@0 27 comp1_3: "rgb(20, 10, 8)",
michael@0 28 comp2_3: "rgb(20, 20, 6)",
michael@0 29 comp1: "rgb(20, 30, 4)"
michael@0 30 }),
michael@0 31 new AnimTestcasePaced("olive; " + // rgb(128, 128, 0)
michael@0 32 "currentColor; " + // rgb(50, 50, 50)
michael@0 33 "rgb(206, 150, 206)",
michael@0 34 { comp0: "rgb(128, 128, 0)",
michael@0 35 comp1_6: "rgb(89, 89, 25)",
michael@0 36 comp1_3: "rgb(50, 50, 50)",
michael@0 37 comp2_3: "rgb(128, 100, 128)",
michael@0 38 comp1: "rgb(206, 150, 206)"
michael@0 39 }),
michael@0 40 ],
michael@0 41 paintServer : [
michael@0 42 // Sanity check: These aren't interpolatable -- they should end up
michael@0 43 // ignoring the calcMode="paced" and falling into discrete-mode.
michael@0 44 new AnimTestcasePaced("url(#gradA); url(#gradB)",
michael@0 45 {
michael@0 46 comp0: "url(\"" + document.URL + "#gradA\") rgb(0, 0, 0)",
michael@0 47 comp1_6: "url(\"" + document.URL + "#gradA\") rgb(0, 0, 0)",
michael@0 48 comp1_3: "url(\"" + document.URL + "#gradA\") rgb(0, 0, 0)",
michael@0 49 comp2_3: "url(\"" + document.URL + "#gradB\") rgb(0, 0, 0)",
michael@0 50 comp1: "url(\"" + document.URL + "#gradB\") rgb(0, 0, 0)"
michael@0 51 },
michael@0 52 "need support for URI-based paints"),
michael@0 53 new AnimTestcasePaced("url(#gradA); url(#gradB); url(#gradC)",
michael@0 54 {
michael@0 55 comp0: "url(\"" + document.URL + "#gradA\") rgb(0, 0, 0)",
michael@0 56 comp1_6: "url(\"" + document.URL + "#gradA\") rgb(0, 0, 0)",
michael@0 57 comp1_3: "url(\"" + document.URL + "#gradB\") rgb(0, 0, 0)",
michael@0 58 comp2_3: "url(\"" + document.URL + "#gradC\") rgb(0, 0, 0)",
michael@0 59 comp1: "url(\"" + document.URL + "#gradC\") rgb(0, 0, 0)"
michael@0 60 },
michael@0 61 "need support for URI-based paints"),
michael@0 62 ],
michael@0 63 lengthNoUnits : [
michael@0 64 new AnimTestcasePaced("2; 0; 4",
michael@0 65 { comp0: "2px",
michael@0 66 comp1_6: "1px",
michael@0 67 comp1_3: "0px",
michael@0 68 comp2_3: "2px",
michael@0 69 comp1: "4px"
michael@0 70 }),
michael@0 71 new AnimTestcasePaced("10; 12; 8",
michael@0 72 { comp0: "10px",
michael@0 73 comp1_6: "11px",
michael@0 74 comp1_3: "12px",
michael@0 75 comp2_3: "10px",
michael@0 76 comp1: "8px"
michael@0 77 }),
michael@0 78 ],
michael@0 79 lengthNoUnitsSVG : [
michael@0 80 new AnimTestcasePaced("2; 0; 4",
michael@0 81 { comp0: "2",
michael@0 82 comp1_6: "1",
michael@0 83 comp1_3: "0",
michael@0 84 comp2_3: "2",
michael@0 85 comp1: "4"
michael@0 86 }),
michael@0 87 new AnimTestcasePaced("10; 12; 8",
michael@0 88 { comp0: "10",
michael@0 89 comp1_6: "11",
michael@0 90 comp1_3: "12",
michael@0 91 comp2_3: "10",
michael@0 92 comp1: "8"
michael@0 93 }),
michael@0 94 ],
michael@0 95 lengthPx : [
michael@0 96 new AnimTestcasePaced("0px; 2px; 6px",
michael@0 97 { comp0: "0px",
michael@0 98 comp1_6: "1px",
michael@0 99 comp1_3: "2px",
michael@0 100 comp2_3: "4px",
michael@0 101 comp1: "6px"
michael@0 102 }),
michael@0 103 ],
michael@0 104 lengthPx : [
michael@0 105 new AnimTestcasePaced("0px; 2px; 6px",
michael@0 106 { comp0: "0px",
michael@0 107 comp1_6: "1px",
michael@0 108 comp1_3: "2px",
michael@0 109 comp2_3: "4px",
michael@0 110 comp1: "6px"
michael@0 111 }),
michael@0 112 new AnimTestcasePaced("10px; 12px; 8px",
michael@0 113 { comp0: "10px",
michael@0 114 comp1_6: "11px",
michael@0 115 comp1_3: "12px",
michael@0 116 comp2_3: "10px",
michael@0 117 comp1: "8px"
michael@0 118 }),
michael@0 119 ],
michael@0 120 lengthPctSVG : [
michael@0 121 new AnimTestcasePaced("5%; 6%; 4%",
michael@0 122 { comp0: "5%",
michael@0 123 comp1_6: "5.5%",
michael@0 124 comp1_3: "6%",
michael@0 125 comp2_3: "5%",
michael@0 126 comp1: "4%"
michael@0 127 }),
michael@0 128 ],
michael@0 129 lengthPxPctSVG : [
michael@0 130 new AnimTestcasePaced("0px; 1%; 6px",
michael@0 131 { comp0: "0px",
michael@0 132 comp1_6: "1px",
michael@0 133 comp1_3: "1%",
michael@0 134 comp2_3: "4px",
michael@0 135 comp1: "6px"
michael@0 136 },
michael@0 137 "need support for interpolating between " +
michael@0 138 "px and percent values"),
michael@0 139 ],
michael@0 140 opacity : [
michael@0 141 new AnimTestcasePaced("0; 0.2; 0.6",
michael@0 142 { comp0: "0",
michael@0 143 comp1_6: "0.1",
michael@0 144 comp1_3: "0.2",
michael@0 145 comp2_3: "0.4",
michael@0 146 comp1: "0.6"
michael@0 147 }),
michael@0 148 new AnimTestcasePaced("0.7; 1.0; 0.4",
michael@0 149 { comp0: "0.7",
michael@0 150 comp1_6: "0.85",
michael@0 151 comp1_3: "1",
michael@0 152 comp2_3: "0.7",
michael@0 153 comp1: "0.4"
michael@0 154 }),
michael@0 155 ],
michael@0 156 rect : [
michael@0 157 new AnimTestcasePaced("rect(2px, 4px, 6px, 8px); " +
michael@0 158 "rect(4px, 8px, 12px, 16px); " +
michael@0 159 "rect(8px, 16px, 24px, 32px)",
michael@0 160 { comp0: "rect(2px, 4px, 6px, 8px)",
michael@0 161 comp1_6: "rect(3px, 6px, 9px, 12px)",
michael@0 162 comp1_3: "rect(4px, 8px, 12px, 16px)",
michael@0 163 comp2_3: "rect(6px, 12px, 18px, 24px)",
michael@0 164 comp1: "rect(8px, 16px, 24px, 32px)"
michael@0 165 }),
michael@0 166 new AnimTestcasePaced("rect(10px, 10px, 10px, 10px); " +
michael@0 167 "rect(20px, 10px, 50px, 8px); " +
michael@0 168 "rect(20px, 30px, 130px, 4px)",
michael@0 169 { comp0: "rect(10px, 10px, 10px, 10px)",
michael@0 170 comp1_6: "rect(15px, 10px, 30px, 9px)",
michael@0 171 comp1_3: "rect(20px, 10px, 50px, 8px)",
michael@0 172 comp2_3: "rect(20px, 20px, 90px, 6px)",
michael@0 173 comp1: "rect(20px, 30px, 130px, 4px)"
michael@0 174 }),
michael@0 175 new AnimTestcasePaced("rect(10px, auto, 10px, 10px); " +
michael@0 176 "rect(20px, auto, 50px, 8px); " +
michael@0 177 "rect(40px, auto, 130px, 4px)",
michael@0 178 { comp0: "rect(10px, auto, 10px, 10px)",
michael@0 179 comp1_6: "rect(15px, auto, 30px, 9px)",
michael@0 180 comp1_3: "rect(20px, auto, 50px, 8px)",
michael@0 181 comp2_3: "rect(30px, auto, 90px, 6px)",
michael@0 182 comp1: "rect(40px, auto, 130px, 4px)"
michael@0 183 }),
michael@0 184 // Paced-mode animation is not supported in these next few cases
michael@0 185 // (Can't compute subcomponent distance between 'auto' & px-values)
michael@0 186 new AnimTestcasePaced("rect(10px, 10px, 10px, auto); " +
michael@0 187 "rect(20px, 10px, 50px, 8px); " +
michael@0 188 "rect(20px, 30px, 130px, 4px)",
michael@0 189 { comp0: "rect(10px, 10px, 10px, auto)",
michael@0 190 comp1_6: "rect(10px, 10px, 10px, auto)",
michael@0 191 comp1_3: "rect(20px, 10px, 50px, 8px)",
michael@0 192 comp2_3: "rect(20px, 30px, 130px, 4px)",
michael@0 193 comp1: "rect(20px, 30px, 130px, 4px)"
michael@0 194 }),
michael@0 195 new AnimTestcasePaced("rect(10px, 10px, 10px, 10px); " +
michael@0 196 "rect(20px, 10px, 50px, 8px); " +
michael@0 197 "auto",
michael@0 198 { comp0: "rect(10px, 10px, 10px, 10px)",
michael@0 199 comp1_6: "rect(10px, 10px, 10px, 10px)",
michael@0 200 comp1_3: "rect(20px, 10px, 50px, 8px)",
michael@0 201 comp2_3: "auto",
michael@0 202 comp1: "auto"
michael@0 203 }),
michael@0 204 new AnimTestcasePaced("auto; " +
michael@0 205 "auto; " +
michael@0 206 "rect(20px, 30px, 130px, 4px)",
michael@0 207 { comp0: "auto",
michael@0 208 comp1_6: "auto",
michael@0 209 comp1_3: "auto",
michael@0 210 comp2_3: "rect(20px, 30px, 130px, 4px)",
michael@0 211 comp1: "rect(20px, 30px, 130px, 4px)"
michael@0 212 }),
michael@0 213 new AnimTestcasePaced("auto; auto; auto",
michael@0 214 { comp0: "auto",
michael@0 215 comp1_6: "auto",
michael@0 216 comp1_3: "auto",
michael@0 217 comp2_3: "auto",
michael@0 218 comp1: "auto"
michael@0 219 }),
michael@0 220 ],
michael@0 221 };
michael@0 222
michael@0 223 // TODO: test more properties here.
michael@0 224 var gPacedBundles =
michael@0 225 [
michael@0 226 new TestcaseBundle(gPropList.clip, _pacedTestLists.rect),
michael@0 227 new TestcaseBundle(gPropList.color, _pacedTestLists.color),
michael@0 228 new TestcaseBundle(gPropList.direction, [
michael@0 229 new AnimTestcasePaced("rtl; ltr; rtl")
michael@0 230 ]),
michael@0 231 new TestcaseBundle(gPropList.fill,
michael@0 232 [].concat(_pacedTestLists.color,
michael@0 233 _pacedTestLists.paintServer)),
michael@0 234 new TestcaseBundle(gPropList.font_size,
michael@0 235 [].concat(_pacedTestLists.lengthNoUnits,
michael@0 236 _pacedTestLists.lengthPx, [
michael@0 237 new AnimTestcasePaced("20%; 24%; 16%",
michael@0 238 { comp0: "10px",
michael@0 239 comp1_6: "11px",
michael@0 240 comp1_3: "12px",
michael@0 241 comp2_3: "10px",
michael@0 242 comp1: "8px"
michael@0 243 }),
michael@0 244 new AnimTestcasePaced("0px; 4%; 6px",
michael@0 245 { comp0: "0px",
michael@0 246 comp1_6: "1px",
michael@0 247 comp1_3: "2px",
michael@0 248 comp2_3: "4px",
michael@0 249 comp1: "6px"
michael@0 250 }),
michael@0 251 ])
michael@0 252 ),
michael@0 253 new TestcaseBundle(gPropList.font_size_adjust, [
michael@0 254 new AnimTestcasePaced("0.2; 0.6; 0.8",
michael@0 255 { comp0: "0.2",
michael@0 256 comp1_6: "0.3",
michael@0 257 comp1_3: "0.4",
michael@0 258 comp2_3: "0.6",
michael@0 259 comp1: "0.8"
michael@0 260 }),
michael@0 261 new AnimTestcasePaced("none; none; 0.5",
michael@0 262 { comp0: "none",
michael@0 263 comp1_6: "none",
michael@0 264 comp1_3: "none",
michael@0 265 comp2_3: "0.5",
michael@0 266 comp1: "0.5"
michael@0 267 }),
michael@0 268 ]),
michael@0 269 new TestcaseBundle(gPropList.font_family, [
michael@0 270 // Sanity check: 'font-family' isn't interpolatable. It should end up
michael@0 271 // ignoring the calcMode="paced" and falling into discrete-mode.
michael@0 272 new AnimTestcasePaced("serif; sans-serif; monospace",
michael@0 273 { comp0: "serif",
michael@0 274 comp1_6: "serif",
michael@0 275 comp1_3: "sans-serif",
michael@0 276 comp2_3: "monospace",
michael@0 277 comp1: "monospace"
michael@0 278 },
michael@0 279 "need support for more font properties"),
michael@0 280 ]),
michael@0 281 new TestcaseBundle(gPropList.opacity, _pacedTestLists.opacity),
michael@0 282 new TestcaseBundle(gPropList.stroke_dasharray,
michael@0 283 [].concat(_pacedTestLists.lengthPctSVG, [
michael@0 284 new AnimTestcasePaced("7, 7, 7; 7, 10, 3; 1, 2, 3",
michael@0 285 { comp0: "7, 7, 7",
michael@0 286 comp1_6: "7, 8.5, 5",
michael@0 287 comp1_3: "7, 10, 3",
michael@0 288 comp2_3: "4, 6, 3",
michael@0 289 comp1: "1, 2, 3"
michael@0 290 }),
michael@0 291 ])),
michael@0 292 new TestcaseBundle(gPropList.stroke_dashoffset,
michael@0 293 [].concat(_pacedTestLists.lengthNoUnitsSVG,
michael@0 294 _pacedTestLists.lengthPx,
michael@0 295 _pacedTestLists.lengthPctSVG,
michael@0 296 _pacedTestLists.lengthPxPctSVG)),
michael@0 297 new TestcaseBundle(gPropList.stroke_width,
michael@0 298 [].concat(_pacedTestLists.lengthNoUnitsSVG,
michael@0 299 _pacedTestLists.lengthPx,
michael@0 300 _pacedTestLists.lengthPctSVG,
michael@0 301 _pacedTestLists.lengthPxPctSVG)),
michael@0 302 // XXXdholbert TODO: test 'stroke-dasharray' once we support animating it
michael@0 303 ];

mercurial