| <!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> |
| <link rel="stylesheet" href="/resources/testharness.css"> |
| |
| <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> |