tor-browser

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

test_dns_localredirect.js (1306B)


      1 "use strict";
      2 
      3 var prefs = Services.prefs;
      4 
      5 var nextTest;
      6 
      7 var listener = {
      8  onLookupComplete(inRequest, inRecord) {
      9    inRecord.QueryInterface(Ci.nsIDNSAddrRecord);
     10    var answer = inRecord.getNextAddrAsString();
     11    Assert.ok(answer == "127.0.0.1" || answer == "::1");
     12 
     13    nextTest();
     14    do_test_finished();
     15  },
     16  QueryInterface: ChromeUtils.generateQI(["nsIDNSListener"]),
     17 };
     18 
     19 const defaultOriginAttributes = {};
     20 
     21 function run_test() {
     22  prefs.setCharPref("network.dns.localDomains", "local.vingtetun.org");
     23 
     24  var mainThread = Services.tm.currentThread;
     25  nextTest = do_test_2;
     26  Services.dns.asyncResolve(
     27    "local.vingtetun.org",
     28    Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
     29    0,
     30    null, // resolverInfo
     31    listener,
     32    mainThread,
     33    defaultOriginAttributes
     34  );
     35 
     36  do_test_pending();
     37 }
     38 
     39 function do_test_2() {
     40  var mainThread = Services.tm.currentThread;
     41  nextTest = testsDone;
     42  prefs.setCharPref("network.dns.forceResolve", "localhost");
     43  Services.dns.asyncResolve(
     44    "www.example.com",
     45    Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
     46    0,
     47    null, // resolverInfo
     48    listener,
     49    mainThread,
     50    defaultOriginAttributes
     51  );
     52 
     53  do_test_pending();
     54 }
     55 
     56 function testsDone() {
     57  prefs.clearUserPref("network.dns.localDomains");
     58  prefs.clearUserPref("network.dns.forceResolve");
     59 }