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 });