<html xmlns='http://www.w3.org/1999/xhtml'>
  <head>
    <style>
      body {
          margin: 0px;
          padding: 0px;
          border: 1px solid black;
      }
    </style>
  </head>
  <body>
    <svg id="background" xmlns="http://www.w3.org/2000/svg" width="100" height="100">
      <path id="circle" d='M50,50 z' stroke='green' stroke-width='100' stroke-linecap='round'/>
    </svg>
    <script><![CDATA[
      if (window.testRunner) {
        window.testRunner.dumpAsText();
      }

      var resultString = "";

      var hitElementExpected1 = document.elementFromPoint(5, 50);
      var hitSuccess1 = hitElementExpected1 && hitElementExpected1 == document.getElementById("circle");
      resultString += hitSuccess1 ? "PASSED; " : "FAIL, hit " + hitElementExpected1 + " @ 5, 50; ";

      var hitElementExpected2 = document.elementFromPoint(95, 50);
      var hitSuccess2 = hitElementExpected2 && hitElementExpected2 == document.getElementById("circle");
      resultString += hitSuccess2 ? "PASSED; " : "FAIL, hit " + hitElementExpected2 + " @ 95, 50; ";

      var hitElementExpected3 = document.elementFromPoint(50, 5);
      var hitSuccess3 = hitElementExpected3 && hitElementExpected3 == document.getElementById("circle");
      resultString += hitSuccess3 ? "PASSED; " : "FAIL, hit " + hitElementExpected3 + " @ 50, 5; ";

      var hitElementExpected4 = document.elementFromPoint(50, 95);
      var hitSuccess4 = hitElementExpected4 && hitElementExpected4 == document.getElementById("circle");
      resultString += hitSuccess4 ? "PASSED; " : "FAIL, hit " + hitElementExpected4 + " @ 50, 95; ";

      hitElementExpected1 = document.elementFromPoint(5, 5);
      hitSuccess1 = hitElementExpected1 && hitElementExpected1 == document.getElementById("background");
      resultString += hitSuccess1 ? "PASSED; " : "FAIL, hit " + hitElementExpected1 + " @ 5, 5; ";

      hitElementExpected2 = document.elementFromPoint(95, 5);
      hitSuccess2 = hitElementExpected2 && hitElementExpected2 == document.getElementById("background");
      resultString += hitSuccess2 ? "PASSED; " : "FAIL, hit " + hitElementExpected2 + " @ 95, 5; ";

      hitElementExpected3 = document.elementFromPoint(5, 95);
      hitSuccess3 = hitElementExpected3 && hitElementExpected3 == document.getElementById("background");
      resultString += hitSuccess3 ? "PASSED; " : "FAIL, hit " + hitElementExpected3 + " @ 5, 95; ";

      hitElementExpected4 = document.elementFromPoint(95, 95);
      hitSuccess4 = hitElementExpected4 && hitElementExpected4 == document.getElementById("background");
      resultString += hitSuccess4 ? "PASSED; " : "FAIL, hit " + hitElementExpected4 + " @ 95, 95; ";

      document.body.innerHTML = resultString;
    ]]></script>
  </body>
</html>
