<!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="../.." />
<link rel="help" href="https://xhr.spec.whatwg.org/#the-send()-method" data-tested-assertations="following::*//a[contains(@href,'#make-progress-notifications')]" />
<link rel="help" href="https://xhr.spec.whatwg.org/#make-progress-notifications" data-tested-assertations=".." />
<link rel="help" href="https://xhr.spec.whatwg.org/#switch-done" data-tested-assertations="following::li[5]" />
<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");
    client.send(null);
  });
</script>
