<!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>
/* Cobalt does not implement HTML5 spec for body margin. */
body {
  margin: 8px;
}
pre, #log {
  position: absolute;
  top: 0;
  left: 200px;
}
#target {
  width: 0px;
  height: 0px;
  position: fixed;
  top: -1000px;
}
</style>

<div id='target'></div>

<script>
var vw = document.documentElement.clientWidth;
var vh = document.documentElement.clientHeight;

var entries = [];

runTestCycle(function() {
  var target = document.getElementById('target');
  assert_true(!!target, "target exists");
  var observer = new IntersectionObserver(function(changes) {
    entries = entries.concat(changes);
    window.testRunner.DoNonMeasuredLayout();
  });
  observer.observe(target);
  entries = entries.concat(observer.takeRecords());
  assert_equals(entries.length, 0, "No initial notifications.");
  runTestCycle(step0, "First rAF.");
}, "A zero-area hidden target should not be intersecting.");
window.testRunner.DoNonMeasuredLayout();
window.testRunner.DoNonMeasuredLayout();

function step0() {
  checkLastEntry(entries, 0, [8, 8, -1000, -1000, 0, 0, 0, 0, 0, vw, 0, vh, false]);
}
</script>
