Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / http / tests / xmlhttprequest / ontimeout-event-override.html
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;
12
13 function timeoutEvent(e) {
14     didTimeout = true;
15 }
16
17 function unexpectedProgressEvent(e) {
18     assert_unreached("'" + e.type + "' event should not be dispatched, expected 'timeout'");
19 }
20
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>