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