29 lines
1.2 KiB
HTML
29 lines
1.2 KiB
HTML
<!DOCTYPE html>
|
|
<meta charset="utf-8">
|
|
<title>Test the sequence of events when reporting image timing.</title>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<body>
|
|
<script>
|
|
function test_image_sequence(src, event, t) {
|
|
const image = document.createElement('img');
|
|
const absoluteURL = new URL(src, location.href).toString();
|
|
document.body.appendChild(image);
|
|
t.add_cleanup(() => image.remove());
|
|
return new Promise(resolve => {
|
|
image.addEventListener(event, t.step_func(() => {
|
|
assert_equals(performance.getEntriesByName(absoluteURL).length, 1);
|
|
resolve();
|
|
}));
|
|
image.src = src;
|
|
});
|
|
}
|
|
promise_test(t => test_image_sequence('resources/blue.png', 'load', t),
|
|
"An image should receive its load event after the ResourceTiming entry is available");
|
|
|
|
promise_test(t => test_image_sequence('resources/nothing-at-all.png', 'error', t),
|
|
"A non-existent (404) image should receive its error event after the ResourceTiming entry is available");
|
|
|
|
promise_test(t => test_image_sequence('resources/invalid.png', 'error', t),
|
|
"An invalid image should receive its error event after the ResourceTiming entry is available");
|
|
</script>
|