<!DOCTYPE html> <html> <head> <meta name="assert" content="Check the order of events fired when the request has failed."> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="resources/xmlhttprequest-event-order.js"></script> <title>XMLHttpRequest: event - timeout (order of events)</title> </head> <body> <div id="log"></div> <script type="text/javascript"> var test = async_test(); test.step(function() { var xhr = new XMLHttpRequest(); prepare_xhr_for_event_order_test(xhr); xhr.addEventListener("loadend", function() { test.step(function() { assert_xhr_event_order_matches([1, "loadstart(0,0,false)", "upload.loadstart(0,12,true)", 4, "upload.timeout(0,0,false)", "upload.loadend(0,0,false)", "timeout(0,0,false)", "loadend(0,0,false)"]); test.done(); }); }); xhr.timeout = 5; xhr.open("POST", "resources/delay.py?ms=20000"); xhr.send("Test Message"); setTimeout(test.step_func(function () { assert_unreached("ontimeout not called."); }), 10); }); </script> </body> </html>