10825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/* 20825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Copyright (C) 2010 The Android Open Source Project 30825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 40825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Licensed under the Apache License, Version 2.0 (the "License"); 50825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * you may not use this file except in compliance with the License. 60825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * You may obtain a copy of the License at 70825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 80825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * http://www.apache.org/licenses/LICENSE-2.0 90825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Unless required by applicable law or agreed to in writing, software 110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * distributed under the License is distributed on an "AS IS" BASIS, 120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * See the License for the specific language governing permissions and 140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * limitations under the License. 150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 170825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepackage com.android.internal.telephony; 180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 190825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.test.suitebuilder.annotation.SmallTest; 200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 217667e7abe11b94b5573b565e25adbffdf7d65141Jake Hambyimport com.android.internal.telephony.dataconnection.ApnSetting; 227667e7abe11b94b5573b565e25adbffdf7d65141Jake Hamby 237667e7abe11b94b5573b565e25adbffdf7d65141Jake Hambyimport junit.framework.TestCase; 247667e7abe11b94b5573b565e25adbffdf7d65141Jake Hamby 250825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepublic class ApnSettingTest extends TestCase { 260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String[] TYPES = {"default", "*"}; 280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static void assertApnSettingEqual(ApnSetting a1, ApnSetting a2) { 300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(a1.carrier, a2.carrier); 310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(a1.apn, a2.apn); 320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(a1.proxy, a2.proxy); 330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(a1.port, a2.port); 340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(a1.mmsc, a2.mmsc); 350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(a1.mmsProxy, a2.mmsProxy); 360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(a1.mmsPort, a2.mmsPort); 370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(a1.user, a2.user); 380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(a1.password, a2.password); 390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(a1.authType, a2.authType); 400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(a1.id, a2.id); 410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(a1.numeric, a2.numeric); 420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(a1.protocol, a2.protocol); 430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(a1.roamingProtocol, a2.roamingProtocol); 440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(a1.types.length, a2.types.length); 450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville int i; 460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville for (i = 0; i < a1.types.length; i++) { 470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(a1.types[i], a2.types[i]); 480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(a1.carrierEnabled, a2.carrierEnabled); 500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(a1.bearer, a2.bearer); 510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @SmallTest 540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void testFromString() throws Exception { 550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville String[] dunTypes = {"DUN"}; 560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville String[] mmsTypes = {"mms", "*"}; 570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ApnSetting expected_apn; 590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville String testString; 600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // A real-world v1 example string. 620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville testString = "Vodafone IT,web.omnitel.it,,,,,,,,,222,10,,DUN"; 630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville expected_apn = new ApnSetting( 640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville -1, "22210", "Vodafone IT", "web.omnitel.it", "", "", 650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville "", "", "", "", "", 0, dunTypes, "IP", "IP",true,0); 660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertApnSettingEqual(expected_apn, ApnSetting.fromString(testString)); 670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // A v2 string. 690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville testString = "[ApnSettingV2] Name,apn,,,,,,,,,123,45,,mms|*,IPV6,IP,true,14"; 700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville expected_apn = new ApnSetting( 710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville -1, "12345", "Name", "apn", "", "", 720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville "", "", "", "", "", 0, mmsTypes, "IPV6", "IP",true,14); 730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertApnSettingEqual(expected_apn, ApnSetting.fromString(testString)); 740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // A v2 string with spaces. 760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville testString = "[ApnSettingV2] Name,apn, ,,,,,,,,123,45,,mms|*,IPV4V6, IP,true,14"; 770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville expected_apn = new ApnSetting( 780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville -1, "12345", "Name", "apn", "", "", 790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville "", "", "", "", "", 0, mmsTypes, "IPV4V6", "IP",true,14); 800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertApnSettingEqual(expected_apn, ApnSetting.fromString(testString)); 810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // Return null if insufficient fields given. 830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville testString = "[ApnSettingV2] Name,apn,,,,,,,,,123, 45,,mms|*"; 840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(null, ApnSetting.fromString(testString)); 850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville testString = "Name,apn,,,,,,,,,123, 45,"; 870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(null, ApnSetting.fromString(testString)); 880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @SmallTest 920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void testToString() throws Exception { 930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville String[] types = {"default", "*"}; 940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ApnSetting apn = new ApnSetting( 950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 99, "12345", "Name", "apn", "proxy", "port", 960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville "mmsc", "mmsproxy", "mmsport", "user", "password", 0, 970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville types, "IPV4V6", "IP", true, 14); 980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville String expected = "[ApnSettingV2] Name, 99, 12345, apn, proxy, " + 990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville "mmsc, mmsproxy, mmsport, port, 0, default | *, " + 1000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville "IPV4V6, IP, true, 14"; 1010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(expected, apn.toString()); 1020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville} 104