summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/xhr/firing-events-http-no-content-length.html
blob: ddf7dd800a2165a7f0541731f4e49772b72f4a59 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!doctype html>
<html>
  <head>
    <title>ProgressEvent: firing events for HTTP with no Content-Length</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
  </head>
  <body>
    <div id="log"></div>
    <script>
      async_test(t => {
        const xhr = new XMLHttpRequest();
        let progressHappened = false;

        xhr.onprogress = t.step_func(pe => {
          assert_equals(pe.type, "progress");
          assert_greater_than_equal(pe.loaded, 0, "loaded");
          assert_false(pe.lengthComputable, "lengthComputable");
          assert_equals(pe.total, 0, "total");
          progressHappened = true;
        });

        // "loadstart", "error", "abort", "load" tests are out of scope.
        // They SHOULD be tested in each spec that implement ProgressEvent.

        xhr.onloadend = t.step_func_done(() => {
          assert_true(progressHappened);
        });

        xhr.open("GET", "resources/trickle.py?ms=0&count=100", true);
        xhr.send(null);
      });
    </script>
  </body>
</html>