summaryrefslogtreecommitdiff
path: root/test/com/google/android/iwlan/IwlanDataServiceTest.java
diff options
context:
space:
mode:
authorAswin Sankar <apsankar@google.com>2023-05-12 15:37:20 -0700
committerAswin Sankar <apsankar@google.com>2023-05-15 14:34:13 -0700
commit26448b62482d653f044af21c79ba1bbdd4263445 (patch)
tree3221e880b63979b3c253aeba9b0cfcb77dfe7b1e /test/com/google/android/iwlan/IwlanDataServiceTest.java
parente931d0aabc0969859e46b4327c64b7d01de1ed1c (diff)
downloadIwlan-26448b62482d653f044af21c79ba1bbdd4263445.tar.gz
Update EpdgTunnelManager on cross SIM enable event
- When cross-SIM calling is enabled for the first time after an APM toggle or factory reset, IwlanDataService should trigger updateNetwork() so that EpdgTunnelManager has the latest info about the default network and link properties for tunnel bringup. Bug: 282134634 Test: New tests in EpdgTunnelManagerTest. Live DSDA test. Change-Id: I6c6442ece12745279c4e3105dffb37abe12f5d7e
Diffstat (limited to 'test/com/google/android/iwlan/IwlanDataServiceTest.java')
-rw-r--r--test/com/google/android/iwlan/IwlanDataServiceTest.java102
1 files changed, 79 insertions, 23 deletions
diff --git a/test/com/google/android/iwlan/IwlanDataServiceTest.java b/test/com/google/android/iwlan/IwlanDataServiceTest.java
index e1f5c7b..1219c63 100644
--- a/test/com/google/android/iwlan/IwlanDataServiceTest.java
+++ b/test/com/google/android/iwlan/IwlanDataServiceTest.java
@@ -103,6 +103,7 @@ import java.util.LongSummaryStatistics;
public class IwlanDataServiceTest {
private static final int DEFAULT_SLOT_INDEX = 0;
private static final int DEFAULT_SUB_INDEX = 0;
+ private static final int INVALID_SUB_INDEX = -1;
private static final int LINK_MTU = 1280;
private static final String TEST_APN_NAME = "ims";
private static final String IP_ADDRESS = "192.0.2.1";
@@ -287,11 +288,11 @@ public class IwlanDataServiceTest {
}
private void onSystemDefaultNetworkConnected(
- Network network, LinkProperties linkProperties, int transportType) {
+ Network network, LinkProperties linkProperties, int transportType, int subId) {
NetworkCapabilities nc =
prepareNetworkCapabilitiesForTest(
transportType,
- DEFAULT_SUB_INDEX /* unused if transportType is TRANSPORT_WIFI */,
+ subId /* unused if transportType is TRANSPORT_WIFI */,
false /* isVcn */);
NetworkCallback networkMonitorCallback = getNetworkMonitorCallback();
networkMonitorCallback.onCapabilitiesChanged(network, nc);
@@ -301,7 +302,8 @@ public class IwlanDataServiceTest {
private void onSystemDefaultNetworkConnected(int transportType) {
Network newNetwork = createMockNetwork(mLinkProperties);
- onSystemDefaultNetworkConnected(newNetwork, mLinkProperties, transportType);
+ onSystemDefaultNetworkConnected(
+ newNetwork, mLinkProperties, transportType, DEFAULT_SUB_INDEX);
}
private void onSystemDefaultNetworkLost() {
@@ -311,7 +313,7 @@ public class IwlanDataServiceTest {
}
@Test
- public void testWifionConnected() {
+ public void testWifiOnConnected() {
onSystemDefaultNetworkConnected(TRANSPORT_WIFI);
assertTrue(
mIwlanDataService.isNetworkConnected(
@@ -333,22 +335,23 @@ public class IwlanDataServiceTest {
}
@Test
- public void testWifiOnReConnected() {
+ public void testWifiOnReconnected() {
Network newNetwork = createMockNetwork(mLinkProperties);
- onSystemDefaultNetworkConnected(newNetwork, mLinkProperties, TRANSPORT_WIFI);
+ onSystemDefaultNetworkConnected(
+ newNetwork, mLinkProperties, TRANSPORT_WIFI, INVALID_SUB_INDEX);
verify(mMockEpdgTunnelManager, times(1)).updateNetwork(eq(newNetwork), eq(mLinkProperties));
onSystemDefaultNetworkLost();
-
- newNetwork = createMockNetwork(mLinkProperties);
- onSystemDefaultNetworkConnected(newNetwork, mLinkProperties, TRANSPORT_WIFI);
- verify(mMockEpdgTunnelManager, times(1)).updateNetwork(eq(newNetwork), eq(mLinkProperties));
+ onSystemDefaultNetworkConnected(
+ newNetwork, mLinkProperties, TRANSPORT_WIFI, INVALID_SUB_INDEX);
+ verify(mMockEpdgTunnelManager, times(2)).updateNetwork(eq(newNetwork), eq(mLinkProperties));
}
@Test
public void testOnLinkPropertiesChangedForConnectedNetwork() {
NetworkCallback networkCallback = getNetworkMonitorCallback();
- onSystemDefaultNetworkConnected(mMockNetwork, mLinkProperties, TRANSPORT_WIFI);
+ onSystemDefaultNetworkConnected(
+ mMockNetwork, mLinkProperties, TRANSPORT_WIFI, INVALID_SUB_INDEX);
clearInvocations(mMockEpdgTunnelManager);
@@ -364,7 +367,8 @@ public class IwlanDataServiceTest {
@Test
public void testOnLinkPropertiesChangedForNonConnectedNetwork() {
NetworkCallback networkCallback = getNetworkMonitorCallback();
- onSystemDefaultNetworkConnected(mMockNetwork, mLinkProperties, TRANSPORT_WIFI);
+ onSystemDefaultNetworkConnected(
+ mMockNetwork, mLinkProperties, TRANSPORT_WIFI, INVALID_SUB_INDEX);
clearInvocations(mMockEpdgTunnelManager);
@@ -383,7 +387,8 @@ public class IwlanDataServiceTest {
NetworkCallback networkCallback = getNetworkMonitorCallback();
mLinkProperties.setLinkAddresses(
new ArrayList<>(Collections.singletonList(mMockIPv6LinkAddress)));
- onSystemDefaultNetworkConnected(mMockNetwork, mLinkProperties, TRANSPORT_WIFI);
+ onSystemDefaultNetworkConnected(
+ mMockNetwork, mLinkProperties, TRANSPORT_WIFI, INVALID_SUB_INDEX);
clearInvocations(mMockEpdgTunnelManager);
@@ -408,7 +413,8 @@ public class IwlanDataServiceTest {
DataProfile dp = buildImsDataProfile();
NetworkCallback networkCallback = getNetworkMonitorCallback();
- onSystemDefaultNetworkConnected(mMockNetwork, mLinkProperties, TRANSPORT_WIFI);
+ onSystemDefaultNetworkConnected(
+ mMockNetwork, mLinkProperties, TRANSPORT_WIFI, INVALID_SUB_INDEX);
clearInvocations(mMockEpdgTunnelManager);
@@ -432,7 +438,7 @@ public class IwlanDataServiceTest {
}
@Test
- public void testNetworkNotConnectedWithCellularAndCrossSimDisabled()
+ public void testNetworkNotConnectedWithCellularOnSameSubAndCrossSimEnabled()
throws InterruptedException {
NetworkCapabilities nc =
prepareNetworkCapabilitiesForTest(
@@ -449,7 +455,8 @@ public class IwlanDataServiceTest {
}
@Test
- public void testCrossSimNetworkConnectedWithTelephonyNetwork() throws InterruptedException {
+ public void testCrossSimNetworkConnectedWithCellularOnDifferentSub()
+ throws InterruptedException {
NetworkCapabilities nc =
prepareNetworkCapabilitiesForTest(
TRANSPORT_CELLULAR, DEFAULT_SUB_INDEX + 1, false /* isVcn */);
@@ -465,7 +472,8 @@ public class IwlanDataServiceTest {
}
@Test
- public void testCrossSimNetworkConnectedWithVcn() throws InterruptedException {
+ public void testCrossSimNetworkConnectedWithVcnCellularOnDifferentSub()
+ throws InterruptedException {
NetworkCapabilities nc =
prepareNetworkCapabilitiesForTest(
TRANSPORT_CELLULAR, DEFAULT_SUB_INDEX + 1, true /* isVcn */);
@@ -481,6 +489,48 @@ public class IwlanDataServiceTest {
}
@Test
+ public void testOnCrossSimCallingEnable_doNotUpdateTunnelManagerIfCellularDataOnSameSub()
+ throws Exception {
+ when(mMockImsMmTelManager.isCrossSimCallingEnabled()).thenReturn(true);
+
+ Network newNetwork = createMockNetwork(mLinkProperties);
+ onSystemDefaultNetworkConnected(
+ newNetwork, mLinkProperties, TRANSPORT_CELLULAR, DEFAULT_SUB_INDEX);
+
+ mIwlanDataService
+ .mIwlanDataServiceHandler
+ .obtainMessage(
+ IwlanEventListener.CROSS_SIM_CALLING_ENABLE_EVENT,
+ DEFAULT_SLOT_INDEX,
+ 0 /* unused */)
+ .sendToTarget();
+ mTestLooper.dispatchAll();
+ verify(mMockEpdgTunnelManager, never())
+ .updateNetwork(eq(newNetwork), any(LinkProperties.class));
+ }
+
+ @Test
+ public void testOnCrossSimCallingEnable_updateTunnelManagerIfCellularDataOnDifferentSub()
+ throws Exception {
+ when(mMockImsMmTelManager.isCrossSimCallingEnabled()).thenReturn(true);
+
+ Network newNetwork = createMockNetwork(mLinkProperties);
+ onSystemDefaultNetworkConnected(
+ newNetwork, mLinkProperties, TRANSPORT_CELLULAR, DEFAULT_SUB_INDEX + 1);
+ verify(mMockEpdgTunnelManager, times(1)).updateNetwork(eq(newNetwork), eq(mLinkProperties));
+
+ mIwlanDataService
+ .mIwlanDataServiceHandler
+ .obtainMessage(
+ IwlanEventListener.CROSS_SIM_CALLING_ENABLE_EVENT,
+ DEFAULT_SLOT_INDEX,
+ 0 /* unused */)
+ .sendToTarget();
+ mTestLooper.dispatchAll();
+ verify(mMockEpdgTunnelManager, times(2)).updateNetwork(eq(newNetwork), eq(mLinkProperties));
+ }
+
+ @Test
public void testAddDuplicateDataServiceProviderThrows() throws Exception {
when(mMockIwlanDataServiceProvider.getSlotIndex()).thenReturn(DEFAULT_SLOT_INDEX);
assertThrows(
@@ -632,7 +682,8 @@ public class IwlanDataServiceTest {
DataProfile dp = buildImsDataProfile();
/* Wifi is connected */
- onSystemDefaultNetworkConnected(mMockNetwork, mLinkProperties, TRANSPORT_WIFI);
+ onSystemDefaultNetworkConnected(
+ mMockNetwork, mLinkProperties, TRANSPORT_WIFI, INVALID_SUB_INDEX);
mSpyIwlanDataServiceProvider.setupDataCall(
AccessNetworkType.IWLAN, /* AccessNetworkType */
@@ -670,7 +721,8 @@ public class IwlanDataServiceTest {
DataProfile dp = buildImsDataProfile();
/* Wifi is connected */
- onSystemDefaultNetworkConnected(mMockNetwork, mLinkProperties, TRANSPORT_WIFI);
+ onSystemDefaultNetworkConnected(
+ mMockNetwork, mLinkProperties, TRANSPORT_WIFI, INVALID_SUB_INDEX);
mSpyIwlanDataServiceProvider.setupDataCall(
AccessNetworkType.IWLAN, /* AccessNetworkType */
@@ -1123,7 +1175,8 @@ public class IwlanDataServiceTest {
public void testDnsPrefetching() throws Exception {
NetworkCallback networkCallback = getNetworkMonitorCallback();
/* Wifi is connected */
- onSystemDefaultNetworkConnected(mMockNetwork, mLinkProperties, TRANSPORT_WIFI);
+ onSystemDefaultNetworkConnected(
+ mMockNetwork, mLinkProperties, TRANSPORT_WIFI, INVALID_SUB_INDEX);
networkCallback.onLinkPropertiesChanged(mMockNetwork, mLinkProperties);
mIwlanDataService
@@ -1332,7 +1385,8 @@ public class IwlanDataServiceTest {
public void testIwlanTunnelStatsFailureCounts() {
DataProfile dp = buildImsDataProfile();
- onSystemDefaultNetworkConnected(mMockNetwork, mLinkProperties, TRANSPORT_WIFI);
+ onSystemDefaultNetworkConnected(
+ mMockNetwork, mLinkProperties, TRANSPORT_WIFI, INVALID_SUB_INDEX);
when(ErrorPolicyManager.getInstance(eq(mMockContext), eq(DEFAULT_SLOT_INDEX)))
.thenReturn(mMockErrorPolicyManager);
@@ -1358,7 +1412,8 @@ public class IwlanDataServiceTest {
when(mMockErrorPolicyManager.getDataFailCause(eq(TEST_APN_NAME)))
.thenReturn(DataFailCause.ERROR_UNSPECIFIED);
- onSystemDefaultNetworkConnected(mMockNetwork, mLinkProperties, TRANSPORT_WIFI);
+ onSystemDefaultNetworkConnected(
+ mMockNetwork, mLinkProperties, TRANSPORT_WIFI, INVALID_SUB_INDEX);
long count = 3L;
for (int i = 0; i < count; i++) {
@@ -1379,7 +1434,8 @@ public class IwlanDataServiceTest {
when(calendar.getTime()).thenAnswer(i -> new Date(mMockedCalendarTime));
mSpyIwlanDataServiceProvider.setCalendar(calendar);
- onSystemDefaultNetworkConnected(mMockNetwork, mLinkProperties, TRANSPORT_WIFI);
+ onSystemDefaultNetworkConnected(
+ mMockNetwork, mLinkProperties, TRANSPORT_WIFI, INVALID_SUB_INDEX);
LongSummaryStatistics tunnelSetupSuccessStats = new LongSummaryStatistics();
LongSummaryStatistics tunnelUpStats = new LongSummaryStatistics();