blob: 2e6def46058b03e454735519297f28be8395b656 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--======================================================================-->
<!--= Copyright 2004 World Wide Web Consortium, (Massachusetts =-->
<!--= Institute of Technology, Institut National de Recherche en =-->
<!--= Informatique et en Automatique, Keio University). All Rights =-->
<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
<!--======================================================================--><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" baseProfile="tiny" id="svg-root" width="100%" height="100%" viewBox="0 0 480 360">
<SVGTestCase xmlns:testcase="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" reviewer="CN" owner="VH" desc="Basic tests on the min attribute" status="accepted" version="$Revision: 1.7 $" testname="$RCSfile: animate-elem-65-t.svg,v $">
<OperatorScript>
<Paragraph>
This tests performs basic tests on the min attribute. The test is based
on the SMIL specification at:
http://www.w3.org/TR/smil20/smil-timing.html#Timing-MinMax.
</Paragraph>
<Paragraph>
Each row in the test shows different rectangles subject to &lt;set&gt;
animations with different configurations with regards to the min
attribute. For each row but the last one, the animation should be active
during the first 5 seconds of the animations where the red rectangle
should show in the right column. At five seconds into the animation,
all the rectangles should move to their left position.
</Paragraph>
<Paragraph>
On the first row, the &lt;set&gt; animation has a (0s &lt;= t &lt; 5s) active duration
and no min attribute so the actual active duration is (0s &lt;= t &lt; 5s).
The first row shows a second rectangle with a &lt;set&gt; animation with
the same configuration except that the min attribute value is set to
'media'. Because the &lt;set&gt; element does not define a media, the
behavior should be as if the attribute was not specified.
</Paragraph>
<Paragraph>
On the second row, the &lt;set&gt; animation has a (0s &lt;= t &lt; 5s) active duration
and a min attribute set to '-6s'. That value is invalid for min and, as
per the specification, the behavior should be as if the attribute was not
specified. Consequently, the behavior is as for the previous row and
the actual active duration is (0s &lt;= t &lt; 5s).
</Paragraph>
<Paragraph>
On the third row, the &lt;set&gt; animation has a (0s &lt;= t &lt; 5s) active duration
and a min attribute set to '3s'. The min value is less than the active
duration, so the min attribute does not actually constrain the active duration.
</Paragraph>
<Paragraph>
On the fourth row, the &lt;set&gt; animation has a (0s &lt;= t &lt; 2s) initial active duration,
an indefinite simple duration (dur is set to indefinite) and a min attribute set to '3s'.
Because the initial active duration is less than the min attribute and because the
simple duration is greater than the min value, the animation is active for the
(min constrained) active duration, i.e., (0s &lt;= t &lt; 5s).
</Paragraph>
<Paragraph>
On the fifth row, the &lt;set&gt; animation has a (0s &lt;= t &lt; 2s) initial active duration,
an (0s &lt;= t &lt; 7s) repeat duration and a 5s min attribute value. Because the initial
active duration is less than the min attribute and because the repeat duration is greater
than the min value, the animation active for the (min constrained) active duration,
i.e., (0s &lt;= t &lt; 5s).
</Paragraph>
<Paragraph>
On the sixth row, the &lt;set&gt; animation has a (0s &lt;= t &lt; 2s) initial active duration,
an (0s &lt;= t &lt; 5s) repeat duration and an 8s min attribute value. Because the initial
active duration is less than the min attribute and because the repeat duration is
less than the min value (5s &lt; 8s) and because the fill attribute is set to
'remove' on the &lt;set&gt; animation, the animation's active duration is (0s &lt;= t &lt; 5s).
</Paragraph>
<Paragraph>
On the seventh row, the &lt;set&gt; animation has a (0s &lt;= t &lt; 2s) initial active duration,
a (0s &lt;= t &lt; 5s) repeat duration and an 8s min attribute value. Because the initial
active duration is less than the min attribute and because the repeat duration is
less than the min value (5s &lt; 8s) and because the fill attribute is set to
'freeze' on the &lt;set&gt; animation, the animation's active duration is (0s &lt;= t &lt; 5s)
but, because the fill state is 'freeze', the &lt;set&gt; applies indefinitely.
</Paragraph>
</OperatorScript>
</SVGTestCase>
<title id="test-title">$RCSfile: animate-elem-65-t.svg,v $</title>
<!--======================================================================-->
<!--Content of Test Case follows... =====================-->
<!--======================================================================-->
<text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.7 $</text>
<rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
<text text-anchor="middle" x="240" y="30" font-size="20">min</text>
<g transform="translate(100, 50)">
<g transform="translate(120,45)" text-anchor="end" font-size="14">
<text>no min / media</text>
<text y="25">invalid min</text>
<text y="50">min &lt; active dur</text>
<text y="75">min &gt; active dur</text>
<text y="100">min &lt; repeat dur</text>
<text y="125">min &gt; repeat dur, remove</text>
<text y="180">min &gt; repeat dur, freeze</text>
</g>
<g id="timeMarkersText" transform="translate(150, 25)" text-anchor="middle" font-size="14">
<text>&gt; 5s</text>
<text x="80">0s-5s</text>
<g transform="translate(0, 180)">
<text>never</text>
<text x="80">&gt; 0s</text>
</g>
</g>
<g transform="translate(150,40)" stroke="black">
<defs>
<rect id="shadow" x="-6" y="-6" width="12" height="12" fill="#ccc" stroke="black" stroke-width="1"/>
</defs>
<g id="setOne">
<use xlink:href="#shadow" x="0"/>
<use xlink:href="#shadow" x="80"/>
<rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
<set id="firstSet" attributeName="x" to="74" end="5s"/>
</rect>
<g transform="translate(20, 0)">
<use xlink:href="#shadow" x="0"/>
<use xlink:href="#shadow" x="80"/>
<rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
<set attributeName="x" to="74" end="5s" min="media"/>
</rect>
</g>
</g>
<g id="setTwo" transform="translate(0, 25)">
<use xlink:href="#shadow" x="0"/>
<use xlink:href="#shadow" x="80"/>
<rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
<set attributeName="x" to="74" min="-6s" end="5s"/>
</rect>
</g>
<g id="setThree" transform="translate(0, 50)">
<use xlink:href="#shadow" x="0"/>
<use xlink:href="#shadow" x="80"/>
<rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
<set attributeName="x" to="74" min="3s" end="5s"/>
</rect>
</g>
<g id="setFour" transform="translate(0, 75)">
<use xlink:href="#shadow" x="0"/>
<use xlink:href="#shadow" x="80"/>
<rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
<set attributeName="x" to="74" min="5s" dur="indefinite" end="2s"/>
</rect>
</g>
<g id="setFive" transform="translate(0, 100)">
<use xlink:href="#shadow" x="0"/>
<use xlink:href="#shadow" x="80"/>
<rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
<set attributeName="x" to="74" min="5s" end="2s" dur="1s" repeatCount="7"/>
</rect>
</g>
<g id="setSix" transform="translate(0, 125)">
<use xlink:href="#shadow" x="0"/>
<use xlink:href="#shadow" x="80"/>
<rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
<set attributeName="x" to="74" min="8s" end="2s" dur="1s" repeatCount="5" fill="remove"/>
</rect>
</g>
<g id="setSeven" transform="translate(0, 180)">
<use xlink:href="#shadow" x="0"/>
<use xlink:href="#shadow" x="80"/>
<rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
<set attributeName="x" to="74" min="8s" end="2s" dur="1s" repeatCount="5" fill="freeze"/>
</rect>
</g>
</g>
</g>
<script>
// Pause the animation at t=0.
document.documentElement.pauseAnimations();
</script>
</svg>