test_trr_httpssvc_wrap.js (1670B)
1 "use strict"; 2 3 const { NodeHTTPSServer } = ChromeUtils.importESModule( 4 "resource://testing-common/NodeServer.sys.mjs" 5 ); 6 7 add_setup(async function setup() { 8 // Set to allow the cert presented by our H2 server 9 do_get_profile(); 10 11 trr_test_setup(); 12 13 Services.prefs.setBoolPref("network.security.esni.enabled", false); 14 15 // The child will set up the TRR server, but it's not allowed 16 // to install the cert, so we do it from here. 17 await NodeHTTPSServer.installCert("http2-ca.pem"); 18 19 registerCleanupFunction(async () => { 20 trr_clear_prefs(); 21 Services.prefs.clearUserPref("network.security.esni.enabled"); 22 }); 23 }); 24 25 add_task(function run_test() { 26 let ipcListener = { 27 receiveMessage(message) { 28 if (message.name == "set-trr-uri") { 29 Services.prefs.setCharPref("network.trr.uri", message.data); 30 Services.prefs.setIntPref("network.trr.mode", 3); 31 } else if (message.name == "clearCache") { 32 Services.dns.clearCache(true); 33 } 34 do_send_remote_message(`${message.name}-done`); 35 }, 36 }; 37 38 let mm = Cc["@mozilla.org/parentprocessmessagemanager;1"].getService(); 39 mm.addMessageListener("set-trr-uri", ipcListener); 40 mm.addMessageListener("clearCache", ipcListener); 41 42 do_await_remote_message("set-port-prefixed-pref").then(() => { 43 Services.prefs.setBoolPref( 44 "network.dns.port_prefixed_qname_https_rr", 45 true 46 ); 47 do_send_remote_message("set-port-prefixed-pref-done"); 48 }); 49 50 run_test_in_child("../unit/test_trr_httpssvc.js", () => { 51 mm.removeMessageListener("set-trr-uri", ipcListener); 52 mm.removeMessageListener("clearCache", ipcListener); 53 do_test_finished(); 54 }); 55 });