summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKuen Yuet Cheung <kuenyuet@google.com>2024-01-30 05:57:38 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2024-01-30 05:57:38 +0000
commitc143d8e3224c184d82ae0e6446013919060e3e12 (patch)
tree2e8445cf6ac981a146af44532acb85083ebe50cc
parent17f572a2ac95c5c46ad81cd07362af11b05bbbb5 (diff)
parent8831ae16ae75499a2ce6a4ccf74ec9369e6ff47e (diff)
downloadIwlan-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.java1
-rw-r--r--test/com/google/android/iwlan/IwlanDataServiceTest.java38
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);
}