<p>This test checks for rdar://problem/4962298 REGRESSION: Synchronous XHR for missing local file throws exception -- breaks Wikipedia widget</p>
<hr>

<pre id="console"></pre>

<script>
function log(s)
{
    document.getElementById("console").appendChild(document.createTextNode(s + "\n"));
}

function logProperty(object, propertyName)
{
    var property;
    try {
        property = object[propertyName];
    } catch(e) {
        property = e;
    }
    log(propertyName + ": " + property + " (" + typeof property + ")");
}

function sendRequest() 
{
    var request = new XMLHttpRequest();
    request.open("GET", "file:///iamthewalrus", false);
    request.send(null);
    return request;
}

if (window.testRunner)
    testRunner.dumpAsText();

try {
    var request = sendRequest();

    var properties = [
        "readyState",
        "responseText",
        "responseXML",
        /* "status", -- excluded because it differs on tiger and leopard */
        "statusText",
    ];
    
    log("PASS: No exception.");
    for (var i = 0; i < properties.length; i++) //>
        logProperty(request, properties[i]);
} catch(e) {
    log("FAIL: Caught exception " + e + ".");
}
</script>
