test_close.js (2032B)
1 // 2 // Simple WebTransport test 3 // 4 // keep eslint happy until it knows about WebTransport 5 /* global WebTransport:false */ 6 7 "use strict"; 8 9 var h3Port; 10 var host; 11 12 registerCleanupFunction(async () => { 13 Services.prefs.clearUserPref("network.dns.localDomains"); 14 }); 15 16 var { NetUtil } = ChromeUtils.importESModule( 17 "resource://gre/modules/NetUtil.sys.mjs" 18 ); 19 20 function readFile(file) { 21 let fstream = Cc["@mozilla.org/network/file-input-stream;1"].createInstance( 22 Ci.nsIFileInputStream 23 ); 24 fstream.init(file, -1, 0, 0); 25 let data = NetUtil.readInputStreamToString(fstream, fstream.available()); 26 fstream.close(); 27 return data; 28 } 29 30 function addCertFromFile(certdb, filename, trustString) { 31 let certFile = do_get_file(filename, false); 32 let pem = readFile(certFile) 33 .replace(/-----BEGIN CERTIFICATE-----/, "") 34 .replace(/-----END CERTIFICATE-----/, "") 35 .replace(/[\r\n]/g, ""); 36 certdb.addCertFromBase64(pem, trustString); 37 } 38 39 add_task(async function setup() { 40 Services.prefs.setCharPref("network.dns.localDomains", "foo.example.com"); 41 42 h3Port = Services.env.get("MOZHTTP3_PORT"); 43 Assert.notEqual(h3Port, null); 44 Assert.notEqual(h3Port, ""); 45 host = "foo.example.com:" + h3Port; 46 do_get_profile(); 47 48 let certdb = Cc["@mozilla.org/security/x509certdb;1"].getService( 49 Ci.nsIX509CertDB 50 ); 51 // `../unit/` so that unit_ipc tests can use as well 52 addCertFromFile( 53 certdb, 54 "../../../../netwerk/test/unit/http2-ca.pem", 55 "CTu,u,u" 56 ); 57 }); 58 59 add_task(async function test_webtransport_create() { 60 Services.prefs.setBoolPref("network.webtransport.enabled", true); 61 62 const wt = new WebTransport("https://" + host + "/success"); 63 await wt.ready; 64 dump("**** ready\n"); 65 66 wt.close(); 67 }); 68 69 // bug 1840626 - cancel and then close 70 add_task(async function test_wt_stream_create_bidi_cancel_close() { 71 let wt = new WebTransport("https://" + host + "/success"); 72 await wt.ready; 73 74 await wt.createBidirectionalStream(); 75 await wt.incomingBidirectionalStreams.cancel(undefined); 76 wt.close(); 77 });