<html>
<body>
<p>This test that the load event is fired for XMLHttpRequestUpload objects.</p>
<pre id='console'></pre>
<script type="text/javascript">
    if (window.testRunner) {
        testRunner.dumpAsText();
        testRunner.waitUntilDone();
    }

    function log(message)
    {
        document.getElementById('console').appendChild(document.createTextNode(message + "\n"));
    }

    var xhr;

    function loadHandler(evt)
    {
        log("PASS: load event fired on XMLHttpRequestUpload.");
    }

    function readystatechangeHandler(evt)
    {
        if (xhr.readyState == xhr.DONE) {
            if (window.testRunner)
                testRunner.notifyDone();
        }
    }

    xhr = new XMLHttpRequest;
    xhr.upload.onload = loadHandler;
    xhr.onreadystatechange = readystatechangeHandler;
    xhr.open("POST", "resources/post-echo.cgi", true);
    xhr.send("data");
</script>
</body>
</html>
