<!doctype html>
<html lang=en>
<meta charset=utf-8>
<title>XMLHttpRequest: The send() method: Fire a progress event named progress (synchronous flag is unset)</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<link rel="help" href="https://xhr.spec.whatwg.org/#handler-xhr-onprogress" data-tested-assertations="../.." />
<link rel="help" href="https://xhr.spec.whatwg.org/#event-xhr-progress" data-tested-assertations="../.." />
<div id="log"></div>
<script>
  var test = async_test();
  test.step(function() {
    var client = new XMLHttpRequest();
    client.onprogress = test.step_func(function(e) {
      assert_true(e instanceof ProgressEvent);
      assert_equals(e.type, "progress");
      test.done();
    });
    client.onreadystatechange = test.step_func(function() {
      if (client.readyState === 4)
        assert_unreached("onprogress not called.");
    });
    client.open("GET", "resources/trickle.py?count=4&delay=150");
    client.send(null);
  });
</script>
