diff options
Diffstat (limited to 'testing/web-platform/tests/html-imports/fetching/loading-attempt.html')
-rw-r--r-- | testing/web-platform/tests/html-imports/fetching/loading-attempt.html | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html-imports/fetching/loading-attempt.html b/testing/web-platform/tests/html-imports/fetching/loading-attempt.html new file mode 100644 index 000000000..7c1b442b1 --- /dev/null +++ b/testing/web-platform/tests/html-imports/fetching/loading-attempt.html @@ -0,0 +1,76 @@ +<!DOCTYPE html> +<html> +<head> +<title>Fetching import</title> +<link rel="help" href="http://w3c.github.io/webcomponents/spec/imports/#fetching-import"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<script> +var onloadWasCalledOnSuccess = false; +var onerrorWasCalledOnSuccess = false; +function helloLoadHandler() { onloadWasCalledOnSuccess = true; } +function helloErrorHandler() { onerrorWasCalledOnSuccess = true; } + +var onloadWasCalledOnFail = false; +var onerrorWasCalledOnFail = false; +function nosuchLoadHandler() { onloadWasCalledOnFail = true; } +function nosuchErrorHandler() { onerrorWasCalledOnFail = true; } +</script> + +<link rel="import" href="resources/hello.html" onload="helloLoadHandler()" onerror="helloLoadHandler()"> +<link rel="import" href="resources/no-such.html" onload="nosuchLoadHandler()" onerror="nosuchErrorHandler()"> + +<script> +test(function() { + assert_true(onloadWasCalledOnSuccess); + assert_false(onerrorWasCalledOnSuccess); +}, 'The loading attempt must be considered successful if IMPORT is not null on the algorithm completion, and failed otherwise. (1)'); + +test(function() { + assert_false(onloadWasCalledOnFail); + assert_true(onerrorWasCalledOnFail); +}, 'The loading attempt must be considered successful if IMPORT is not null on the algorithm completion, and failed otherwise. (2)'); + +t1 = async_test('The loading attempt must be considered successful if IMPORT is not null on the algorithm completion, and failed otherwise. (3)') +t1.step(function() { + var importElement = document.createElement('link'); + importElement.setAttribute('rel', 'import'); + importElement.setAttribute('href', 'resources/dynamic.html'); + importElement.addEventListener("error", assert_unreached); + importElement.addEventListener("load", function() { + t1.done(); + }); + + document.head.appendChild(importElement); +}); + +var onloadWasCalledOnAsync = false; +var onerrorWasCalledOnAsync = false; +var asyncAttemptDone = function() { assert_unreached(); }; + +function asyncLoadHandler() { + onloadWasCalledOnAsync = true; + asyncAttemptDone(); +} +function asyncErrorHandler() { + onerrorWasCalledOnAsync = true; + asyncAttemptDone(); +} + +t2 = async_test('Every import that is not marked as async delays the load event in the Document.'); +asyncAttemptDone = function() { + t2.step(function() { + assert_true(onloadWasCalledOnAsync); + assert_false(onerrorWasCalledOnAsync); + t2.done(); + }); +}; + +</script> +<link rel="import" href="resources/async.html" onload="asyncLoadHandler()" onerror="asyncErrorHandler()" async> +</head> +<body> +<div id="log"></div> +</body> +</html> |