<!doctype html>
<html>
<head>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<script>
  const img_url = "resources/blue.png";
  const img = document.createElement("img");
  img.src = img_url;
  window.onload = function() {
    test(() => {
      const entries = performance.getEntriesByType('resource');
      assert_greater_than_equal(entries.length, 1);
      const entry = entries[0];
      assert_equals(typeof(entry.toJSON), 'function');
      const json = entry.toJSON();
      assert_equals(typeof(json), 'object');

      const performanceResourceTimingKeys = [
        'name',
        'entryType',
        'startTime',
        'duration',
        'initiatorType',
        'nextHopProtocol',
        'workerStart',
        'redirectStart',
        'fetchStart',
        'domainLookupStart',
        'domainLookupEnd',
        'connectStart',
        'connectEnd',
        'secureConnectionStart',
        'requestStart',
        'responseStart',
        'responseEnd',
        'transferSize',
        'encodedBodySize',
        'decodedBodySize'
      ];
      for (const key of performanceResourceTimingKeys) {
        assert_equals(json[key], entry[key],
          `entry.toJSON().${key} should match entry.${key}`);
      }
    }, 'Test toJSON() in PerformanceResourceTiming');
  };
</script>
</body>
</html>