Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / http / tests / xmlhttprequest / ontimeout-event-override.html
blobef19b634990c2a78483c61e94e7f6037d0dec1af
1 <!doctype html>
2 <html>
3 <head>
4 <script src="../resources/testharness.js"></script>
5 <script src="../resources/testharnessreport.js"></script>
6 </head>
7 <body>
8 <p>Verify that a timeout ProgressEvent is dispatched and have the expected values.</p>
9 <div id="logEvent"></div>
10 <script type="text/javascript">
11 var didTimeout = false;
13 function timeoutEvent(e) {
14 didTimeout = true;
17 function unexpectedProgressEvent(e) {
18 assert_unreached("'" + e.type + "' event should not be dispatched, expected 'timeout'");
21 var testOnTimeoutEvent = async_test("Check that 'timeout' events are delivered and have expected values.");
22 testOnTimeoutEvent.step(function () {
23 var xhr = new XMLHttpRequest();
24 xhr.ontimeout = testOnTimeoutEvent.step_func(timeoutEvent);
25 xhr.onabort = testOnTimeoutEvent.step_func(unexpectedProgressEvent);
26 xhr.onerror = testOnTimeoutEvent.step_func(unexpectedProgressEvent);
27 xhr.onload = testOnTimeoutEvent.step_func(unexpectedProgressEvent);
28 xhr.onloadend = testOnTimeoutEvent.step_func(function(e) {
29 assert_true(didTimeout, "'timeout' event should be dispatched after 400ms");
30 testOnTimeoutEvent.done();
31 });
32 xhr.timeout = 100000;
33 xhr.open("GET", "../resources/load-and-stall.php?name=test.mp4&stallAt=0&stallFor=1000&mimeType=video/mp4", true);
34 xhr.send();
35 // Defer overriding timeout
36 setTimeout(function() {
37 xhr.timeout = 400;
38 }, 200);
39 });
40 </script>
41 </body>
42 </html>