1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
|
# Tests related to SVG Animation (using SMIL) of CSS properties
# XXXdholbert TODO: Test color animation with "color-interpolation: linearRGB"
# (when it's implemented)
# 'color' property, from/to/by with named colors & hex values
== anim-css-color-1-by-ident-hex.svg anim-css-fill-1-ref.svg
== anim-css-color-1-from-by-hex-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) == anim-css-color-1-from-by-ident-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) == anim-css-color-1-from-to-hex-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) == anim-css-color-1-from-to-ident-ident.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) == anim-css-color-1-to-ident-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) == anim-css-color-1-to-ident-ident.svg anim-css-fill-1-ref.svg
# 'color' property, paced calcMode
== anim-css-color-2-paced-rgb.svg anim-css-fill-2-ref.svg
# 'color' property, animating *by* a named color
fuzzy-if(skiaContent,1,580) == anim-css-color-3-by-ident-ident.svg anim-css-fill-3-ref.svg
fuzzy-if(skiaContent,1,580) == anim-css-color-3-from-by-ident-ident.svg anim-css-fill-3-ref.svg
fuzzy-if(skiaContent,1,580) == anim-css-color-3-from-by-rgb-ident.svg anim-css-fill-3-ref.svg
# 'fill' property, from/to/by with named colors & hex values
fuzzy-if(skiaContent,1,550) == anim-css-fill-1-by-ident-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) == anim-css-fill-1-from-by-hex-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) == anim-css-fill-1-from-by-ident-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) == anim-css-fill-1-from-to-hex-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) == anim-css-fill-1-from-to-ident-ident.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) == anim-css-fill-1-to-ident-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) == anim-css-fill-1-to-ident-ident.svg anim-css-fill-1-ref.svg
# 'fill' property, from/to/by, with 'currentColor' keyword
fuzzy-if(skiaContent,1,550) == anim-css-fill-1-by-ident-curcol.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) == anim-css-fill-1-from-by-curcol-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) == anim-css-fill-1-from-by-hex-curcol.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) == anim-css-fill-1-from-to-curcol-hex.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) == anim-css-fill-1-from-to-hex-curcol.svg anim-css-fill-1-ref.svg
fuzzy-if(skiaContent,1,550) == anim-css-fill-1-to-ident-curcol.svg anim-css-fill-1-ref.svg
# 'fill' property, paced calcMode
== anim-css-fill-2-paced-rgb.svg anim-css-fill-2-ref.svg
# 'fill' property, animating *by* a named color
fuzzy-if(skiaContent,1,580) == anim-css-fill-3-by-ident-ident.svg anim-css-fill-3-ref.svg
fuzzy-if(skiaContent,1,580) == anim-css-fill-3-from-by-ident-ident.svg anim-css-fill-3-ref.svg
fuzzy-if(skiaContent,1,580) == anim-css-fill-3-from-by-rgb-ident.svg anim-css-fill-3-ref.svg
# check handling of overflowing color values
# NOTE: The second test fails because we compute "from + by" as the animation
# end-point, and we clamp that final color value (due to bug 515919) and use
# the clamped value for interpolation. That's earlier than the SVG spec wants
# us to clamp -- we're only supposed to clamp *final presentation values*.
# (Reference: SVG 1.1 Appendix F.4)
== anim-css-fill-overflow-1-by.svg anim-css-fill-overflow-1-ref.svg
fails == anim-css-fill-overflow-1-from-by.svg anim-css-fill-overflow-1-ref.svg
# 'fill-opacity' property
fuzzy-if(skiaContent,1,885) == anim-css-fillopacity-1-by.svg anim-css-fillopacity-1-ref.svg
fuzzy-if(skiaContent,1,210) == anim-css-fillopacity-1-from-by.svg anim-css-fillopacity-1-ref.svg
== anim-css-fillopacity-1-from-to.svg anim-css-fillopacity-1-ref.svg
fuzzy-if(skiaContent,1,550) == anim-css-fillopacity-1-to.svg anim-css-fillopacity-1-ref.svg
== anim-css-fillopacity-2-paced.svg anim-css-fillopacity-2-ref.svg
fails == anim-css-fillopacity-3-clamp-big.svg anim-css-fillopacity-3-ref.svg # bug 501188
fuzzy-if(skiaContent,1,365) == anim-css-fillopacity-3-clamp-small.svg anim-css-fillopacity-3-ref.svg
# 'font' shorthand property
== anim-css-font-1.svg anim-css-font-1-ref.svg
# 'font-size' property, from/by/to with pixel values only
== anim-css-fontsize-1-from-by-px-px.svg anim-css-fontsize-1-ref.svg
== anim-css-fontsize-1-from-to-px-px.svg anim-css-fontsize-1-ref.svg
# 'font-size' property (accepts unitless values)
== anim-css-fontsize-1-from-to-no-no.svg anim-css-fontsize-1-ref.svg
== anim-css-fontsize-1-from-to-no-px.svg anim-css-fontsize-1-ref.svg
== anim-css-fontsize-1-from-to-px-no.svg anim-css-fontsize-1-ref.svg
# 'font-size' mapped attribute (accepts unitless values)
== anim-mapped-fontsize-1-from-to-no-no.svg anim-css-fontsize-1-ref.svg
== anim-mapped-fontsize-1-from-to-no-px.svg anim-css-fontsize-1-ref.svg
== anim-mapped-fontsize-1-from-to-px-no.svg anim-css-fontsize-1-ref.svg
# 'font-size' property, from/by/to with percent values
== anim-css-fontsize-1-from-by-pct-pct.svg anim-css-fontsize-1-ref.svg
== anim-css-fontsize-1-from-by-pct-px.svg anim-css-fontsize-1-ref.svg
== anim-css-fontsize-1-from-by-px-pct.svg anim-css-fontsize-1-ref.svg
== anim-css-fontsize-1-from-to-pct-pct.svg anim-css-fontsize-1-ref.svg
== anim-css-fontsize-1-from-to-pct-px.svg anim-css-fontsize-1-ref.svg
== anim-css-fontsize-1-from-to-px-pct.svg anim-css-fontsize-1-ref.svg
# 'font-size' property, with negative addition
== anim-css-fontsize-2-from-by-px-px.svg anim-css-fontsize-2-ref.svg
== anim-css-fontsize-2-from-by-px-em.svg anim-css-fontsize-2-ref.svg
== anim-css-fontsize-2-from-by-em-em.svg anim-css-fontsize-2-ref.svg
# 'stroke-dasharray' property, from/to with pixel values only
fails == anim-css-strokedasharray-1.svg anim-css-strokedasharray-1-ref.svg
# 'stroke-width' property, from/by/to with pixel values only
== anim-css-strokewidth-1-by-px-px.svg anim-css-strokewidth-1-ref.svg
== anim-css-strokewidth-1-from-by-px-px.svg anim-css-strokewidth-1-ref.svg
== anim-css-strokewidth-1-from-to-px-px.svg anim-css-strokewidth-1-ref.svg
== anim-css-strokewidth-1-to-px-px.svg anim-css-strokewidth-1-ref.svg
# 'stroke-width' property, from/by/to with unitless values only
== anim-css-strokewidth-1-by-no-no.svg anim-css-strokewidth-1-ref.svg
== anim-css-strokewidth-1-from-by-no-no.svg anim-css-strokewidth-1-ref.svg
== anim-css-strokewidth-1-from-to-no-no.svg anim-css-strokewidth-1-ref.svg
== anim-css-strokewidth-1-to-no-no.svg anim-css-strokewidth-1-ref.svg
# 'stroke-width' property, from/by/to with percent values
# XXXdholbert the mixed pct + px tests fail right now, because we need calc()
# in order to interpolate between pct and non-pct values, and we don't yet
# support calc() for stroke-width & other SVG-specific properties (Bug 594933).
== anim-css-strokewidth-1-by-pct-pct.svg anim-css-strokewidth-1-ref.svg
fails == anim-css-strokewidth-1-by-pct-px.svg anim-css-strokewidth-1-ref.svg
fails == anim-css-strokewidth-1-by-px-pct.svg anim-css-strokewidth-1-ref.svg
== anim-css-strokewidth-1-from-by-pct-pct.svg anim-css-strokewidth-1-ref.svg
fails == anim-css-strokewidth-1-from-by-pct-px.svg anim-css-strokewidth-1-ref.svg
fails == anim-css-strokewidth-1-from-by-px-pct.svg anim-css-strokewidth-1-ref.svg
== anim-css-strokewidth-1-from-to-pct-pct.svg anim-css-strokewidth-1-ref.svg
fails == anim-css-strokewidth-1-from-to-pct-px.svg anim-css-strokewidth-1-ref.svg
fails == anim-css-strokewidth-1-from-to-px-pct.svg anim-css-strokewidth-1-ref.svg
== anim-css-strokewidth-1-to-pct-pct.svg anim-css-strokewidth-1-ref.svg
fails == anim-css-strokewidth-1-to-pct-px.svg anim-css-strokewidth-1-ref.svg
fails == anim-css-strokewidth-1-to-px-pct.svg anim-css-strokewidth-1-ref.svg
# 'stroke-width' property, from/by/to with em values
== anim-css-strokewidth-1-by-px-em.svg anim-css-strokewidth-1-ref.svg
== anim-css-strokewidth-1-by-em-em.svg anim-css-strokewidth-1-ref.svg
== anim-css-strokewidth-1-by-em-px.svg anim-css-strokewidth-1-ref.svg
== anim-css-strokewidth-1-from-by-px-em.svg anim-css-strokewidth-1-ref.svg
== anim-css-strokewidth-1-from-by-em-em.svg anim-css-strokewidth-1-ref.svg
== anim-css-strokewidth-1-from-by-em-px.svg anim-css-strokewidth-1-ref.svg
== anim-css-strokewidth-1-from-to-px-em.svg anim-css-strokewidth-1-ref.svg
== anim-css-strokewidth-1-from-to-em-em.svg anim-css-strokewidth-1-ref.svg
== anim-css-strokewidth-1-from-to-em-px.svg anim-css-strokewidth-1-ref.svg
== anim-css-strokewidth-1-to-px-em.svg anim-css-strokewidth-1-ref.svg
== anim-css-strokewidth-1-to-em-em.svg anim-css-strokewidth-1-ref.svg
== anim-css-strokewidth-1-to-em-px.svg anim-css-strokewidth-1-ref.svg
# 'stroke-width' property, values-array & paced calc-mode support
== anim-css-strokewidth-2-values-em-em.svg anim-css-strokewidth-2-ref.svg
== anim-css-strokewidth-2-values-em-px.svg anim-css-strokewidth-2-ref.svg
== anim-css-strokewidth-2-values-px-em.svg anim-css-strokewidth-2-ref.svg
fuzzy-if(skiaContent,1,360) == anim-css-strokewidth-2-values-px-px.svg anim-css-strokewidth-2-ref.svg
== anim-css-strokewidth-3-paced.svg anim-css-strokewidth-3-ref.svg
# 'stroke-width' property, negative addition
== anim-css-strokewidth-4-from-by-px-px.svg anim-css-strokewidth-4-ref.svg
== anim-css-strokewidth-4-from-by-px-em.svg anim-css-strokewidth-4-ref.svg
== anim-css-strokewidth-4-from-by-em-em.svg anim-css-strokewidth-4-ref.svg
fuzzy-if(skiaContent,1,170) == anim-css-strokewidth-4-from-by-no-no.svg anim-css-strokewidth-4-ref.svg
# check correct handling of "!important" values
== important-set-1.svg anim-standard-ref.svg
== important-set-2.svg anim-standard-ref.svg
|