Bug 1807268 - Re-enable verifyShowClipboardSuggestionsToggleTest UI test r=jajohnson
[gecko.git] / netwerk / test / unit / test_dns_onion.js
blobe13974a39e3a686a1f05b80803964e6a30bbd79a
1 "use strict";
3 var mainThread = Services.tm.currentThread;
5 var onionPref;
6 var localdomainPref;
7 var prefs = Services.prefs;
9 // check that we don't lookup .onion
10 var listenerBlock = {
11   onLookupComplete(inRequest, inRecord, inStatus) {
12     Assert.ok(!Components.isSuccessCode(inStatus));
13     do_test_dontBlock();
14   },
15   QueryInterface: ChromeUtils.generateQI(["nsIDNSListener"]),
18 // check that we do lookup .onion (via pref)
19 var listenerDontBlock = {
20   onLookupComplete(inRequest, inRecord) {
21     inRecord.QueryInterface(Ci.nsIDNSAddrRecord);
22     var answer = inRecord.getNextAddrAsString();
23     Assert.ok(answer == "127.0.0.1" || answer == "::1");
24     all_done();
25   },
26   QueryInterface: ChromeUtils.generateQI(["nsIDNSListener"]),
29 const defaultOriginAttributes = {};
31 function do_test_dontBlock() {
32   prefs.setBoolPref("network.dns.blockDotOnion", false);
33   Services.dns.asyncResolve(
34     "private.onion",
35     Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
36     0,
37     null, // resolverInfo
38     listenerDontBlock,
39     mainThread,
40     defaultOriginAttributes
41   );
44 function do_test_block() {
45   prefs.setBoolPref("network.dns.blockDotOnion", true);
46   try {
47     Services.dns.asyncResolve(
48       "private.onion",
49       Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
50       0,
51       null, // resolverInfo
52       listenerBlock,
53       mainThread,
54       defaultOriginAttributes
55     );
56   } catch (e) {
57     // it is ok for this negative test to fail fast
58     Assert.ok(true);
59     do_test_dontBlock();
60   }
63 function all_done() {
64   // reset locally modified prefs
65   prefs.setCharPref("network.dns.localDomains", localdomainPref);
66   prefs.setBoolPref("network.dns.blockDotOnion", onionPref);
67   do_test_finished();
70 function run_test() {
71   onionPref = prefs.getBoolPref("network.dns.blockDotOnion");
72   localdomainPref = prefs.getCharPref("network.dns.localDomains");
73   prefs.setCharPref("network.dns.localDomains", "private.onion");
74   do_test_block();
75   do_test_pending();