<html>
<head>
  <meta http-equiv="Content-type" content="text/html; charset=utf-8">
  <title>Testing hittest on a layer with null transform</title>
  <style type="text/css" media="screen">
    #x {
      position: absolute;
      top: 80px;
      left: 20px;
      width: 400px;
      height: 100px;
      background-color: #ddf;
      -webkit-perspective: 800;
    }

    #x:hover {
      background-color: #dff;
    }
    
    #results {
      position: absolute;
      top: 200px;
    }
  </style>
  <script type="text/javascript" charset="utf-8">
     function runTest()
     {
       var x = document.elementFromPoint(150, 150);
       var results = document.getElementById("results");

       if (x.id == "x") {
         results.innerText = "Pass.";
       }

       if (window.testRunner)
         testRunner.dumpAsText();
     }

  </script>
</head>
<body onload="runTest()">
  <h1>Testing hittest on a layer with null transform</h1>
  <p>https://bugs.webkit.org/show_bug.cgi?id=24252</p>

  <p id="x">transformed element</p><br>
  
  <p id="results">Fail!</p>
</body>
</html>
