<html>
<body>
<p>This test that progress events are 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 progressHandler(evt)
    {
        log("PASS: onprogress event fired on XMLHttpRequestUpload.");
        log("onprogress: " + evt + " [Loaded: " + evt.loaded + " Total: " + evt.total + "]");
    }

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

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