chromium/third_party/blink/web_tests/http/tests/misc/script-async.html

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="../../js-test-resources/js-test.js"></script>
</head>
<body onload="test()">
This tests for proper execution order of scripts with the async attribute <a href="https://bugs.webkit.org/show_bug.cgi?id=20710">https://bugs.webkit.org/show_bug.cgi?id=20710</a>.<hr>
<div id="console"></div>
<script type="text/javascript">
var jsTestIsAsync = true;

function debug(msg)
{
    if (!window.status_)
        window.status_ = '';
    window.status_ += ' ' + msg + ' ';
}

document.addEventListener("DOMContentLoaded", function() {
    debug('DOMContentLoaded');
}, false);

function test()
{
    var expectedA = " async  external  inline  DOMContentLoaded  slowAsync ";
    var expectedB = " external  async  inline  DOMContentLoaded  slowAsync ";
    var expectedC = " external  inline  async  DOMContentLoaded  slowAsync ";
    var expectedD = " external  inline  DOMContentLoaded  async  slowAsync ";
    var results = "PASS";
    if (window.status_ != expectedA && window.status_ != expectedB && window.status_ != expectedC && window.status_ != expectedD)
        results = "FAIL: Expected one of '" + expectedA + "' || '" + expectedB + "' || '" + expectedC + "' || '" + expectedD + "', Actual='" + window.status_ + "'";
    document.getElementById("console").innerHTML = results;
    finishJSTest();
}

</script>
<script src="http://127.0.0.1:8000/misc/resources/slow-async-script.cgi" async="ASYNC"></script>
<script src="http://127.0.0.1:8000/misc/resources/async-script.js" async="ASYNC"></script>
<script src="http://127.0.0.1:8000/misc/resources/external-script.js"></script>
<script>
debug("inline");
</script>
</body>
</html>