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 : let xhr2 = new XMLHttpRequest(); 8 : 1 : 9 : 1 : let content = 'Hello'; 10 : 1 : let blob; 11 : 1 : 12 [ + ]: 1 : xhr.onreadystatechange = () => { 13 [ + ]: 4 : if(xhr.readyState === 4){ 14 : 1 : 15 : 1 : blob = xhr.response; 16 : 1 : 17 : 1 : assert(blob instanceof Blob, 'Blob from XHR Response'); 18 : 1 : 19 : 1 : xhr2.open('POST', `${activeURL}/content.py`, true); 20 : 1 : xhr2.send(blob); 21 : 1 : } 22 : 1 : }; 23 : 1 : 24 [ + ]: 1 : xhr2.onreadystatechange = () => { 25 [ + ]: 4 : if(xhr2.readyState === 4){ 26 : 1 : 27 : 1 : assert.strictEqual(xhr2.status, 200); 28 : 1 : assert.strictEqual(xhr2.response, content); 29 : 1 : 30 : 1 : xhr.onreadystatechange = null; 31 : 1 : xhr2.onreadystatechange = null; 32 : 1 : } 33 : 1 : }; 34 : 1 : 35 : 1 : xhr.open('GET', `${activeURL}/content.py?content=${content}`, true); 36 : 1 : xhr.responseType = 'blob'; 37 : 1 : xhr.send(); 38 : 1 : } 39 : 2 : 40 : 2 : /* 41 : 2 : * send-data-blob.htm 42 : 2 : * 43 : 2 : 44 : 2 : <!DOCTYPE html> 45 : 2 : <html> 46 : 2 : <head> 47 : 2 : <link rel="help" href="https://xhr.spec.whatwg.org/#the-send()-method" data-tested-assertations="following::ol[1]/li[4] following::ol[1]/li[4]/dl[1]/dd[2]/p[3]"/> 48 : 2 : <link rel="help" href="https://xhr.spec.whatwg.org/#the-status-attribute" data-tested-assertations="following::ol[1]/li[3]"/> 49 : 2 : <link rel="help" href="https://xhr.spec.whatwg.org/#the-responsetype-attribute" data-tested-assertations="following::ol[1]/li[4]"/> 50 : 2 : <link rel="help" href="https://xhr.spec.whatwg.org/#the-response-attribute" data-tested-assertations="following::a[contains(@href,'#blob-response-entity-body')]/.."/> 51 : 2 : 52 : 2 : <script src="/resources/testharness.js"></script> 53 : 2 : <script src="/resources/testharnessreport.js"></script> 54 : 2 : <title>XMLHttpRequest: The send() method: Blob data</title> 55 : 2 : </head> 56 : 2 : 57 : 2 : <body> 58 : 2 : <div id="log"></div> 59 : 2 : 60 : 2 : <script type="text/javascript"> 61 : 2 : var test = async_test(); 62 : 2 : 63 : 2 : test.step(function() 64 : 2 : { 65 : 2 : var xhr = new XMLHttpRequest(); 66 : 2 : var xhr2 = new XMLHttpRequest(); 67 : 2 : 68 : 2 : var content = "Hello"; 69 : 2 : var blob; 70 : 2 : 71 : 2 : xhr.onreadystatechange = function() 72 : 2 : { 73 : 2 : if (xhr.readyState == 4) 74 : 2 : { 75 : 2 : test.step(function() 76 : 2 : { 77 : 2 : blob = xhr.response; 78 : 2 : assert_true(blob instanceof Blob, "Blob from XHR Response"); 79 : 2 : 80 : 2 : xhr2.open("POST", "./resources/content.py", true); 81 : 2 : xhr2.send(blob); 82 : 2 : }); 83 : 2 : } 84 : 2 : } 85 : 2 : 86 : 2 : xhr2.onreadystatechange = function() 87 : 2 : { 88 : 2 : if (xhr2.readyState == 4) 89 : 2 : { 90 : 2 : test.step(function() 91 : 2 : { 92 : 2 : assert_equals(xhr2.status, 200); 93 : 2 : assert_equals(xhr2.response, content); 94 : 2 : test.done(); 95 : 2 : }); 96 : 2 : } 97 : 2 : }; 98 : 2 : 99 : 2 : xhr.open("GET", "./resources/content.py?content=" + content, true); 100 : 2 : xhr.responseType = "blob"; 101 : 2 : xhr.send(); 102 : 2 : }); 103 : 2 : </script> 104 : 2 : </body> 105 : 2 : </html> 106 : 2 : 107 : 2 : * 108 : 2 : * send-data-blob.htm 109 : 2 : */