<!doctype html>
<html>
  <head>
    <title>EventSource: "retry" field</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
  </head>
  <body>
    <div id="log"></div>
    <script>
      var test = async_test(document.title);
      test.step(function() {
        var timeoutms = 3000,
            timeoutstr = "03000", // 1536 in octal, but should be 3000
            source = new EventSource("resources/message.py?message=retry%3A" + timeoutstr + "%0Adata%3Ax"),
            opened = 0
        source.onopen = function() {
          test.step(function() {
            if(opened == 0)
              opened = new Date().getTime()
            else {
              var diff = (new Date().getTime()) - opened
              assert_true(Math.abs(1 - diff / timeoutms) < 0.25) // allow 25% difference
              this.close();
              test.done()
            }
          }, this)
        }
      })
    </script>
  </body>
</html>

