diff options
Diffstat (limited to 'testing/web-platform/tests/html/semantics/embedded-content/the-img-element/invalid-src.html')
-rw-r--r-- | testing/web-platform/tests/html/semantics/embedded-content/the-img-element/invalid-src.html | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/invalid-src.html b/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/invalid-src.html new file mode 100644 index 000000000..f1fbe34c5 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/invalid-src.html @@ -0,0 +1,42 @@ +<!doctype html> +<meta charset="utf-8"> +<title>Loading a non-parsing URL as an image should silently fail; triggering appropriate events</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<img id=brokenurl /> +<img id=emptysrc /> +<script> +async_test(function(t) { + var img = document.getElementById("brokenurl"); + img.src = "http://also a broken url"; + var errorevent = false; + + // The errors should be queued in the event loop, so they should only trigger + // after this block of code finishes, not during the img.src setter itself + img.addEventListener('error', t.step_func(function(){errorevent = true;})); + img.addEventListener('loadend', t.step_func_done(function() { + assert_true(errorevent, "error event fired"); + })); +}, 'src="http://also a broken url"'); + +async_test(function(t) { + var img = document.getElementById("emptysrc"); + img.src = ""; + var loadendevent = false; + + // Setting src to empty string triggers only error event. + // The errors should be queued in the event loop, so they should only trigger + // after this block of code finishes, not during the img.src setter itself + img.addEventListener('error', t.step_func(function() { + // Queue this check in the event loop to check there is no loadend event + // fired. + t.step_timeout(t.step_func_done(function() { + assert_false(loadendevent, "loadend event should not fired"); + }), 0) + })); + img.addEventListener('loadend', t.step_func(function() { + loadendevent = true; + })); +}, 'src=""'); + +</script> |