| <!doctype html> |
| <html> |
| <head> |
| <title>ProgressEvent: firing events for HTTP with Content-Length</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <link rel="help" href="https://xhr.spec.whatwg.org/#firing-events-using-the-progressevent-interface"> |
| </head> |
| <body> |
| <div id="log"></div> |
| <script> |
| var test = async_test(); |
| |
| test.step(function() { |
| var xhr = new XMLHttpRequest(); |
| |
| xhr.onprogress = function(pe) { |
| test.step(function() { |
| if(pe.type == "progress") { |
| assert_greater_than_equal(pe.loaded, 0, "loaded"); |
| assert_true(pe.lengthComputable, "lengthComputable"); |
| assert_equals(pe.total, 1300, "total"); |
| } |
| }, "Check lengthComputed, loaded, total when Content-Length is given."); |
| } |
| |
| // "loadstart", "error", "abort", "load" tests are out of scope. |
| // They SHOULD be tested in each spec that implement ProgressEvent. |
| |
| xhr.onloadend = function(pe) { |
| test.done(); |
| } |
| xhr.open("GET", "resources/trickle.py?ms=0&count=100&specifylength=1", true); |
| xhr.send(null); |
| }) |
| </script> |
| </body> |
| </html> |