browser_temporaryFile.js (1630B)
1 add_task(async _ => { 2 await new Promise(resolve => { 3 var xhr = new XMLHttpRequest(); 4 xhr.open( 5 "POST", 6 "http://mochi.test:8888/browser/dom/xhr/tests/temporaryFileBlob.sjs" 7 ); 8 xhr.responseType = "blob"; 9 xhr.send(""); 10 xhr.onloadend = __ => { 11 is(xhr.response.blobImplType, "EmptyBlobImpl", "We want a EmptyBlobImpl"); 12 resolve(); 13 }; 14 }); 15 }); 16 17 add_task(async _ => { 18 var data = new Array(2).join("1234567890ABCDEF"); 19 20 await new Promise(resolve => { 21 var xhr = new XMLHttpRequest(); 22 xhr.open( 23 "POST", 24 "http://mochi.test:8888/browser/dom/xhr/tests/temporaryFileBlob.sjs" 25 ); 26 xhr.responseType = "blob"; 27 xhr.send({ 28 toString() { 29 return data; 30 }, 31 }); 32 xhr.onloadend = __ => { 33 is( 34 xhr.response.blobImplType, 35 "MemoryBlobImpl", 36 "We want a MemoryBlobImpl" 37 ); 38 resolve(); 39 }; 40 }); 41 }); 42 43 add_task(async _ => { 44 await SpecialPowers.pushPrefEnv({ 45 set: [["dom.blob.memoryToTemporaryFile", 1]], 46 }); 47 48 var data = new Array(2).join("1234567890ABCDEF"); 49 50 await new Promise(resolve => { 51 var xhr = new XMLHttpRequest(); 52 xhr.open( 53 "POST", 54 "http://mochi.test:8888/browser/dom/xhr/tests/temporaryFileBlob.sjs" 55 ); 56 xhr.responseType = "blob"; 57 xhr.send({ 58 toString() { 59 return data; 60 }, 61 }); 62 xhr.onloadend = __ => { 63 is( 64 xhr.response.blobImplType, 65 "StreamBlobImpl[TemporaryFileBlobImpl]", 66 "We want a StreamBlobImpl holding a TemporaryFileBlobImpl on the parent side" 67 ); 68 resolve(); 69 }; 70 }); 71 });