Merge "Wait for network to be validated when setting a valid private DNS" am: acd3e2be33 am: 58f526a27b am: de8bb78107 am: acc2824b10

Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1801947

Change-Id: I35dd39ea64a0d5b4ab461ee270b11d27fcc53ecc
This commit is contained in:
Lucas Lin
2021-10-21 12:36:37 +00:00
committed by Automerger Merge Worker

View File

@@ -714,6 +714,12 @@ public class ConnectivityManagerTest {
.build();
}
private boolean hasPrivateDnsValidated(CallbackEntry entry, Network networkForPrivateDns) {
if (!networkForPrivateDns.equals(entry.getNetwork())) return false;
final NetworkCapabilities nc = ((CallbackEntry.CapabilitiesChanged) entry).getCaps();
return !nc.isPrivateDnsBroken() && nc.hasCapability(NET_CAPABILITY_VALIDATED);
}
@AppModeFull(reason = "WRITE_SECURE_SETTINGS permission can't be granted to instant apps")
@Test @IgnoreUpTo(Build.VERSION_CODES.Q)
public void testIsPrivateDnsBroken() throws InterruptedException {
@@ -727,8 +733,7 @@ public class ConnectivityManagerTest {
mCtsNetUtils.setPrivateDnsStrictMode(goodPrivateDnsServer);
final Network networkForPrivateDns = mCtsNetUtils.ensureWifiConnected();
cb.eventuallyExpect(CallbackEntry.NETWORK_CAPS_UPDATED, NETWORK_CALLBACK_TIMEOUT_MS,
entry -> (!((CallbackEntry.CapabilitiesChanged) entry).getCaps()
.isPrivateDnsBroken()) && networkForPrivateDns.equals(entry.getNetwork()));
entry -> hasPrivateDnsValidated(entry, networkForPrivateDns));
// Verifying the broken private DNS sever
mCtsNetUtils.setPrivateDnsStrictMode(invalidPrivateDnsServer);