tor-browser

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

test_trr_flags.js (1678B)


      1 "use strict";
      2 
      3 /* import-globals-from trr_common.js */
      4 
      5 let trrServer;
      6 add_setup(async function setup() {
      7  trr_test_setup();
      8 
      9  registerCleanupFunction(async () => {
     10    if (trrServer) {
     11      await trrServer.stop();
     12    }
     13    trr_clear_prefs();
     14  });
     15  Services.prefs.setBoolPref("network.dns.always_ai_canonname", true);
     16 });
     17 
     18 add_task(async function test_canonical_flag() {
     19  trrServer = new TRRServer();
     20  await trrServer.start();
     21 
     22  await trrServer.registerDoHAnswers("testdomain.com", "A", {
     23    answers: [
     24      {
     25        name: "testdomain.com",
     26        ttl: 55,
     27        type: "A",
     28        flush: false,
     29        data: "5.5.5.5",
     30      },
     31    ],
     32  });
     33 
     34  Services.prefs.setCharPref(
     35    "network.trr.uri",
     36    `https://foo.example.com:${trrServer.port()}/dns-query`
     37  );
     38  // Disable backup connection
     39  Services.prefs.setBoolPref("network.dns.disableIPv6", true);
     40 
     41  Services.prefs.setIntPref("network.trr.mode", Ci.nsIDNSService.MODE_TRRONLY);
     42 
     43  await new TRRDNSListener("testdomain.com", {
     44    expectedAnswer: "5.5.5.5",
     45    flags: Ci.nsIDNSService.RESOLVE_CANONICAL_NAME,
     46  });
     47  let reqCount = await trrServer.requestCount("testdomain.com", "A");
     48 
     49  await trrServer.registerDoHAnswers("testdomain.com", "A", {
     50    answers: [
     51      {
     52        name: "testdomain.com",
     53        ttl: 55,
     54        type: "A",
     55        flush: false,
     56        data: "1.1.1.1",
     57      },
     58    ],
     59  });
     60 
     61  // Expect to get cached entry
     62  await new TRRDNSListener("testdomain.com", {
     63    expectedAnswer: "5.5.5.5",
     64    flags: Ci.nsIDNSService.RESOLVE_SPECULATE,
     65  });
     66  Assert.equal(
     67    reqCount,
     68    await trrServer.requestCount("testdomain.com", "A"),
     69    "no new request should be made"
     70  );
     71 });