Merge "Support DNS-over-TLS probes in NetworkDiagnostics" am: 64ffa1762f am: 4e04c11379
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1011670 Change-Id: I25a06623d87e6971a9dac73bdea82a78fd6124d6
This commit is contained in:
@@ -62,6 +62,8 @@ import androidx.test.runner.AndroidJUnit4;
|
||||
import com.android.internal.util.MessageUtils;
|
||||
import com.android.internal.util.test.FakeSettingsProvider;
|
||||
|
||||
import libcore.net.InetAddressUtils;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
@@ -379,4 +381,49 @@ public class DnsManagerTest {
|
||||
assertEquals(name, dnsTransTypes.get(i));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetPrivateDnsConfigForNetwork() throws Exception {
|
||||
final Network network = new Network(TEST_NETID);
|
||||
final InetAddress dnsAddr = InetAddressUtils.parseNumericAddress("3.3.3.3");
|
||||
final InetAddress[] tlsAddrs = new InetAddress[]{
|
||||
InetAddressUtils.parseNumericAddress("6.6.6.6"),
|
||||
InetAddressUtils.parseNumericAddress("2001:db8:66:66::1")
|
||||
};
|
||||
final String tlsName = "strictmode.com";
|
||||
LinkProperties lp = new LinkProperties();
|
||||
lp.addDnsServer(dnsAddr);
|
||||
|
||||
// The PrivateDnsConfig map is empty, so the default PRIVATE_DNS_OFF is returned.
|
||||
PrivateDnsConfig privateDnsCfg = mDnsManager.getPrivateDnsConfig(network);
|
||||
assertFalse(privateDnsCfg.useTls);
|
||||
assertEquals("", privateDnsCfg.hostname);
|
||||
assertEquals(new InetAddress[0], privateDnsCfg.ips);
|
||||
|
||||
// An entry with default PrivateDnsConfig is added to the PrivateDnsConfig map.
|
||||
mDnsManager.updatePrivateDns(network, mDnsManager.getPrivateDnsConfig());
|
||||
mDnsManager.noteDnsServersForNetwork(TEST_NETID, lp);
|
||||
mDnsManager.updatePrivateDnsValidation(
|
||||
new DnsManager.PrivateDnsValidationUpdate(TEST_NETID, dnsAddr, "", true));
|
||||
mDnsManager.updatePrivateDnsStatus(TEST_NETID, lp);
|
||||
privateDnsCfg = mDnsManager.getPrivateDnsConfig(network);
|
||||
assertTrue(privateDnsCfg.useTls);
|
||||
assertEquals("", privateDnsCfg.hostname);
|
||||
assertEquals(new InetAddress[0], privateDnsCfg.ips);
|
||||
|
||||
// The original entry is overwritten by a new PrivateDnsConfig.
|
||||
mDnsManager.updatePrivateDns(network, new PrivateDnsConfig(tlsName, tlsAddrs));
|
||||
mDnsManager.updatePrivateDnsStatus(TEST_NETID, lp);
|
||||
privateDnsCfg = mDnsManager.getPrivateDnsConfig(network);
|
||||
assertTrue(privateDnsCfg.useTls);
|
||||
assertEquals(tlsName, privateDnsCfg.hostname);
|
||||
assertEquals(tlsAddrs, privateDnsCfg.ips);
|
||||
|
||||
// The network is removed, so the PrivateDnsConfig map becomes empty again.
|
||||
mDnsManager.removeNetwork(network);
|
||||
privateDnsCfg = mDnsManager.getPrivateDnsConfig(network);
|
||||
assertFalse(privateDnsCfg.useTls);
|
||||
assertEquals("", privateDnsCfg.hostname);
|
||||
assertEquals(new InetAddress[0], privateDnsCfg.ips);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user