<!DOCTYPE html>
<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>
