summaryrefslogtreecommitdiffstats
path: root/netwerk/test/unit/test_dns_disable_ipv6.js
blob: af5558d53e0e3003319f7280b5c1cb55ca9e4bd0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//
// Tests that calling asyncResolve with the RESOLVE_DISABLE_IPV6 flag doesn't
// return any IPv6 addresses.
//

var dns = Cc["@mozilla.org/network/dns-service;1"].getService(Ci.nsIDNSService);
var ioService = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);

var listener = {
  onLookupComplete: function(inRequest, inRecord, inStatus) {
    if (inStatus != Cr.NS_OK) {
      do_check_eq(inStatus, Cr.NS_ERROR_UNKNOWN_HOST);
      do_test_finished();
      return;
    }

    while (true) {
      try {
        var answer = inRecord.getNextAddrAsString();
        // If there is an answer it should be an IPv4  address
        dump(answer);
        do_check_true(answer.indexOf(':') == -1);
        do_check_true(answer.indexOf('.') != -1);
      } catch (e) {
        break;
      }
    }
    do_test_finished();
  }
};

function run_test() {
  do_test_pending();
  try {
    dns.asyncResolve("example.com", Ci.nsIDNSService.RESOLVE_DISABLE_IPV6, listener, null);
  } catch (e) {
    dump(e);
    do_check_true(false);
    do_test_finished();
  }
}