Branch data Line data Source code
1 [ + ]: 2 : import assert from 'node:assert/strict'; 2 : 2 : import { XMLHttpRequest } from '../../../lib/whatwg-xhr.js'; 3 : 2 : 4 [ + ]: 2 : export default (activeURL) => { 5 : 1 : 6 : 1 : let xhr = new XMLHttpRequest(); 7 : 1 : 8 : 1 : let progressHappened = false; 9 : 1 : 10 [ + ]: 1 : xhr.onprogress = (pe) => { 11 : 1 : 12 : 1 : assert.strictEqual(pe.type, 'progress'); 13 : 1 : assert(pe.loaded >= 0, 'loaded'); 14 : 1 : assert(!pe.lengthComputable, 'lengthComputable'); 15 : 1 : assert.strictEqual(pe.total, 0, 'total'); 16 : 1 : 17 : 1 : progressHappened = true; 18 : 1 : }; 19 : 1 : 20 [ + ]: 1 : xhr.onloadend = () => { 21 : 1 : assert(progressHappened); 22 : 1 : }; 23 : 1 : 24 : 1 : xhr.open('GET', `${activeURL}/trickle.py?ms=0&count=100`); 25 : 1 : xhr.send(); 26 : 1 : } 27 : 2 : 28 : 2 : /* 29 : 2 : * firing-events-http-no-content-length.html 30 : 2 : * 31 : 2 : 32 : 2 : <!doctype html> 33 : 2 : <html> 34 : 2 : <head> 35 : 2 : <title>ProgressEvent: firing events for HTTP with no Content-Length</title> 36 : 2 : <script src="/resources/testharness.js"></script> 37 : 2 : <script src="/resources/testharnessreport.js"></script> 38 : 2 : </head> 39 : 2 : <body> 40 : 2 : <div id="log"></div> 41 : 2 : <script> 42 : 2 : async_test(t => { 43 : 2 : const xhr = new XMLHttpRequest(); 44 : 2 : let progressHappened = false; 45 : 2 : 46 : 2 : xhr.onprogress = t.step_func(pe => { 47 : 2 : assert_equals(pe.type, "progress"); 48 : 2 : assert_greater_than_equal(pe.loaded, 0, "loaded"); 49 : 2 : assert_false(pe.lengthComputable, "lengthComputable"); 50 : 2 : assert_equals(pe.total, 0, "total"); 51 : 2 : progressHappened = true; 52 : 2 : }); 53 : 2 : 54 : 2 : // "loadstart", "error", "abort", "load" tests are out of scope. 55 : 2 : // They SHOULD be tested in each spec that implement ProgressEvent. 56 : 2 : 57 : 2 : xhr.onloadend = t.step_func_done(() => { 58 : 2 : assert_true(progressHappened); 59 : 2 : }); 60 : 2 : 61 : 2 : xhr.open("GET", "resources/trickle.py?ms=0&count=100", true); 62 : 2 : xhr.send(null); 63 : 2 : }); 64 : 2 : </script> 65 : 2 : </body> 66 : 2 : </html> 67 : 2 : 68 : 2 : * 69 : 2 : * firing-events-http-no-content-length.html 70 : 2 : */