According to the spec, if one of the matrices for transform interpolation is
non-invertible, the used animation function must fall-back to a discrete
animation. Add wpt tests so we can ensure the web compability for this behavior.
Note that we don't add 'discrete' type for transform property in property-list.js.
Because the 'discrete' type also tests discrete addition and accumulation,
however, the fallback behavior is just for interpolation and accumulation, not
for addition. So, we add tests in each part of transformListType in property-types.js.
One test is failing in Gecko, so annotate it for Gecko.
MozReview-Commit-ID: 3JGvgqbBqZp
This test aims for forcing the two mismatched transforms to be decomposed into
matrix3d before interpolation. To do so, we need to:
1. make 'From' and 'To' to be two mismatched transforms,
2. at least one of the two transforms has to be a 3D transform.
In this way, we not only test the interpolation, but also test the correctness
of 3D matrix decomposition.
MozReview-Commit-ID: FAKu6GFVZRm
This includes stroke-{opacity, miterlimit, stroke-dasharray}.
In this patch, we added opacityType to enabled stroke-opacity's
animation tests. With the newly added opacityType, we should be
able to test other opacity like properties as well.
Re-use existing positiveNumberType for stroke-miterlimit.
As for stroke-dasharray, we add a separated type specifically for it. Note
that we haven't supported unitless length in servo and stylo yet, so I didn't
add tests for length. We should add some once we support unitless length
in servo and stylo.
MozReview-Commit-ID: HIUSyvKA2G3
Since lengthPairType and positionType share the same testing logics, we shall
just reuse lengthPairType::{testInterpolation, testAddition} for positionType.
MozReview-Commit-ID: 1nBBHmTB3U9
So far, we don't have a type to test anamations of a pair of length.
Since border-spacing consists two absolute lengths, we shall add this
new type.
MozReview-Commit-ID: Bo8VMWPLDHc
These should be part of the tests for the transformed distance since that is
currently the only place where they can occur.
This patch also revises the test descriptions somewhat to make it clearer what
is being tested.
MozReview-Commit-ID: D4YfAiZUBYR
The purpose of these tests appears to be to check that a linear-equivalent
cubic-bezier timing function (e.g. 'cubic-bezier(0, 0, 0, 0)') does not affect
the result such as clamping values out of the [0, 1] range.
This test really is testing the calculation of the 'transformed distance' in
the "The effect value of a keyframe effect" so we move the test there and
rework it to more clearly test what it is intended to cover.
MozReview-Commit-ID: 9sEr7MlVZKL
The file naming here is based on the existing effect-value-context.html file,
i.e. we break up all the tests for the calculation the effect value into
separate files named effect-value-***.html.
MozReview-Commit-ID: LY46vX3mHh7
This includes some failure test cases:
1) Color interpolation with overflowed colors.
Additive color needs to be with overflowed color components that are produced
by additive calculation. For example:
an additive color animation between rgb(100, 100, 100) and rgb(200, 200, 200)
on rgb(100, 100, 100) element should be an animation of colors;
from rgb(200, 200, 200) to rgb(300, 300, 300).
This will be fixed in the next patch (part 8).
2) All transform tests.
Additive transform list has to be concatinated, it will be done in a subsequent
patch (part 9).
MozReview-Commit-ID: 5OoT6icVMcC