<!DOCTYPE html>
<html>
  <head>
    <title>XMLHttpRequest: make timeouts bigger than default timeout</title>
    <script src="/js-test-resources/testharness.js"></script>
    <script src="/js-test-resources/testharnessreport.js"></script>
  </head>
  <body>
    <script type="text/javascript">

promise_test((test) => {
    return new Promise((resolve, reject) => {
        var xhr = new XMLHttpRequest();
        var startTime = new Date();
        xhr.open('GET', "/misc/resources/delayed-log.py?delay=10000000", true);

        xhr.timeout = 70000; // time in milliseconds

        xhr.onabort = () => { reject("onabort is called"); }
        xhr.onload = () => { reject("onload is called"); };
        xhr.onerror = () => { reject("onerror is called"); };
        xhr.onloadend = () => { reject("onloadend is called but ontimeout was not"); };

        xhr.ontimeout = function (e) {
            var elapsed = new Date() - startTime;
            if (elapsed > 65000 || elapsed < 55000) {
                reject("elapsed time should be close to 60000 but is " + elapsed);
                return;
            }
            resolve();
        };

        xhr.send(null);

        xhr.timeout = 0;
    });
}, "Resetting a timeout to zero after sending the request");

    </script>
  </body>
</html>

