<!DOCTYPE HTML>
<meta charset=utf-8>
<title>Largest Contentful Paint: expanded image bounded by intrinsic size.</title>
<style type="text/css">
  #image_id {
    width: 300px;
    height: 300px;
  }
</style>
<body>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/largest-contentful-paint-helpers.js"></script>
<script>
  async_test(function (t) {
    assert_implements(window.LargestContentfulPaint, "LargestContentfulPaint is not implemented");
    const beforeLoad = performance.now();
    const observer = new PerformanceObserver(
      t.step_func_done(function(entryList) {
        assert_equals(entryList.getEntries().length, 1);
        const entry = entryList.getEntries()[0];
        const url = window.location.origin + '/images/black-rectangle.png';
        // black-rectangle.png is 100 x 50. It occupies 300 x 300 so size will be bounded by the intrinsic size.
        const size = 100 * 50;
        checkImage(entry, url, 'image_id', size, beforeLoad);
      })
    );
    observer.observe({type: 'largest-contentful-paint', buffered: true});
  }, 'Largest Contentful Paint: |size| attribute is bounded by intrinsic size.');
</script>
<img src='/images/black-rectangle.png' id='image_id'/>
</body>
