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 : request('arraybuffer'); 7 : 1 : request('blob'); 8 : 1 : request('json'); 9 : 1 : request('text'); 10 : 1 : request('document'); 11 : 1 : 12 [ + ]: 1 : function request(type){ 13 : 5 : 14 : 5 : let xhr = new XMLHttpRequest; 15 : 5 : 16 : 5 : xhr.onreadystatechange = () => { 17 : 0 : assert(false, 'No events should fire here'); 18 : 5 : }; 19 : 5 : 20 : 5 : xhr.responseType = type; 21 : 5 : 22 : 5 : assert.throws( 23 [ + ]: 5 : () => { 24 : 5 : xhr.open('GET', `${activeURL}/...`, false); 25 : 5 : }, 26 [ + ]: 5 : (err) => { 27 : 5 : assert(err instanceof DOMException, 'DOMException expected'); 28 : 5 : assert(err.name === 'InvalidAccessError', 'InvalidAccessError expected'); 29 : 5 : 30 : 5 : return true; 31 : 5 : } 32 : 5 : ); 33 : 5 : } 34 : 1 : } 35 : 2 : 36 : 2 : /* 37 : 2 : * open-method-responsetype-set-sync.htm 38 : 2 : * 39 : 2 : 40 : 2 : <!DOCTYPE html> 41 : 2 : <html> 42 : 2 : <head> 43 : 2 : <title>XMLHttpRequest: open() sync request not allowed if responseType is set</title> 44 : 2 : <script src="/resources/testharness.js"></script> 45 : 2 : <script src="/resources/testharnessreport.js"></script> 46 : 2 : <link rel="help" href="https://xhr.spec.whatwg.org/#the-open()-method" data-tested-assertations="following::ol[1]/li[10]" /> 47 : 2 : 48 : 2 : </head> 49 : 2 : <body> 50 : 2 : <div id="log"></div> 51 : 2 : <script> 52 : 2 : // Note: the case of calling synchronous open() first, and then setting 53 : 2 : // responseType, is tested in responsetype.html. 54 : 2 : function request(type) { 55 : 2 : test(function() { 56 : 2 : var client = new XMLHttpRequest() 57 : 2 : client.onreadystatechange = this.step_func(function(){ 58 : 2 : assert_unreached('No events should fire here') 59 : 2 : }) 60 : 2 : client.responseType = type 61 : 2 : assert_throws_dom("InvalidAccessError", function() { client.open('GET', "...", false) }) 62 : 2 : }, document.title + " (" + type + ")") 63 : 2 : } 64 : 2 : request("arraybuffer") 65 : 2 : request("blob") 66 : 2 : request("json") 67 : 2 : request("text") 68 : 2 : request("document") 69 : 2 : </script> 70 : 2 : </body> 71 : 2 : </html> 72 : 2 : 73 : 2 : * 74 : 2 : * open-method-responsetype-set-sync.htm 75 : 2 : */