test_xhr_document.js (1361B)
1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 5 var { HttpServer } = ChromeUtils.importESModule( 6 "resource://testing-common/httpd.sys.mjs" 7 ); 8 9 var server = new HttpServer(); 10 server.start(-1); 11 12 var docbody = 13 '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body></body></html>'; 14 15 function handler(metadata, response) { 16 var { NetUtil } = ChromeUtils.importESModule( 17 "resource://gre/modules/NetUtil.sys.mjs" 18 ); 19 20 let body = NetUtil.readInputStreamToString( 21 metadata.bodyInputStream, 22 metadata.bodyInputStream.available() 23 ); 24 response.setStatusLine(metadata.httpVersion, 200, "OK"); 25 response.write(body, body.length); 26 } 27 28 function run_test() { 29 do_test_pending(); 30 server.registerPathHandler("/foo", handler); 31 32 var parser = new DOMParser(); 33 let doc = parser.parseFromString(docbody, "text/html"); 34 let xhr = new XMLHttpRequest(); 35 xhr.onload = function () { 36 Assert.equal(xhr.responseText, docbody); 37 server.stop(do_test_finished); 38 }; 39 xhr.onerror = function () { 40 Assert.equal(false, false); 41 server.stop(do_test_finished); 42 }; 43 xhr.open( 44 "POST", 45 "http://localhost:" + server.identity.primaryPort + "/foo", 46 true 47 ); 48 xhr.send(doc); 49 }