Merge "Factorize ignoreValidationAfterRoam tests"

This commit is contained in:
Jean Chalard
2022-09-16 07:48:57 +00:00
committed by Gerrit Code Review

View File

@@ -16570,11 +16570,9 @@ public class ConnectivityServiceTest {
assertThrows(NullPointerException.class, () -> mService.unofferNetwork(null));
}
@Test
public void testIgnoreValidationAfterRoamDisabled() throws Exception {
public void doTestIgnoreValidationAfterRoam(final boolean enabled) throws Exception {
assumeFalse(SdkLevel.isAtLeastT());
// testIgnoreValidationAfterRoam off
doReturn(-1).when(mResources)
doReturn(enabled ? 5000 : -1).when(mResources)
.getInteger(R.integer.config_validationFailureAfterRoamIgnoreTimeMillis);
mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR);
@@ -16599,46 +16597,17 @@ public class ConnectivityServiceTest {
registerDefaultNetworkCallbacks();
mDefaultNetworkCallback.expectAvailableCallbacksValidated(mWiFiNetworkAgent);
// Wi-Fi roaming from wifiNc1 to wifiNc2.
// Wi-Fi roaming from wifiNc1 to wifiNc2, and Wi-Fi becomes invalid. If validation
// failures after roam are not ignored, this will cause cell to become the default network.
// If they are ignored, this will not cause a switch until later.
mWiFiNetworkAgent.setNetworkCapabilities(wifiNc2, true);
mWiFiNetworkAgent.setNetworkInvalid(false);
mWiFiNetworkAgent.setNetworkInvalid(false /* isStrictMode */);
mCm.reportNetworkConnectivity(mWiFiNetworkAgent.getNetwork(), false);
mDefaultNetworkCallback.expectAvailableCallbacksValidated(mCellNetworkAgent);
}
@Test
public void testIgnoreValidationAfterRoamEnabled() throws Exception {
assumeFalse(SdkLevel.isAtLeastT());
// testIgnoreValidationAfterRoam on
doReturn(5000).when(mResources)
.getInteger(R.integer.config_validationFailureAfterRoamIgnoreTimeMillis);
mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR);
mCellNetworkAgent.connect(true);
NetworkCapabilities wifiNc1 = new NetworkCapabilities()
.addTransportType(TRANSPORT_WIFI)
.setTransportInfo(new WifiInfo.Builder().setBssid("AA:AA:AA:AA:AA:AA").build());
NetworkCapabilities wifiNc2 = new NetworkCapabilities()
.addTransportType(TRANSPORT_WIFI)
.setTransportInfo(new WifiInfo.Builder().setBssid("BB:BB:BB:BB:BB:BB").build());
final LinkProperties wifiLp = new LinkProperties();
wifiLp.setInterfaceName(WIFI_IFNAME);
mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI, wifiLp, wifiNc1);
mWiFiNetworkAgent.connect(true);
// The default network will be switching to Wi-Fi Network.
final TestNetworkCallback wifiNetworkCallback = new TestNetworkCallback();
final NetworkRequest wifiRequest = new NetworkRequest.Builder()
.addTransportType(TRANSPORT_WIFI).build();
mCm.registerNetworkCallback(wifiRequest, wifiNetworkCallback);
wifiNetworkCallback.expectAvailableCallbacksValidated(mWiFiNetworkAgent);
registerDefaultNetworkCallbacks();
mDefaultNetworkCallback.expectAvailableCallbacksValidated(mWiFiNetworkAgent);
// Wi-Fi roaming from wifiNc1 to wifiNc2.
mWiFiNetworkAgent.setNetworkCapabilities(wifiNc2, true);
mWiFiNetworkAgent.setNetworkInvalid(false);
mCm.reportNetworkConnectivity(mWiFiNetworkAgent.getNetwork(), false);
if (!enabled) {
mDefaultNetworkCallback.expectAvailableCallbacksValidated(mCellNetworkAgent);
return;
}
// Network validation failed, but the result will be ignored.
assertTrue(mCm.getNetworkCapabilities(mWiFiNetworkAgent.getNetwork()).hasCapability(
@@ -16657,6 +16626,15 @@ public class ConnectivityServiceTest {
mDefaultNetworkCallback.expectAvailableCallbacksValidated(mCellNetworkAgent);
}
@Test
public void testIgnoreValidationAfterRoamDisabled() throws Exception {
doTestIgnoreValidationAfterRoam(false /* enabled */);
}
@Test
public void testIgnoreValidationAfterRoamEnabled() throws Exception {
doTestIgnoreValidationAfterRoam(true /* enabled */);
}
@Test
public void testLegacyTetheringApiGuardWithProperPermission() throws Exception {
final String testIface = "test0";