blob: 3df1de60812d933ad3fb10077daf45cc2d1f462c [file] [log] [blame]
<!DOCTYPE html>
<script src="/js-test-resources/testharness.js"></script>
<script src="/js-test-resources/testharnessreport.js"></script>
<p></p>
<script type="text/javascript">
var log = "";
function recordEvent(eventName, evt)
{
log += eventName + ": " + evt + "\n";
}
var test = async_test("progress events are fired for XMLHttpRequestUpload objects in the correct order, loadstart, progress, load, and then loadend.");
test.step(function() {
var xhr = new XMLHttpRequest;
xhr.upload.onprogress = function(evt)
{
log += "progress: " + evt + " (loaded=" + evt.loaded + ", total=" + evt.total + ")\n";
};
xhr.upload.onloadstart = recordEvent.bind(undefined, "loadstart");
xhr.upload.onload = recordEvent.bind(undefined, "load");
xhr.upload.onloadend = recordEvent.bind(undefined, "loadend");
xhr.onreadystatechange = function(evt)
{
if (xhr.readyState == xhr.DONE) {
var expectedLog =
"loadstart: [object ProgressEvent]\n" +
"progress: [object ProgressEvent] (loaded=4, total=4)\n" +
"load: [object ProgressEvent]\n" +
"loadend: [object ProgressEvent]\n"
assert_equals(log, expectedLog);
test.done();
}
};
xhr.open("POST", "resources/post-echo.cgi", true);
xhr.send("data");
});
</script>