summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-to-eager.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-to-eager.html')
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-to-eager.html55
1 files changed, 55 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-to-eager.html b/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-to-eager.html
new file mode 100644
index 0000000000..6246063981
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-to-eager.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<head>
+ <title>Below-viewport images with loading='lazy' load when set to
+ loading='eager' or the `loading` attribute is removed</title>
+ <link rel="author" title="Dom Farolino" href="mailto:domfarolino@gmail.com">
+ <link rel="help" href="https://html.spec.whatwg.org/multipage/embedded-content.html#attr-img-loading">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+
+<script>
+ const t = async_test("Below-viewport images with loading='lazy' load when " +
+ "set to loading='eager' or the `loading` attribute is " +
+ "removed");
+
+ const img_1_onload = t.unreached_func("#img_1 should not load before the " +
+ "window load event");
+ const img_2_onload = t.unreached_func("#img_2 should not load before the " +
+ "window load event");
+
+ window.addEventListener("load", t.step_func(() => {
+ const img_1 = document.querySelector('#img_1');
+ const img_2 = document.querySelector('#img_2');
+
+ const img_1_promise = new Promise((resolve, reject) => {
+ img_1.onerror = reject;
+ img_1.onload = resolve;
+ });
+
+ const img_2_promise = new Promise((resolve, reject) => {
+ img_2.onerror = reject;
+ img_2.onload = resolve;
+ });
+
+ Promise.all([img_1_promise, img_2_promise])
+ .then(t.step_func_done())
+ .catch(t.unreached_func("The images should load successfully"));
+
+ // Kick off the requests.
+ img_1.loading = 'eager';
+ img_2.removeAttribute('loading'); // unset the attribute, putting it in
+ // the default (eager) state.
+ }));
+
+</script>
+
+<body>
+ <div style="height:1000vh;"></div>
+ <img id="img_1"
+ src="resources/image.png?lazy-to-eager-1"
+ loading="lazy" onload="img_1_onload();">
+ <img id="img_2"
+ src="resources/image.png?lazy-to-eager-2"
+ loading="lazy" onload="img_2_onload();">
+</body>