# 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
