<svg id="svg-root" width="100%" height="100%" 
  viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" 
  xmlns:xlink="http://www.w3.org/1999/xlink">
  <!--======================================================================-->
  <!--=  Copyright 2008 World Wide Web Consortium, (Massachusetts          =-->
  <!--=  Institute of Technology, European Research Consortium for         =-->
  <!--=  Informatics and Mathematics (ERCIM), Keio University).            =-->
  <!--=  All Rights Reserved.                                              =-->
  <!--=  See http://www.w3.org/Consortium/Legal/.                          =-->
  <!--======================================================================-->
  <d:SVGTestCase xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/"
    template-version="1.3" reviewer="DAS" author="CM" status="accepted"
    version="$Revision: 1.7 $" testname="$RCSfile: animate-dom-02-f.svg,v $">
    <d:testDescription xmlns="http://www.w3.org/1999/xhtml" href="http://www.w3.org/TR/SVG11/animate.html#InterfaceSVGAnimationElement">
	      <p>
	        This tests that the methods on the ElementTimeControl
	        interface return the undefined value, since the IDL
	        operations are declared to return void.
	      </p>
	      <p>
	       After the loading the document, a rectangle is shown
	       indicating whether all four methods from the ElementTimeControl
	       interface returned undefined when invoked.  The rectangle
	       is black if the test did not run, red if the test failed
	       and green if the test succeeded.
			</p>
    </d:testDescription>
    <d:operatorScript xmlns="http://www.w3.org/1999/xhtml">
      <p>
      	Run the test. No interaction required.
      </p>
    </d:operatorScript>
    <d:passCriteria xmlns="http://www.w3.org/1999/xhtml">
      <p>
        The test is passed if the rectangle is green.
      </p>
    </d:passCriteria>
  </d:SVGTestCase>
  <title id="test-title">$RCSfile: animate-dom-02-f.svg,v $</title>
  <defs>
    <font-face
      font-family="SVGFreeSansASCII"
      unicode-range="U+0-7F">
      <font-face-src>
        <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
      </font-face-src>
    </font-face>
  </defs>
  <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
    
    <text x='10' y='30'>Testing ElementTimeControl method return values</text>

    <rect id='r' x='10' y='50' width='50' height='50'/>
    <animate id='a' attributeName='display' values='inline; inline' dur='10s'/>
    <animate attributeName='display' values='inline; inline' onbegin='f()' dur='10s'/>

    <script><![CDATA[
      function f() {
        var a = document.getElementById('a');
        var b = false;
        try {
          b = typeof a.beginElement() == 'undefined'
                && typeof a.beginElementAt(100) == 'undefined'
                && typeof a.endElement() == 'undefined'
                && typeof a.endElementAt(200) == 'undefined';
        } catch (e) {
        }
        document.getElementById('r').setAttribute('fill', b ? 'green' : 'red');
      }
    ]]></script>
  </g>
  <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
  <text id="revision" x="10" y="340" stroke="none" 
    fill="black">$Revision: 1.7 $</text>
  </g>
  <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
  <!-- comment out this watermark once the test is approved --><!--
  <g id="draft-watermark">
    <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
    <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" 
      text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
  </g>-->
</svg>
