Bug 710990: Replace duplicate aStartVal check with aEndVal check, in SVGOrientSMILType::Interpolate. r=jwatt

--HG--
rename : layout/reftests/svg/smil/anim-marker-orient-01.svg => layout/reftests/svg/smil/anim-marker-orient-02.svg
This commit is contained in:
Daniel Holbert 2011-12-19 10:03:45 -08:00
parent 4b76dae543
commit 6cda14be64
3 changed files with 40 additions and 1 deletions

View File

@ -159,7 +159,7 @@ SVGOrientSMILType::Interpolate(const nsSMILValue& aStartVal,
NS_PRECONDITION(aResult.mType == this, "Unexpected result type.");
if (aStartVal.mU.mOrient.mOrientType != nsIDOMSVGMarkerElement::SVG_MARKER_ORIENT_ANGLE ||
aStartVal.mU.mOrient.mOrientType != nsIDOMSVGMarkerElement::SVG_MARKER_ORIENT_ANGLE) {
aEndVal.mU.mOrient.mOrientType != nsIDOMSVGMarkerElement::SVG_MARKER_ORIENT_ANGLE) {
// TODO: it would be nice to be able to handle auto angles too.
return NS_ERROR_FAILURE;
}

View File

@ -0,0 +1,38 @@
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
class="reftest-wait"
onload="setTimeAndSnapshot(4, true)">
<title>Test animation of the "orient" attribute of the "marker" element</title>
<script xlink:href="smil-util.js" type="text/javascript"/>
<rect width="100%" height="100%" fill="lime"/>
<!-- Check that partway through the simple duration, the orient attribute is
still stuck at the initial value ("-90deg"), since we currently can't
interpolate between angle-values and "auto" -->
<marker id="marker_1" markerWidth="50" markerHeight="50"
markerUnits="userSpaceOnUse">
<rect width="20" height="20" fill="lime"/>
<animate attributeName="orient"
calcMode="linear"
begin="0s" dur="10s"
from="-90deg" to="auto"
fill="freeze"/>
</marker>
<rect width="20" height="20" fill="red"/>
<line x2="0" y2="20" marker-end="url(#marker_1)" stroke="transparent"/>
<!-- Check that at the end of the simple duration the orient attribute has
an animated value of "auto" (which in this case corresponds to 90deg) -->
<marker id="marker_2" markerWidth="50" markerHeight="50"
markerUnits="userSpaceOnUse">
<rect width="20" height="20" fill="lime"/>
<animate attributeName="orient"
calcMode="linear"
begin="0s" dur="4s"
from="-45deg" to="auto"
fill="freeze"/>
</marker>
<rect x="20" width="20" height="20" fill="red"/>
<line x1="40" y1="-20" x2="40" y2="0" marker-end="url(#marker_2)"
stroke="transparent"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -111,6 +111,7 @@ fails == anim-fillcolor-1.svg anim-standard-ref.svg # bug 436296
# animate some <angle> attributes:
== anim-marker-orient-01.svg lime.svg
== anim-marker-orient-02.svg lime.svg
#animate points list:
== anim-polygon-points-01.svg anim-polygon-points-01-ref.svg