<!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>