<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>

<div id="root"></div>

<script>
test(function() {
  var observer = new IntersectionObserver(function(e) {}, {});
  test(function() { assert_equals(observer.root, null) },
       "observer.root");
  test(function() { assert_array_equals(observer.thresholds, [0]) },
       "observer.thresholds");
  test(function() { assert_equals(observer.rootMargin, "0px 0px 0px 0px") },
       "observer.rootMargin");

  var rootDiv = document.getElementById("root");
  observer = new IntersectionObserver(function(e) {}, {
    root: rootDiv,
    threshold: [0, 0.25, 0.5, 1.0],
    rootMargin: "10% 20px"
  });
  test(function() { assert_equals(observer.root, rootDiv) },
       "set observer.root");
  test(function() { assert_array_equals(observer.thresholds, [0, 0.25, 0.5, 1.0]) },
       "set observer.thresholds");
  test(function() { assert_equals(observer.rootMargin, "10% 20px 10% 20px") },
       "set observer.rootMargin");
}, "Observer attribute getters.");

</script>
