diff options
author | Kuen Yuet Cheung <kuenyuet@google.com> | 2024-01-30 05:57:38 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2024-01-30 05:57:38 +0000 |
commit | c143d8e3224c184d82ae0e6446013919060e3e12 (patch) | |
tree | 2e8445cf6ac981a146af44532acb85083ebe50cc | |
parent | 17f572a2ac95c5c46ad81cd07362af11b05bbbb5 (diff) | |
parent | 8831ae16ae75499a2ce6a4ccf74ec9369e6ff47e (diff) | |
download | Iwlan-c143d8e3224c184d82ae0e6446013919060e3e12.tar.gz |
Reject Iwlan setup data call if ApnSetting is null. am: 8831ae16ae
Original change: https://android-review.googlesource.com/c/platform/packages/services/Iwlan/+/2931257
Change-Id: I1f1bbd707cbbfdbe087567775f2fab5e3b2e0b18
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | src/com/google/android/iwlan/IwlanDataService.java | 1 | ||||
-rw-r--r-- | test/com/google/android/iwlan/IwlanDataServiceTest.java | 38 |
2 files changed, 39 insertions, 0 deletions
diff --git a/src/com/google/android/iwlan/IwlanDataService.java b/src/com/google/android/iwlan/IwlanDataService.java index 08d6f02..cd43ece 100644 --- a/src/com/google/android/iwlan/IwlanDataService.java +++ b/src/com/google/android/iwlan/IwlanDataService.java @@ -1565,6 +1565,7 @@ public class IwlanDataService extends DataService { if ((accessNetworkType != AccessNetworkType.IWLAN) || (dataProfile == null) + || (dataProfile.getApnSetting() == null) || (linkProperties == null && reason == DataService.REQUEST_REASON_HANDOVER)) { diff --git a/test/com/google/android/iwlan/IwlanDataServiceTest.java b/test/com/google/android/iwlan/IwlanDataServiceTest.java index 790dda4..dc2b2cf 100644 --- a/test/com/google/android/iwlan/IwlanDataServiceTest.java +++ b/test/com/google/android/iwlan/IwlanDataServiceTest.java @@ -76,6 +76,7 @@ import android.telephony.data.DataService; import android.telephony.data.DataServiceCallback; import android.telephony.data.IDataServiceCallback; import android.telephony.data.NetworkSliceInfo; +import android.telephony.data.TrafficDescriptor; import android.telephony.ims.ImsManager; import android.telephony.ims.ImsMmTelManager; @@ -766,6 +767,33 @@ public class IwlanDataServiceTest { } @Test + public void testIwlanSetupDataCallWithBringUpTunnelAndNullApnSetting() { + DataProfile dp = buildImsDataProfileWithEmptyApnSetting(); + + /* Wifi is connected */ + onSystemDefaultNetworkConnected( + mMockNetwork, mLinkProperties, TRANSPORT_WIFI, INVALID_SUB_INDEX); + + mSpyIwlanDataServiceProvider.setupDataCall( + AccessNetworkType.IWLAN, /* AccessNetworkType */ + dp, /* dataProfile */ + false, /* isRoaming */ + true, /* allowRoaming */ + DataService.REQUEST_REASON_NORMAL, /* DataService.REQUEST_REASON_NORMAL */ + null, /* LinkProperties */ + 1, /* pduSessionId */ + null, /* sliceInfo */ + null, /* trafficDescriptor */ + true, /* matchAllRuleAllowed */ + mMockDataServiceCallback); + mTestLooper.dispatchAll(); + + verify(mMockDataServiceCallback, times(1)) + .onSetupDataCallComplete( + eq(DataServiceCallback.RESULT_ERROR_INVALID_ARG), isNull()); + } + + @Test public void testSliceInfoInclusionInDataCallResponse() throws Exception { DataProfile dp = buildImsDataProfile(); @@ -1419,6 +1447,16 @@ public class IwlanDataServiceTest { mTestLooper.dispatchAll(); } + private DataProfile buildImsDataProfileWithEmptyApnSetting() { + return new DataProfile.Builder() + .setTrafficDescriptor( + new TrafficDescriptor.Builder().setDataNetworkName("").build()) + .setType(1) + .enable(true) + .setPreferred(true) + .build(); + } + private DataProfile buildImsDataProfile() { return buildDataProfile(ApnSetting.TYPE_IMS); } |