diff options
author | Aswin Sankar <apsankar@google.com> | 2023-05-25 23:14:37 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-05-25 23:14:37 +0000 |
commit | 0b5f2f86b2a7a5e14b3399543b4224ce0b4c5603 (patch) | |
tree | 55b6e0d9a13419325271b4b90a40926ad37f440a | |
parent | 1bcf45c0b244973b43a2cef379fba6250da460b0 (diff) | |
parent | 05afdc7987832db83bcfb04d99aef12d2de78b84 (diff) | |
download | Iwlan-0b5f2f86b2a7a5e14b3399543b4224ce0b4c5603.tar.gz |
updateNetwork(): Avoid NPE for null Network object. am: 05afdc7987
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/services/Iwlan/+/23355117
Change-Id: Ic7e115f8b9054d0ced0bff77d27bf487cbe6f6e8
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | src/com/google/android/iwlan/IwlanDataService.java | 5 | ||||
-rw-r--r-- | test/com/google/android/iwlan/IwlanDataServiceTest.java | 25 |
2 files changed, 28 insertions, 2 deletions
diff --git a/src/com/google/android/iwlan/IwlanDataService.java b/src/com/google/android/iwlan/IwlanDataService.java index 239713d..0d564ab 100644 --- a/src/com/google/android/iwlan/IwlanDataService.java +++ b/src/com/google/android/iwlan/IwlanDataService.java @@ -81,6 +81,7 @@ import java.util.HashMap; import java.util.List; import java.util.LongSummaryStatistics; import java.util.Map; +import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; public class IwlanDataService extends DataService { @@ -956,14 +957,14 @@ public class IwlanDataService extends DataService { } private void updateNetwork( - @NonNull Network network, @Nullable LinkProperties linkProperties) { + @Nullable Network network, @Nullable LinkProperties linkProperties) { if (mIwlanDataService.isNetworkConnected( isActiveDataOnOtherSub(getSlotIndex()), IwlanHelper.isCrossSimCallingEnabled(mContext, getSlotIndex()))) { getTunnelManager().updateNetwork(network, linkProperties); } - if (network.equals(sNetwork)) { + if (Objects.equals(network, sNetwork)) { return; } for (Map.Entry<String, TunnelState> entry : mTunnelStateForApn.entrySet()) { diff --git a/test/com/google/android/iwlan/IwlanDataServiceTest.java b/test/com/google/android/iwlan/IwlanDataServiceTest.java index 6862c97..c4549df 100644 --- a/test/com/google/android/iwlan/IwlanDataServiceTest.java +++ b/test/com/google/android/iwlan/IwlanDataServiceTest.java @@ -17,6 +17,7 @@ package com.google.android.iwlan; import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR; +import static android.net.NetworkCapabilities.TRANSPORT_ETHERNET; import static android.net.NetworkCapabilities.TRANSPORT_WIFI; import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession; @@ -535,6 +536,30 @@ public class IwlanDataServiceTest { } @Test + public void testOnCrossSimCallingEnable_doNotUpdateTunnelManagerIfNoNetwork() throws Exception { + when(mMockImsMmTelManager.isCrossSimCallingEnabled()).thenReturn(true); + mIwlanDataService + .mIwlanDataServiceHandler + .obtainMessage( + IwlanEventListener.CROSS_SIM_CALLING_ENABLE_EVENT, + DEFAULT_SLOT_INDEX, + 0 /* unused */) + .sendToTarget(); + mTestLooper.dispatchAll(); + verify(mMockEpdgTunnelManager, never()) + .updateNetwork(any(Network.class), any(LinkProperties.class)); + } + + @Test + public void testOnEthernetConnection_doNotUpdateTunnelManager() throws Exception { + Network newNetwork = createMockNetwork(mLinkProperties); + onSystemDefaultNetworkConnected( + newNetwork, mLinkProperties, TRANSPORT_ETHERNET, DEFAULT_SUB_INDEX); + verify(mMockEpdgTunnelManager, never()) + .updateNetwork(eq(newNetwork), any(LinkProperties.class)); + } + + @Test public void testAddDuplicateDataServiceProviderThrows() throws Exception { when(mMockIwlanDataServiceProvider.getSlotIndex()).thenReturn(DEFAULT_SLOT_INDEX); assertThrows( |