<!DOCTYPE HTML>
<meta charset=utf-8>
<title>Element Timing: observe larger element with stretched background image</title>
<body>
<style>
body {
  margin: 0;
}
#target {
  width: 200px;
  height: 150px;
  background-image: url('resources/square100.png');
}
</style>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/element-timing-helpers.js"></script>
<script>
  let beforeRender = performance.now();
  async_test(function (t) {
    if (!window.PerformanceElementTiming) {
      assert_unreached("PerformanceElementTiming is not implemented");
    }
    const observer = new PerformanceObserver(
      t.step_func_done(function(entryList) {
        assert_equals(entryList.getEntries().length, 1);
        const entry = entryList.getEntries()[0];
        const index = window.location.href.lastIndexOf('/');
        const pathname = window.location.href.substring(0, index) +
            '/resources/square100.png';
        checkElement(entry, pathname, 'my_div', 'target', beforeRender,
            document.getElementById('target'));
        // The background image extends to occupy to full size of the div.
        checkRect(entry, [0, 200, 0, 150]);
        // The natural size of the square remains unchanged.
        checkNaturalSize(entry, 100, 100);
      })
    );
    observer.observe({entryTypes: ['element']});
  }, 'Element with background image shows correct image size.');
</script>
<div id='target' elementtiming='my_div'></div>
</body>
