<!DOCTYPE html>
<link rel="help" href="http://www.w3.org/TR/CSS21/visuren.html#floats" />
<link rel="help" href="https://drafts.csswg.org/cssom-view/#dom-document-elementfrompoint" />
<link rel="author" title="Koji Ishii" href="mailto:kojii@chromium.org">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
.outer {
  width: 100px;
  height: 100px;
  background: green;
}
.inner {
  float: left;
  width: 50px;
  height: 50px;
  background: blue;
}
</style>
<body>
<div id="log"></div>

<div class="outer" onclick="clicked('outer')">
  <div id="float-in-div" class="inner" onclick="clicked('inner')">
  </div>
</div>

<table>
  <tr>
    <td>
      <div class="outer" onclick="clicked('outer')">
        <div id='float-in-table' class="inner" onclick="clicked('inner')">
        </div>
      </div>
    </td>
  </tr>
</table>

<pre id="output"></pre>
<script>
function clicked(p) {
  output.textContent += 'clicked ' + p + '\n';
}

function testElementFromPoint(element) {
  let bounds = element.getBoundingClientRect();
  let result = document.elementFromPoint(bounds.x + 1, bounds.y + 1);
  assert_equals(result, element);
}

let targets = [
  'float-in-div',
  'float-in-table',
];
for (let target of targets) {
  let element = document.getElementById(target);
  test(() => { testElementFromPoint(element); }, target);
}
</script>
</body>
