blob: bc1c4c948077df801929c0d0e8165d0ffcf569ba [file] [log] [blame]
<!doctype html>
<html>
<head>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
</head>
<body>
<p> Verify that a load ProgressEvent is dispatched and have the expected values.</p>
<div id="log"></div>
<script type="text/javascript">
var xhr;
var payload = "data";
var expectedLength = payload.length;
var results = "";
var expected = " loadstart readyState=DONE load";
function verifyProgressEvent(context, e, expected)
{
assert_true(e.lengthComputable);
assert_equals(e.loaded, expected, "Expected 'loaded' value for '" + context + "' event.");
assert_equals(e.total, expected, "Expected 'total' value for '" + context + "' event.");
}
function logProgressEvent(e) {
results += " " + e.type;
}
function logUnexpectedProgressEvent(e) {
results += " [unexpected ProgressEvent: " + e.type + "]";
completeTest();
}
function completeTest()
{
assert_equals(results, expected, "Expected load event sequence");
testOnloadEvent.done();
}
function loadHandler(e)
{
logProgressEvent(e);
assert_true(e instanceof ProgressEvent);
verifyProgressEvent("onload", e, expectedLength);
completeTest();
}
var testOnloadEvent = async_test("Check that 'load' events are delivered and have expected values.");
testOnloadEvent.step(function () {
xhr = new XMLHttpRequest();
xhr.onreadystatechange = testOnloadEvent.step_func(function(e) {
if (xhr.readyState == xhr.DONE)
results += " readyState=DONE";
});
xhr.onloadstart = testOnloadEvent.step_func(logProgressEvent);
xhr.onabort = testOnloadEvent.step_func(logUnexpectedProgressEvent);
xhr.onerror = testOnloadEvent.step_func(logUnexpectedProgressEvent);
xhr.onload = testOnloadEvent.step_func(loadHandler);
xhr.open("POST", "resources/post-echo.php", true);
xhr.send(payload);
});
</script>
</body>
</html>