<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.4" reviewer="[reviewer]" author="Microsoft" status="created" version="$Revision: 1.2 $" testname="$RCSfile: interact-pointer-04-f.svg,v $">
    <d:testDescription xmlns="http://www.w3.org/1999/xhtml" href="http://dev.w3.org/SVG/profiles/1.1F2/publish/interact.html#PointerEventsProperty">
      <p>
        <!--[[
        A mask effect regardless of opacity does not prevent an element from being the target of a pointer event.
        ]]-->
      </p>
    </d:testDescription>
    <d:operatorScript xmlns="http://www.w3.org/1999/xhtml">
      <p>
        <!--[[
        Specify a 'rect' element which references a rectangular 'mask' which completely masks out the element. Specify an 'onmouseover' event handler function on the 'rect' element and verify that the function fires when mouseing over it. Repeat the same thing using a 'mask' element with zero opacity.
        ]]-->
      </p>
    </d:operatorScript>
    <d:passCriteria xmlns="http://www.w3.org/1999/xhtml">
      <p>
        <!--[[
        Move the mouse over both the blue and grey boxes.
        ]]-->
      </p>
      <p>
        <!--[[
        Test passes if both of the boxes turn orange.
        ]]-->
      </p>
    </d:passCriteria>
  </d:SVGTestCase>
  <title id="test-title">$RCSfile: interact-pointer-04-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">
    <mask id="normalMask">
        <rect x="0" y="0" width="100" height="100" fill="#dddddd" />
    </mask>
    <rect x="0" y="0" width="100" height="100" fill="#aabbcc" mask="url(#normalMask)" onmouseover="test(this)" />
    <rect id="passRect" x="200" y="0" width="100" height="100" fill="blue" />
    <mask id="opacityMask" opacity="0">
        <rect x="0" y="0" width="100" height="100" fill="black" />
    </mask>
    <rect x="200" y="0" width="100" height="100" fill="#dddddd" mask="url(#opacityMask)" onmouseover="testOpacity()" />
    <script type="text/javascript"><![CDATA[
        try
        {
            function test(testElement)
            {
                testElement.setAttribute("fill", "orange");
            }

            function testOpacity()
            {
                var passRect = document.getElementById("passRect");
                passRect.setAttribute("fill", "orange");
            }
        }
        catch(ex)
        {
            alert('ERROR: ' + ex.message);
        }]]>
    </script>
  </g>
  <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
    <text id="revision" x="10" y="340" stroke="none"
      fill="black">$Revision: 1.2 $</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>
