summaryrefslogtreecommitdiffstats
path: root/netwerk/test/unit/test_dns_disable_ipv4.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
commit43a97878ce14b72f0981164f87f2e35e14151312 (patch)
tree620249daf56c0258faa40cbdcf9cfba06de2a846 /netwerk/test/unit/test_dns_disable_ipv4.js
parentInitial commit. (diff)
downloadfirefox-43a97878ce14b72f0981164f87f2e35e14151312.tar.xz
firefox-43a97878ce14b72f0981164f87f2e35e14151312.zip
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'netwerk/test/unit/test_dns_disable_ipv4.js')
-rw-r--r--netwerk/test/unit/test_dns_disable_ipv4.js68
1 files changed, 68 insertions, 0 deletions
diff --git a/netwerk/test/unit/test_dns_disable_ipv4.js b/netwerk/test/unit/test_dns_disable_ipv4.js
new file mode 100644
index 0000000000..48a97f2399
--- /dev/null
+++ b/netwerk/test/unit/test_dns_disable_ipv4.js
@@ -0,0 +1,68 @@
+//
+// Tests that calling asyncResolve with the RESOLVE_DISABLE_IPV4 flag doesn't
+// return any IPv4 addresses.
+//
+
+"use strict";
+
+const gOverride = Cc["@mozilla.org/network/native-dns-override;1"].getService(
+ Ci.nsINativeDNSResolverOverride
+);
+
+const defaultOriginAttributes = {};
+
+add_task(async function test_none() {
+ let [, inRecord] = await new Promise(resolve => {
+ let listener = {
+ onLookupComplete(inRequest, inRecord, inStatus) {
+ resolve([inRequest, inRecord, inStatus]);
+ },
+ QueryInterface: ChromeUtils.generateQI(["nsIDNSListener"]),
+ };
+
+ Services.dns.asyncResolve(
+ "example.org",
+ Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
+ Ci.nsIDNSService.RESOLVE_DISABLE_IPV4,
+ null, // resolverInfo
+ listener,
+ null,
+ defaultOriginAttributes
+ );
+ });
+
+ if (inRecord && inRecord.QueryInterface(Ci.nsIDNSAddrRecord)) {
+ while (inRecord.hasMore()) {
+ let nextIP = inRecord.getNextAddrAsString();
+ ok(nextIP.includes(":"), `${nextIP} should be IPv6`);
+ }
+ }
+});
+
+add_task(async function test_some() {
+ Services.dns.clearCache(true);
+ gOverride.addIPOverride("example.com", "1.1.1.1");
+ gOverride.addIPOverride("example.org", "::1:2:3");
+ let [, inRecord] = await new Promise(resolve => {
+ let listener = {
+ onLookupComplete(inRequest, inRecord, inStatus) {
+ resolve([inRequest, inRecord, inStatus]);
+ },
+ QueryInterface: ChromeUtils.generateQI(["nsIDNSListener"]),
+ };
+
+ Services.dns.asyncResolve(
+ "example.org",
+ Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
+ Ci.nsIDNSService.RESOLVE_DISABLE_IPV4,
+ null, // resolverInfo
+ listener,
+ null,
+ defaultOriginAttributes
+ );
+ });
+
+ ok(inRecord.QueryInterface(Ci.nsIDNSAddrRecord));
+ equal(inRecord.getNextAddrAsString(), "::1:2:3");
+ equal(inRecord.hasMore(), false);
+});