<!DOCTYPE html>
<meta name="viewport" content="width=device-width,initial-scale=1">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="./resources/intersection-observer-test-utils.js"></script>

<style>
pre, #log {
  position: absolute;
  top: 0;
  left: 200px;
}
iframe {
  width: 180px;
  height: 100px;
}
</style>

<iframe id="iframe" srcdoc="<div id='target' style='margin:0.5px;width:1000px;height:1000px;'></div>"></iframe>

<script>
var target;
var entries = [];
var observer;
var iframe = document.getElementById("iframe");

iframe.onload = function() {
  runTestCycle(function() {
    target = iframe.contentDocument.getElementById("target");
    assert_true(!!target, "Target element exists.");
    observer = new IntersectionObserver(function(changes) {
      entries = entries.concat(changes);
    });
    observer.observe(target);
    entries = entries.concat(observer.takeRecords());
    assert_equals(entries.length, 0, "No initial notifications.");
    runTestCycle(test0, "First rAF should generate notification.");
  }, "IntersectionObserverEntry.boundingClientRect should match target.boundingClientRect()");
};

function test0() {
  assert_equals(entries.length, 1, "One notification.");
  var bcr = target.getBoundingClientRect();
  checkLastEntry(entries, 0, [bcr.left, bcr.right, bcr.top, bcr.bottom]);
}
</script>
