Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / http / tests / xmlhttprequest / upload-onloadend-event-after-sync-requests.html
blob0c143724107e90173c4fd82205d829b807a04a96
1 <HTML>
2 <head>
3 <title>Test case for bug 40952</title>
4 </head>
5 <body>
6 <p> Test case for <a href="https://bugs.webkit.org/show_bug.cgi?id=40952"> bug 40952</a>: Onloadend event is not supported in XMLHttpRequest</p>
7 <p> Verify that a loadend ProgressEvent is dispatched after load ProgressEvent when a synchronous upload request completes normally.<br/>
8 Verify that a loadend ProgressEvent is not dispatched after abort() is called on completed request.</p>
9 <p>PASS PASS should appear below:</p>
10 <p id=console></p>
11 <script type="text/javascript">
12 if (window.testRunner) {
13 testRunner.dumpAsText();
14 testRunner.waitUntilDone();
17 function log(message)
19 var consoleElt = document.getElementById("console");
20 consoleElt.appendChild(document.createTextNode(message + " "));
23 var xhr = new XMLHttpRequest();
24 var results;
26 function logProgressEvent(e) {
27 results += " " + e.type;
30 function logUnexpectedProgressEvent(e) {
31 results += " [unexpected ProgressEvent: " + e.type + "]";
32 completeTest();
35 function completeTest(expected)
37 log(results == expected ? "PASS" : "FAILED results : '" + results + "' expected : '" + expected + "'");
38 if (window.testRunner)
39 testRunner.notifyDone();
42 function testNormal()
44 results = "";
46 xhr.onloadstart = logUnexpectedProgressEvent;
47 xhr.onabort = logUnexpectedProgressEvent;
48 xhr.onerror = logUnexpectedProgressEvent;
49 xhr.onload = logProgressEvent;
50 xhr.onloadend = logProgressEvent;
52 xhr.open("POST", "resources/post-echo.cgi", false);
53 xhr.send("data");
55 completeTest(" load loadend");
58 function testAbort()
60 results = "";
62 xhr.onloadstart = logUnexpectedProgressEvent;
63 xhr.onabort = logUnexpectedProgressEvent;
64 xhr.onerror = logUnexpectedProgressEvent;
65 xhr.onload = logUnexpectedProgressEvent;
66 xhr.onloadend = logProgressEvent;
67 xhr.onreadystatechange = function(e) {
68 if (xhr.readyState == xhr.DONE)
69 xhr.abort();
72 xhr.open("POST", "resources/get.txt", false);
73 try {
74 xhr.send();
76 catch (e) {
77 if (e.code != e.NETWORK_ERR)
78 results += " " + e;
81 completeTest("");
84 testNormal();
85 testAbort();
87 </script>
88 </body>