diff --git a/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java b/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java index 96069605ce..594000b2aa 100644 --- a/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java +++ b/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java @@ -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);