event-upload-progress.any.js (1118B)
1 // META: title=XMLHttpRequest: upload progress event 2 // META: script=/common/get-host-info.sub.js 3 4 const remote = get_host_info().HTTP_REMOTE_ORIGIN + "/xhr/resources/corsenabled.py", 5 redirect = "resources/redirect.py?code=307&location=" + remote; 6 7 [remote, redirect].forEach(url => { 8 async_test(test => { 9 const client = new XMLHttpRequest(); 10 const data = "On time: " + url; 11 client.upload.onprogress = test.step_func_done(e => { 12 assert_true(e.lengthComputable); 13 assert_equals(e.total, data.length); 14 }); 15 client.onload = test.unreached_func(); 16 client.open("POST", url); 17 client.send(data); 18 }, "Upload events registered on time (" + url + ")"); 19 }); 20 21 [remote, redirect].forEach(url => { 22 async_test(test => { 23 const client = new XMLHttpRequest(); 24 client.onload = test.step_func_done(); 25 client.open("POST", url); 26 client.send("Too late: " + url); 27 client.upload.onloadstart = test.unreached_func(); // registered too late 28 client.upload.onprogress = test.unreached_func(); // registered too late 29 }, "Upload events registered too late (" + url + ")"); 30 });