blob: 0040eb470a2f7870d4b6b3aff7a4065955c0f9fd [file] [log] [blame]
<html>
<head>
<title>Test case for bug 120828 (abort case)</title>
</head>
<body>
<p>Test case for <a href="https://bugs.webkit.org/show_bug.cgi?id=120828"> bug 120828</a>: Correctly set XHR loadend attributes (loaded and total).</p>
<p>Verify that abort and loadend events have their ProgressEvent attributes (loaded, total and lengthComputable) correctly set.</p>
<p id=console></p>
<script type="text/javascript">
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
var status = "PASS";
var total = 0;
var loaded = 0;
function onProgressEvent(e)
{
if (total != e.total || loaded != e.loaded)
fail("Event " + e.type + "total/loaded values not matching: "
+ "(" + e.loaded + " / " + e.total + "), expected (" + loaded + " / " + total + ")");
}
function onUnexpectedProgressEvent(e)
{
fail("unexpected ProgressEvent: " + e.type);
}
function fail(msg)
{
status = "FAILED: " + msg;
completeTest();
status = "";
}
function completeTest()
{
log(status);
if (window.testRunner)
testRunner.notifyDone();
}
function test()
{
var iteration = 2;
var delay = "1000";
var hasAborted = false;
var req = new XMLHttpRequest();
req.onprogress = function(e){
total = e.total;
loaded = e.loaded;
if (!hasAborted) {
hasAborted = true;
req.abort();
}
};
req.onerror = onUnexpectedProgressEvent;
req.onabort = onProgressEvent;
req.onloadend = function(e) {
onProgressEvent(e);
completeTest();
}
req.open("GET", "resources/download-with-delay.php?iteration=" + iteration + "&delay=" + delay, true);
req.send(null);
}
function log(message)
{
var consoleElt = document.getElementById("console");
consoleElt.innerHTML += message + "<br/>";
}
test();
</script>
</body>
</html>