• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2020 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package android.telephony.cts;
18 
19 import static org.junit.Assert.assertEquals;
20 import static org.junit.Assert.assertTrue;
21 
22 import android.net.Uri;
23 import android.platform.test.flag.junit.CheckFlagsRule;
24 import android.platform.test.flag.junit.DeviceFlagsValueProvider;
25 import android.telephony.TelephonyManager;
26 import android.telephony.data.ApnSetting;
27 import android.util.ArrayMap;
28 
29 import org.junit.Rule;
30 import org.junit.Test;
31 
32 import java.util.Map;
33 
34 public class ApnSettingTest {
35     private static final Map<String, Integer> EXPECTED_STRING_TO_INT_MAP;
36     private static final Map<Integer, String> EXPECTED_INT_TO_STRING_MAP;
37     static {
38         EXPECTED_STRING_TO_INT_MAP = new ArrayMap<>();
EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_DEFAULT_STRING, ApnSetting.TYPE_DEFAULT)39         EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_DEFAULT_STRING, ApnSetting.TYPE_DEFAULT);
EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_MMS_STRING, ApnSetting.TYPE_MMS)40         EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_MMS_STRING, ApnSetting.TYPE_MMS);
EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_SUPL_STRING, ApnSetting.TYPE_SUPL)41         EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_SUPL_STRING, ApnSetting.TYPE_SUPL);
EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_DUN_STRING, ApnSetting.TYPE_DUN)42         EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_DUN_STRING, ApnSetting.TYPE_DUN);
EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_HIPRI_STRING, ApnSetting.TYPE_HIPRI)43         EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_HIPRI_STRING, ApnSetting.TYPE_HIPRI);
EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_FOTA_STRING, ApnSetting.TYPE_FOTA)44         EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_FOTA_STRING, ApnSetting.TYPE_FOTA);
EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_IMS_STRING, ApnSetting.TYPE_IMS)45         EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_IMS_STRING, ApnSetting.TYPE_IMS);
EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_CBS_STRING, ApnSetting.TYPE_CBS)46         EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_CBS_STRING, ApnSetting.TYPE_CBS);
EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_IA_STRING, ApnSetting.TYPE_IA)47         EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_IA_STRING, ApnSetting.TYPE_IA);
EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_EMERGENCY_STRING, ApnSetting.TYPE_EMERGENCY)48         EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_EMERGENCY_STRING, ApnSetting.TYPE_EMERGENCY);
EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_MCX_STRING, ApnSetting.TYPE_MCX)49         EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_MCX_STRING, ApnSetting.TYPE_MCX);
EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_XCAP_STRING, ApnSetting.TYPE_XCAP)50         EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_XCAP_STRING, ApnSetting.TYPE_XCAP);
EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_ENTERPRISE_STRING, ApnSetting.TYPE_ENTERPRISE)51         EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_ENTERPRISE_STRING,
52                 ApnSetting.TYPE_ENTERPRISE);
EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_OEM_PAID_STRING, ApnSetting.TYPE_OEM_PAID)53         EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_OEM_PAID_STRING, ApnSetting.TYPE_OEM_PAID);
EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_OEM_PRIVATE_STRING, ApnSetting.TYPE_OEM_PRIVATE)54         EXPECTED_STRING_TO_INT_MAP.put(ApnSetting.TYPE_OEM_PRIVATE_STRING,
55                 ApnSetting.TYPE_OEM_PRIVATE);
56 
57         EXPECTED_INT_TO_STRING_MAP = new ArrayMap<>();
EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_DEFAULT, ApnSetting.TYPE_DEFAULT_STRING)58         EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_DEFAULT, ApnSetting.TYPE_DEFAULT_STRING);
EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_MMS, ApnSetting.TYPE_MMS_STRING)59         EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_MMS, ApnSetting.TYPE_MMS_STRING);
EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_SUPL, ApnSetting.TYPE_SUPL_STRING)60         EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_SUPL, ApnSetting.TYPE_SUPL_STRING);
EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_DUN, ApnSetting.TYPE_DUN_STRING)61         EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_DUN, ApnSetting.TYPE_DUN_STRING);
EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_HIPRI, ApnSetting.TYPE_HIPRI_STRING)62         EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_HIPRI, ApnSetting.TYPE_HIPRI_STRING);
EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_FOTA, ApnSetting.TYPE_FOTA_STRING)63         EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_FOTA, ApnSetting.TYPE_FOTA_STRING);
EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_IMS, ApnSetting.TYPE_IMS_STRING)64         EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_IMS, ApnSetting.TYPE_IMS_STRING);
EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_CBS, ApnSetting.TYPE_CBS_STRING)65         EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_CBS, ApnSetting.TYPE_CBS_STRING);
EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_IA, ApnSetting.TYPE_IA_STRING)66         EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_IA, ApnSetting.TYPE_IA_STRING);
EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_EMERGENCY, ApnSetting.TYPE_EMERGENCY_STRING)67         EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_EMERGENCY, ApnSetting.TYPE_EMERGENCY_STRING);
EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_MCX, ApnSetting.TYPE_MCX_STRING)68         EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_MCX, ApnSetting.TYPE_MCX_STRING);
EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_XCAP, ApnSetting.TYPE_XCAP_STRING)69         EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_XCAP, ApnSetting.TYPE_XCAP_STRING);
EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_ENTERPRISE, ApnSetting.TYPE_ENTERPRISE_STRING)70         EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_ENTERPRISE,
71                 ApnSetting.TYPE_ENTERPRISE_STRING);
EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_OEM_PAID, ApnSetting.TYPE_OEM_PAID_STRING)72         EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_OEM_PAID, ApnSetting.TYPE_OEM_PAID_STRING);
EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_OEM_PRIVATE, ApnSetting.TYPE_OEM_PRIVATE_STRING)73         EXPECTED_INT_TO_STRING_MAP.put(ApnSetting.TYPE_OEM_PRIVATE,
74                 ApnSetting.TYPE_OEM_PRIVATE_STRING);
75     }
76 
77     @Rule
78     public final CheckFlagsRule mCheckFlagsRule =
79             DeviceFlagsValueProvider.createCheckFlagsRule();
80 
81     @Test
testIntToString()82     public void testIntToString() {
83         for (Map.Entry<Integer, String> e : EXPECTED_INT_TO_STRING_MAP.entrySet()) {
84             assertEquals(e.getValue(), ApnSetting.getApnTypeString(e.getKey()));
85         }
86     }
87 
88     @Test
testStringToInt()89     public void testStringToInt() {
90         for (Map.Entry<String, Integer> e : EXPECTED_STRING_TO_INT_MAP.entrySet()) {
91             assertEquals((int) e.getValue(), ApnSetting.getApnTypeInt(e.getKey()));
92         }
93     }
94 
95     @Test
testBuilderGet()96     public void testBuilderGet() {
97         int apnTypeBitMask = ApnSetting.TYPE_DEFAULT;
98         int profileId = 9;
99         int mtuV4 = 1;
100         int mtuV6 = 2;
101         int proxyPort = 5;
102         int mmsPort = 3;
103         int authType = ApnSetting.AUTH_TYPE_NONE;
104         int protocol = ApnSetting.PROTOCOL_IP;
105         int networkTypeBitmask =  (int) TelephonyManager.NETWORK_TYPE_BITMASK_LTE;
106         int roamingProtocol = 1;
107         int mvnoType = ApnSetting.MVNO_TYPE_SPN;
108         int carrierId = 123;
109         boolean isPersistent = true;
110         boolean carrierEnabled = true;
111         boolean isAlwaysOn = true;
112         Uri mmsc = new Uri.Builder().build();
113         String mmsProxy = "12.34.56";
114         String proxyAddress = "11.22.33.44";
115         String apnName = "testApnName";
116         String entryName = "entryName";
117         String user = "testUser";
118         String password = "testPWD";
119         String operatorNumeric = "123";
120         ApnSetting apnSettingUT = new ApnSetting.Builder()
121                 .setApnTypeBitmask(apnTypeBitMask)
122                 .setApnName(apnName)
123                 .setEntryName(entryName)
124                 .setMtuV4(mtuV4)
125                 .setMtuV6(mtuV6)
126                 .setProxyPort(proxyPort)
127                 .setMmsProxyPort(mmsPort)
128                 .setAuthType(authType)
129                 .setProtocol(protocol)
130                 .setNetworkTypeBitmask(networkTypeBitmask)
131                 .setRoamingProtocol(roamingProtocol)
132                 .setMvnoType(mvnoType)
133                 .setCarrierId(carrierId)
134                 .setCarrierEnabled(carrierEnabled)
135                 .setProfileId(profileId)
136                 .setPersistent(isPersistent)
137                 .setMmsc(mmsc)
138                 .setMmsProxyAddress(mmsProxy)
139                 .setProxyAddress(proxyAddress)
140                 .setUser(user)
141                 .setPassword(password)
142                 .setOperatorNumeric(operatorNumeric)
143                 .setAlwaysOn(isAlwaysOn)
144                 .build();
145         assertEquals(apnTypeBitMask, apnSettingUT.getApnTypeBitmask());
146         assertEquals(profileId, apnSettingUT.getProfileId());
147         assertEquals(mtuV4, apnSettingUT.getMtuV4());
148         assertEquals(mtuV6, apnSettingUT.getMtuV6());
149         assertEquals(proxyPort, apnSettingUT.getProxyPort());
150         assertEquals(mmsPort, apnSettingUT.getMmsProxyPort());
151         assertEquals(authType, apnSettingUT.getAuthType());
152         assertEquals(protocol, apnSettingUT.getProtocol());
153         assertEquals(networkTypeBitmask, apnSettingUT.getNetworkTypeBitmask());
154         assertEquals(roamingProtocol, apnSettingUT.getRoamingProtocol());
155         assertEquals(mvnoType, apnSettingUT.getMvnoType());
156         assertEquals(carrierId, apnSettingUT.getCarrierId());
157         assertEquals(mmsc, apnSettingUT.getMmsc());
158         assertEquals(mmsProxy, apnSettingUT.getMmsProxyAddressAsString());
159         assertEquals(proxyAddress, apnSettingUT.getProxyAddressAsString());
160         assertEquals(apnName, apnSettingUT.getApnName());
161         assertEquals(entryName, apnSettingUT.getEntryName());
162         assertEquals(user, apnSettingUT.getUser());
163         assertEquals(password, apnSettingUT.getPassword());
164         assertEquals(operatorNumeric, apnSettingUT.getOperatorNumeric());
165         assertTrue(apnSettingUT.isPersistent());
166         assertTrue(apnSettingUT.isEnabled());
167         assertTrue(apnSettingUT.isAlwaysOn());
168     }
169 }
170