|  <!DOCTYPE html> | 
 | <html> | 
 | <head> | 
 |  <meta charset="utf-8" /> | 
 |  <title>XHR2 Timeout Property Tests</title> | 
 |  <link rel="help" href="https://xhr.spec.whatwg.org/#timeout-error" /> | 
 |  <link rel="help" href="https://xhr.spec.whatwg.org/#the-timeout-attribute" data-tested-assertations="following::ol[1]/li[2]" /> | 
 |  <link rel="help" href="https://xhr.spec.whatwg.org/#handler-xhr-ontimeout" data-tested-assertations="../.."/> | 
 |  <link rel="help" href="https://xhr.spec.whatwg.org/#timeout-error" data-tested-assertations=".."/> | 
 |  <link rel="help" href="https://xhr.spec.whatwg.org/#request-error" data-tested-assertations="following::ol[1]/li[9]"/> | 
 |  <link rel="help" href="https://xhr.spec.whatwg.org/#infrastructure-for-the-send()-method" data-tested-assertations="following-sibling::dl//code[contains(@title,'dom-XMLHttpRequest-timeout')]/.. following-sibling::dl//code[contains(@title,'dom-XMLHttpRequest-timeout')]/../following-sibling::dd following::dt[1] following::dd[1]" /> | 
 |  <meta name=timeout content=long> | 
 |  <script src="/resources/testharness.js"></script> | 
 |  <script src="/resources/testharnessreport.js"></script> | 
 | </head> | 
 | <body> | 
 |  <div id="log"></div> | 
 |  <script type="text/javascript"> | 
 |  | 
 | var test = async_test(); | 
 |  | 
 | function startRequest() { | 
 |  xhr.open("GET", "./resources/content.py?content=Hi", true); | 
 |  xhr.timeout = 2000; | 
 |  test.step_timeout(function () { | 
 |  xhr.send(); | 
 |  }, 1000); | 
 | } | 
 |  | 
 | test.step(function() | 
 | { | 
 |  var count = 0; | 
 |  xhr = new XMLHttpRequest(); | 
 |  xhr.onload = function () { | 
 |  assert_equals(xhr.response, "Hi"); | 
 |  if (++count == 2) { | 
 |  test.done(); | 
 |  } | 
 |  } | 
 |  xhr.ontimeout = function () { | 
 |  assert_unreached("HTTP error should not timeout"); | 
 |  } | 
 |  startRequest(); | 
 |  test.step_timeout(startRequest, 3500); | 
 | }); | 
 |  | 
 |  </script> | 
 | </body> | 
 | </html> |