Add test for ConnectivityService API isPrivateDnsBroken
Bug: 189161363
Test: atest android.net.cts.ConnectivityManagerTest
atest CtsNetTestCasesLatestSdk:ConnectivityManagerTest
Original-Change: https://android-review.googlesource.com/1719395
Merged-In: Ib45aa439683d48360652a91d7a0609dc82adda33
Change-Id: Ib45aa439683d48360652a91d7a0609dc82adda33
This commit is contained in:
@@ -152,6 +152,7 @@ import com.android.networkstack.apishim.NetworkInformationShimImpl;
|
|||||||
import com.android.networkstack.apishim.common.ConnectivityManagerShim;
|
import com.android.networkstack.apishim.common.ConnectivityManagerShim;
|
||||||
import com.android.testutils.CompatUtil;
|
import com.android.testutils.CompatUtil;
|
||||||
import com.android.testutils.DevSdkIgnoreRule;
|
import com.android.testutils.DevSdkIgnoreRule;
|
||||||
|
import com.android.testutils.DevSdkIgnoreRule.IgnoreUpTo;
|
||||||
import com.android.testutils.DevSdkIgnoreRuleKt;
|
import com.android.testutils.DevSdkIgnoreRuleKt;
|
||||||
import com.android.testutils.RecorderCallback.CallbackEntry;
|
import com.android.testutils.RecorderCallback.CallbackEntry;
|
||||||
import com.android.testutils.SkipPresubmit;
|
import com.android.testutils.SkipPresubmit;
|
||||||
@@ -674,6 +675,31 @@ public class ConnectivityManagerTest {
|
|||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test @IgnoreUpTo(Build.VERSION_CODES.Q)
|
||||||
|
public void testIsPrivateDnsBroken() throws InterruptedException {
|
||||||
|
final String invalidPrivateDnsServer = "invalidhostname.example.com";
|
||||||
|
final String goodPrivateDnsServer = "dns.google";
|
||||||
|
mCtsNetUtils.storePrivateDnsSetting();
|
||||||
|
final TestableNetworkCallback cb = new TestableNetworkCallback();
|
||||||
|
mCm.registerNetworkCallback(makeWifiNetworkRequest(), cb);
|
||||||
|
try {
|
||||||
|
// Verifying the good private DNS sever
|
||||||
|
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()));
|
||||||
|
|
||||||
|
// Verifying the broken private DNS sever
|
||||||
|
mCtsNetUtils.setPrivateDnsStrictMode(invalidPrivateDnsServer);
|
||||||
|
cb.eventuallyExpect(CallbackEntry.NETWORK_CAPS_UPDATED, NETWORK_CALLBACK_TIMEOUT_MS,
|
||||||
|
entry -> (((CallbackEntry.CapabilitiesChanged) entry).getCaps()
|
||||||
|
.isPrivateDnsBroken()) && networkForPrivateDns.equals(entry.getNetwork()));
|
||||||
|
} finally {
|
||||||
|
mCtsNetUtils.restorePrivateDnsSetting();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Exercises both registerNetworkCallback and unregisterNetworkCallback. This checks to
|
* Exercises both registerNetworkCallback and unregisterNetworkCallback. This checks to
|
||||||
* see if we get a callback for the TRANSPORT_WIFI transport type being available.
|
* see if we get a callback for the TRANSPORT_WIFI transport type being available.
|
||||||
|
|||||||
Reference in New Issue
Block a user