<html>
<body>
<pre id="console"></pre>
<script>
function log(message) {
    document.getElementById('console').appendChild(document.createTextNode(message + '\n'));
}

if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

var xhr = new XMLHttpRequest();
xhr.open('GET', 'resources/access-control-basic-allow-access-control-origin-header.cgi', true);
xhr.onload = function () {
    log(xhr.responseText);
    if (window.testRunner)
        testRunner.notifyDone();
}
xhr.send(null);
</script>
</body>
</html>
