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