<!doctype html>
<html>
<head>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<img src="resources/status-code.py?status=200">
<img src="resources/status-code.py?status=307">
<img src="resources/status-code.py?status=404">
<img src="resources/status-code.py?status=502">
<script src="resources/status-code.py?status=200&script=1"></script>
<script src="resources/status-code.py?status=307&script=1"></script>
<script src="resources/status-code.py?status=404&script=1"></script>
<script src="resources/status-code.py?status=502&script=1"></script>
<script>
async_test(t => {
  window.addEventListener("load", t.step_func_done(() => {
    const images = document.getElementsByTagName("img");
    for (let img of images) {
      const entries = performance.getEntriesByName(img.src);
      assert_greater_than(entries.length, 0, img.src);
      assert_greater_than(entries[0].duration, 0, img.src);
    }
    const scripts = document.getElementsByTagName("script");
    let noSrcScriptFound = false;
    for (let script of scripts) {
      if (script.src) {
        const entries = performance.getEntriesByName(script.src);
        assert_greater_than(entries.length, 0, script.src);
        assert_greater_than(entries[0].duration, 0, script.src);
      } else {
        // Ignore this script, which has no src value. There should only be one such script.
        assert_false(noSrcScriptFound);
        noSrcScriptFound = true;
      }
    }
  }));
}, "Make sure all status codes are reported");
</script>
