summaryrefslogtreecommitdiff
path: root/test/com/google/android/iwlan/IwlanDataServiceTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'test/com/google/android/iwlan/IwlanDataServiceTest.java')
-rw-r--r--test/com/google/android/iwlan/IwlanDataServiceTest.java108
1 files changed, 60 insertions, 48 deletions
diff --git a/test/com/google/android/iwlan/IwlanDataServiceTest.java b/test/com/google/android/iwlan/IwlanDataServiceTest.java
index f5914d9..6168b82 100644
--- a/test/com/google/android/iwlan/IwlanDataServiceTest.java
+++ b/test/com/google/android/iwlan/IwlanDataServiceTest.java
@@ -27,6 +27,9 @@ import static android.telephony.TelephonyManager.NETWORK_TYPE_BITMASK_NR;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession;
+import static com.google.android.iwlan.epdg.EpdgTunnelManager.BRINGDOWN_REASON_DEACTIVATE_DATA_CALL;
+import static com.google.android.iwlan.epdg.EpdgTunnelManager.BRINGDOWN_REASON_NETWORK_UPDATE_WHEN_TUNNEL_IN_BRINGUP;
+
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotEquals;
@@ -142,7 +145,6 @@ public class IwlanDataServiceTest {
@Mock private LinkAddress mMockIPv6LinkAddress;
@Mock private Inet4Address mMockInet4Address;
@Mock private Inet6Address mMockInet6Address;
- @Mock private CarrierConfigManager mMockCarrierConfigManager;
@Mock private FeatureFlags mFakeFeatureFlags;
MockitoSession mStaticMockSession;
@@ -213,7 +215,6 @@ public class IwlanDataServiceTest {
.mockStatic(ErrorPolicyManager.class)
.mockStatic(IwlanBroadcastReceiver.class)
.mockStatic(SubscriptionManager.class)
- .mockStatic(IwlanCarrierConfig.class)
.strictness(Strictness.LENIENT)
.startMocking();
@@ -262,8 +263,6 @@ public class IwlanDataServiceTest {
mIwlanDataService = spy(new IwlanDataService(mFakeFeatureFlags));
- when(mMockContext.getSystemService(eq(CarrierConfigManager.class)))
- .thenReturn(mMockCarrierConfigManager);
// Injects the test looper into the IwlanDataServiceHandler
doReturn(mTestLooper.getLooper()).when(mIwlanDataService).getLooper();
mIwlanDataService.setAppContext(mMockContext);
@@ -281,8 +280,9 @@ public class IwlanDataServiceTest {
when(mMockConnectivityManager.getLinkProperties(eq(mMockNetwork)))
.thenReturn(mLinkProperties);
-
when(mMockTunnelLinkProperties.ifaceName()).thenReturn("mockipsec0");
+
+ mockCarrierConfigForN1Mode(true);
}
private void moveTimeForwardAndDispatch(long milliSeconds) {
@@ -293,6 +293,7 @@ public class IwlanDataServiceTest {
@After
public void cleanUp() throws Exception {
mStaticMockSession.finishMocking();
+ IwlanCarrierConfig.resetTestConfig();
mSpyIwlanDataServiceProvider.close();
mTestLooper.dispatchAll();
if (mIwlanDataService != null) {
@@ -458,7 +459,8 @@ public class IwlanDataServiceTest {
networkCallback.onLinkPropertiesChanged(mMockNetwork, newLinkProperties);
verify(mMockEpdgTunnelManager, times(1))
.updateNetwork(eq(mMockNetwork), eq(newLinkProperties));
- verify(mMockEpdgTunnelManager, never()).closeTunnel(any(), anyBoolean(), any(), any());
+ verify(mMockEpdgTunnelManager, never())
+ .closeTunnel(any(), anyBoolean(), any(), any(), anyInt());
}
@Test
@@ -867,7 +869,8 @@ public class IwlanDataServiceTest {
eq(TEST_APN_NAME),
eq(false),
any(IwlanTunnelCallback.class),
- any(IwlanTunnelMetricsImpl.class));
+ any(IwlanTunnelMetricsImpl.class),
+ eq(BRINGDOWN_REASON_DEACTIVATE_DATA_CALL));
/* Check callback result is RESULT_SUCCESS when onClosed() is called. */
mSpyIwlanDataServiceProvider
@@ -907,7 +910,8 @@ public class IwlanDataServiceTest {
eq(TEST_APN_NAME),
eq(true) /* forceClose */,
any(IwlanTunnelCallback.class),
- any(IwlanTunnelMetricsImpl.class));
+ any(IwlanTunnelMetricsImpl.class),
+ eq(BRINGDOWN_REASON_DEACTIVATE_DATA_CALL));
/* Check callback result is RESULT_SUCCESS when onClosed() is called. */
mSpyIwlanDataServiceProvider
@@ -922,11 +926,8 @@ public class IwlanDataServiceTest {
public void testDeactivateDataCall_DelayedReleaseAfterHandover() {
DataProfile dp = buildImsDataProfile();
- when(IwlanCarrierConfig.getConfigInt(
- mMockContext,
- DEFAULT_SLOT_INDEX,
- IwlanCarrierConfig.KEY_HANDOVER_TO_WWAN_RELEASE_DELAY_SECOND_INT))
- .thenReturn(3);
+ IwlanCarrierConfig.putTestConfigInt(
+ IwlanCarrierConfig.KEY_HANDOVER_TO_WWAN_RELEASE_DELAY_SECOND_INT, 3);
onSystemDefaultNetworkConnected(TRANSPORT_WIFI);
mSpyIwlanDataServiceProvider.setTunnelState(
@@ -952,7 +953,8 @@ public class IwlanDataServiceTest {
eq(TEST_APN_NAME),
anyBoolean(),
any(IwlanTunnelCallback.class),
- any(IwlanTunnelMetricsImpl.class));
+ any(IwlanTunnelMetricsImpl.class),
+ eq(BRINGDOWN_REASON_DEACTIVATE_DATA_CALL));
moveTimeForwardAndDispatch(50);
/* Check closeTunnel() is called. */
@@ -961,7 +963,8 @@ public class IwlanDataServiceTest {
eq(TEST_APN_NAME),
eq(true) /* forceClose */,
any(IwlanTunnelCallback.class),
- any(IwlanTunnelMetricsImpl.class));
+ any(IwlanTunnelMetricsImpl.class),
+ eq(BRINGDOWN_REASON_DEACTIVATE_DATA_CALL));
/* Check callback result is RESULT_SUCCESS when onClosed() is called. */
mSpyIwlanDataServiceProvider
@@ -976,11 +979,8 @@ public class IwlanDataServiceTest {
public void testDeactivateDataCall_DelayedReleaseAfterHandover_NetworkReleaseBeforeDelay() {
DataProfile dp = buildImsDataProfile();
- when(IwlanCarrierConfig.getConfigInt(
- mMockContext,
- DEFAULT_SLOT_INDEX,
- IwlanCarrierConfig.KEY_HANDOVER_TO_WWAN_RELEASE_DELAY_SECOND_INT))
- .thenReturn(3);
+ IwlanCarrierConfig.putTestConfigInt(
+ IwlanCarrierConfig.KEY_HANDOVER_TO_WWAN_RELEASE_DELAY_SECOND_INT, 3);
when(ErrorPolicyManager.getInstance(eq(mMockContext), eq(DEFAULT_SLOT_INDEX)))
.thenReturn(mMockErrorPolicyManager);
when(mMockErrorPolicyManager.getDataFailCause(eq(TEST_APN_NAME)))
@@ -1020,7 +1020,8 @@ public class IwlanDataServiceTest {
eq(TEST_APN_NAME),
anyBoolean(),
any(IwlanTunnelCallback.class),
- any(IwlanTunnelMetricsImpl.class));
+ any(IwlanTunnelMetricsImpl.class),
+ anyInt());
/* Check callback result is RESULT_SUCCESS when onClosed() is called. */
mSpyIwlanDataServiceProvider
@@ -1037,7 +1038,8 @@ public class IwlanDataServiceTest {
eq(TEST_APN_NAME),
anyBoolean(),
any(IwlanTunnelCallback.class),
- any(IwlanTunnelMetricsImpl.class));
+ any(IwlanTunnelMetricsImpl.class),
+ anyInt());
// No additional callbacks are involved.
verify(mMockDataServiceCallback, times(1)).onDeactivateDataCallComplete(anyInt());
@@ -1993,7 +1995,8 @@ public class IwlanDataServiceTest {
eq(TEST_APN_NAME),
anyBoolean(),
any(IwlanTunnelCallback.class),
- any(IwlanTunnelMetricsImpl.class));
+ any(IwlanTunnelMetricsImpl.class),
+ eq(BRINGDOWN_REASON_DEACTIVATE_DATA_CALL));
advanceCalendarByTimeMs(deactivationTime, calendar);
@@ -2044,7 +2047,13 @@ public class IwlanDataServiceTest {
Network newNetwork2 = createMockNetwork(mLinkProperties);
onSystemDefaultNetworkConnected(
newNetwork2, mLinkProperties, TRANSPORT_WIFI, DEFAULT_SUB_INDEX);
- verify(mMockEpdgTunnelManager, times(1)).closeTunnel(any(), anyBoolean(), any(), any());
+ verify(mMockEpdgTunnelManager, times(1))
+ .closeTunnel(
+ any(),
+ anyBoolean(),
+ any(),
+ any(),
+ eq(BRINGDOWN_REASON_NETWORK_UPDATE_WHEN_TUNNEL_IN_BRINGUP));
}
public static TunnelLinkProperties createTunnelLinkProperties() throws Exception {
@@ -2072,15 +2081,6 @@ public class IwlanDataServiceTest {
.build();
}
- private void setupMockForGetConfig(PersistableBundle bundle) {
- if (bundle == null) {
- bundle = new PersistableBundle();
- }
- when(mMockContext.getSystemService(eq(CarrierConfigManager.class)))
- .thenReturn(mMockCarrierConfigManager);
- when(mMockCarrierConfigManager.getConfigForSubId(DEFAULT_SLOT_INDEX)).thenReturn(bundle);
- }
-
private void mockCarrierConfigForN1Mode(boolean supportN1Mode) {
PersistableBundle bundle = new PersistableBundle();
if (supportN1Mode) {
@@ -2095,7 +2095,7 @@ public class IwlanDataServiceTest {
CarrierConfigManager.KEY_CARRIER_NR_AVAILABILITIES_INT_ARRAY,
new int[] {CarrierConfigManager.CARRIER_NR_AVAILABILITY_NSA});
}
- setupMockForGetConfig(bundle);
+ IwlanCarrierConfig.putTestConfigBundle(bundle);
}
private void mockCallState(int callState) {
@@ -2132,7 +2132,7 @@ public class IwlanDataServiceTest {
CarrierConfigManager.CARRIER_NR_AVAILABILITY_NSA,
CarrierConfigManager.CARRIER_NR_AVAILABILITY_SA
});
- setupMockForGetConfig(bundle);
+ IwlanCarrierConfig.putTestConfigBundle(bundle);
assertTrue(mSpyIwlanDataServiceProvider.isN1ModeSupported());
bundle.putIntArray(
@@ -2140,14 +2140,15 @@ public class IwlanDataServiceTest {
new int[] {
CarrierConfigManager.CARRIER_NR_AVAILABILITY_NSA,
});
- setupMockForGetConfig(bundle);
+ IwlanCarrierConfig.putTestConfigBundle(bundle);
assertFalse(mSpyIwlanDataServiceProvider.isN1ModeSupported());
}
@Test
public void testMultipleAllowedNetworkTypeChangeInIdle_updateN1Mode() throws Exception {
- when(mFakeFeatureFlags.updateN1ModeOnUiChange()).thenReturn(true);
mockCarrierConfigForN1Mode(true);
+ IwlanCarrierConfig.putTestConfigBoolean(
+ IwlanCarrierConfig.KEY_UPDATE_N1_MODE_ON_UI_CHANGE_BOOL, true);
mockCallState(CALL_STATE_IDLE);
mockSetupDataCallWithPduSessionId(0);
updatePreferredNetworkType(NETWORK_TYPE_BITMASK_NR);
@@ -2175,8 +2176,10 @@ public class IwlanDataServiceTest {
@Test
public void testMultipleAllowedNetworkTypeChangeInCall_preferenceChanged_updateAfterCallEnds()
throws Exception {
- when(mFakeFeatureFlags.updateN1ModeOnUiChange()).thenReturn(true);
mockCarrierConfigForN1Mode(true);
+ IwlanCarrierConfig.putTestConfigBoolean(
+ IwlanCarrierConfig.KEY_UPDATE_N1_MODE_ON_UI_CHANGE_BOOL, true);
+
mockCallState(CALL_STATE_RINGING);
mockSetupDataCallWithPduSessionId(0);
updatePreferredNetworkType(NETWORK_TYPE_BITMASK_NR);
@@ -2208,8 +2211,10 @@ public class IwlanDataServiceTest {
@Test
public void testMultipleAllowedNetworkTypeChangeInCall_preferenceNotChanged_noUpdate()
throws Exception {
- when(mFakeFeatureFlags.updateN1ModeOnUiChange()).thenReturn(true);
mockCarrierConfigForN1Mode(true);
+ IwlanCarrierConfig.putTestConfigBoolean(
+ IwlanCarrierConfig.KEY_UPDATE_N1_MODE_ON_UI_CHANGE_BOOL, true);
+
mockCallState(CALL_STATE_RINGING);
mockSetupDataCallWithPduSessionId(0);
updatePreferredNetworkType(NETWORK_TYPE_BITMASK_NR);
@@ -2234,8 +2239,10 @@ public class IwlanDataServiceTest {
@Test
public void testOnAllowedNetworkTypeChange_flagDisabled_noTunnelClose() {
- when(mFakeFeatureFlags.updateN1ModeOnUiChange()).thenReturn(false);
mockCarrierConfigForN1Mode(true);
+ IwlanCarrierConfig.putTestConfigBoolean(
+ IwlanCarrierConfig.KEY_UPDATE_N1_MODE_ON_UI_CHANGE_BOOL, false);
+
mockCallState(CALL_STATE_IDLE);
mockSetupDataCallWithPduSessionId(0);
updatePreferredNetworkType(NETWORK_TYPE_BITMASK_NR);
@@ -2246,8 +2253,10 @@ public class IwlanDataServiceTest {
@Test
public void testOnAllowedNetworkTypeChange_n1ModeNotSupported_noTunnelClose() {
- when(mFakeFeatureFlags.updateN1ModeOnUiChange()).thenReturn(true);
mockCarrierConfigForN1Mode(false);
+ IwlanCarrierConfig.putTestConfigBoolean(
+ IwlanCarrierConfig.KEY_UPDATE_N1_MODE_ON_UI_CHANGE_BOOL, true);
+
mockCallState(CALL_STATE_IDLE);
mockSetupDataCallWithPduSessionId(0);
updatePreferredNetworkType(NETWORK_TYPE_BITMASK_NR);
@@ -2258,8 +2267,10 @@ public class IwlanDataServiceTest {
@Test
public void testN1ModeNotSupported_tunnelBringupWithNoN1ModeCapability() {
- when(mFakeFeatureFlags.updateN1ModeOnUiChange()).thenReturn(true);
mockCarrierConfigForN1Mode(false);
+ IwlanCarrierConfig.putTestConfigBoolean(
+ IwlanCarrierConfig.KEY_UPDATE_N1_MODE_ON_UI_CHANGE_BOOL, true);
+
mockSetupDataCallWithPduSessionId(1);
ArgumentCaptor<TunnelSetupRequest> tunnelSetupRequestCaptor =
@@ -2272,8 +2283,10 @@ public class IwlanDataServiceTest {
@Test
public void testNoN1ModeCapabilityInOngoingDataCall_newTunnelBringup_doNotIncludeN1() {
- when(mFakeFeatureFlags.updateN1ModeOnUiChange()).thenReturn(true);
mockCarrierConfigForN1Mode(true);
+ IwlanCarrierConfig.putTestConfigBoolean(
+ IwlanCarrierConfig.KEY_UPDATE_N1_MODE_ON_UI_CHANGE_BOOL, true);
+
mockSetupDataCallWithPduSessionId(0);
ArgumentCaptor<TunnelSetupRequest> tunnelSetupRequestCaptor =
@@ -2325,6 +2338,7 @@ public class IwlanDataServiceTest {
@Test
public void testN1ModeForEmergencySession() {
int pduSessionId = 5;
+ updatePreferredNetworkType(NETWORK_TYPE_BITMASK_NR);
DataProfile dp = buildDataProfile(ApnSetting.TYPE_EMERGENCY);
verifySetupDataCallRequestHandled(pduSessionId, dp);
@@ -2338,11 +2352,9 @@ public class IwlanDataServiceTest {
@Test
public void testN1ModeExclusionForEmergencySession() {
- when(IwlanCarrierConfig.getConfigBoolean(
- mMockContext,
- DEFAULT_SLOT_INDEX,
- IwlanCarrierConfig.KEY_N1_MODE_EXCLUSION_FOR_EMERGENCY_SESSION_BOOL))
- .thenReturn(true);
+ IwlanCarrierConfig.putTestConfigBoolean(
+ IwlanCarrierConfig.KEY_N1_MODE_EXCLUSION_FOR_EMERGENCY_SESSION_BOOL, true);
+ updatePreferredNetworkType(NETWORK_TYPE_BITMASK_NR);
DataProfile dp = buildDataProfile(ApnSetting.TYPE_EMERGENCY);
verifySetupDataCallRequestHandled(5 /* pduSessionId */, dp);