There should be no authentication prompt displayed, since this is a cross-origin request.
In automatic mode, the test relies on logging of authentication sheets.
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

var r = new XMLHttpRequest;
r.open("GET", "http://localhost:8000/xmlhttprequest/resources/basic-auth/basic-auth.php?uid=41531", true);
r.send();
r.onload = function() {
    alert("FAIL: should have failed due to lack of cross origin headers");
    if (window.testRunner)
        testRunner.notifyDone();
}
r.onerror = function() {
    if (window.testRunner)
        testRunner.notifyDone();
}
</script>
