tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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 });