| <!doctype html> |
| <html> |
| <head> |
| <title>Verify that a timeout ProgressEvent is dispatched and have the expected values.</title> |
| <script src="../resources/testharness.js"></script> |
| <script src="../resources/testharnessreport.js"></script> |
| </head> |
| <body> |
| <div id="logEvent"></div> |
| <script type="text/javascript"> |
| var didTimeout = false; |
| |
| function timeoutEvent(e) { |
| didTimeout = true; |
| } |
| |
| function unexpectedProgressEvent(e) { |
| assert_unreached("'" + e.type + "' event should not be dispatched, expected 'timeout'"); |
| } |
| |
| var testOnTimeoutEvent = async_test("Check that 'timeout' events are delivered and have expected values."); |
| testOnTimeoutEvent.step(function () { |
| var xhr = new XMLHttpRequest(); |
| xhr.ontimeout = testOnTimeoutEvent.step_func(timeoutEvent); |
| xhr.onabort = testOnTimeoutEvent.step_func(unexpectedProgressEvent); |
| xhr.onerror = testOnTimeoutEvent.step_func(unexpectedProgressEvent); |
| xhr.onload = testOnTimeoutEvent.step_func(unexpectedProgressEvent); |
| xhr.onloadend = testOnTimeoutEvent.step_func(function(e) { |
| assert_true(didTimeout, "'timeout' event should be dispatched after 400ms"); |
| testOnTimeoutEvent.done(); |
| }); |
| xhr.timeout = 100000; |
| xhr.open("GET", "../resources/load-and-stall.php?name=test.mp4&stallAt=0&stallFor=1000&mimeType=video/mp4", true); |
| xhr.send(); |
| // Defer overriding timeout |
| setTimeout(function() { |
| xhr.timeout = 400; |
| }, 200); |
| }); |
| </script> |
| </body> |
| </html> |