<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="square" d='M50,50 z' stroke='green' stroke-width='100' stroke-linecap='square'/>
    </svg>
    <script><![CDATA[
      if (window.testRunner) {
        testRunner.dumpAsText();
      }

      var resultString = "";

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

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

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

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

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

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

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

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

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