14b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu/*
24b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu * Copyright (C) 2010 The Android Open Source Project
34b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu *
44b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu * Licensed under the Apache License, Version 2.0 (the "License");
54b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu * you may not use this file except in compliance with the License.
64b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu * You may obtain a copy of the License at
74b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu *
84b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu *      http://www.apache.org/licenses/LICENSE-2.0
94b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu *
104b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu * Unless required by applicable law or agreed to in writing, software
114b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu * distributed under the License is distributed on an "AS IS" BASIS,
124b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
134b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu * See the License for the specific language governing permissions and
144b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu * limitations under the License.
154b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu */
164b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu
174b2613ad8d9825c892a03558a227c2cee71473d7Jack Yupackage com.android.internal.telephony.dataconnection;
184b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu
19176f28521fd45bb739709d309e7970b1558c9f61Cassieimport android.telephony.ServiceState;
20886183cde1263ea524cdf08524442724e246ed42Jack Yuimport android.telephony.data.DataProfile;
214b2613ad8d9825c892a03558a227c2cee71473d7Jack Yuimport android.test.suitebuilder.annotation.SmallTest;
224b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu
238e9d1e601dce62cd0328701d7054e03db24727c7Jack Yuimport com.android.internal.telephony.RILConstants;
248e9d1e601dce62cd0328701d7054e03db24727c7Jack Yu
254b2613ad8d9825c892a03558a227c2cee71473d7Jack Yuimport junit.framework.TestCase;
264b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu
274b2613ad8d9825c892a03558a227c2cee71473d7Jack Yupublic class DataProfileTest extends TestCase {
284b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu
294b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu    private ApnSetting mApn1 = new ApnSetting(
304b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            2163,                   // id
314b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            "44010",                // numeric
324b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            "sp-mode",              // name
334b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            "fake_apn",             // apn
344b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            "",                     // proxy
354b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            "",                     // port
364b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            "",                     // mmsc
374b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            "",                     // mmsproxy
384b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            "",                     // mmsport
394b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            "user",                 // user
404b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            "passwd",               // password
414b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            -1,                     // authtype
424b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            new String[]{"default", "supl"},     // types
434b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            "IPV6",                 // protocol
444b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            "IP",                   // roaming_protocol
454b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            true,                   // carrier_enabled
464b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            0,                      // bearer
474b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            0,                      // bearer_bitmask
484b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            1234,                   // profile_id
494b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            false,                  // modem_cognitive
504b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            321,                    // max_conns
514b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            456,                    // wait_time
524b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            789,                    // max_conns_time
534b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            0,                      // mtu
544b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            "",                     // mvno_type
554b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            "");                    // mnvo_match_data
564b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu
574b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu    private ApnSetting mApn2 = new ApnSetting(
584b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            2163,                   // id
594b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            "44010",                // numeric
604b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            "sp-mode",              // name
614b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            "fake_apn",             // apn
624b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            "",                     // proxy
634b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            "",                     // port
644b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            "",                     // mmsc
654b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            "",                     // mmsproxy
664b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            "",                     // mmsport
674b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            "user",                 // user
684b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            "passwd",               // password
694b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            -1,                     // authtype
704b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            new String[]{"default", "supl"},     // types
714b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            "IP",                   // protocol
724b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            "IP",                   // roaming_protocol
734b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            true,                   // carrier_enabled
744b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            0,                      // bearer
754b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            0,                      // bearer_bitmask
764b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            1234,                   // profile_id
774b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            false,                  // modem_cognitive
784b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            111,                    // max_conns
794b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            456,                    // wait_time
804b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            789,                    // max_conns_time
814b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            0,                      // mtu
824b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            "",                     // mvno_type
834b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu            "");                    // mnvo_match_data
844b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu
85176f28521fd45bb739709d309e7970b1558c9f61Cassie    private ApnSetting mApn3 = new ApnSetting(
86176f28521fd45bb739709d309e7970b1558c9f61Cassie            2163,                   // id
87176f28521fd45bb739709d309e7970b1558c9f61Cassie            "44010",                // numeric
88176f28521fd45bb739709d309e7970b1558c9f61Cassie            "sp-mode",              // name
89176f28521fd45bb739709d309e7970b1558c9f61Cassie            "fake_apn",             // apn
90176f28521fd45bb739709d309e7970b1558c9f61Cassie            "",                     // proxy
91176f28521fd45bb739709d309e7970b1558c9f61Cassie            "",                     // port
92176f28521fd45bb739709d309e7970b1558c9f61Cassie            "",                     // mmsc
93176f28521fd45bb739709d309e7970b1558c9f61Cassie            "",                     // mmsproxy
94176f28521fd45bb739709d309e7970b1558c9f61Cassie            "",                     // mmsport
95176f28521fd45bb739709d309e7970b1558c9f61Cassie            "user",                 // user
96176f28521fd45bb739709d309e7970b1558c9f61Cassie            "passwd",               // password
97176f28521fd45bb739709d309e7970b1558c9f61Cassie            -1,                     // authtype
98176f28521fd45bb739709d309e7970b1558c9f61Cassie            new String[]{"default", "supl"},     // types
99176f28521fd45bb739709d309e7970b1558c9f61Cassie            "IP",                   // protocol
100176f28521fd45bb739709d309e7970b1558c9f61Cassie            "IP",                   // roaming_protocol
101176f28521fd45bb739709d309e7970b1558c9f61Cassie            true,                   // carrier_enabled
102176f28521fd45bb739709d309e7970b1558c9f61Cassie            276600,                    // network_type_bitmask
103176f28521fd45bb739709d309e7970b1558c9f61Cassie            1234,                   // profile_id
104176f28521fd45bb739709d309e7970b1558c9f61Cassie            false,                  // modem_cognitive
105176f28521fd45bb739709d309e7970b1558c9f61Cassie            111,                    // max_conns
106176f28521fd45bb739709d309e7970b1558c9f61Cassie            456,                    // wait_time
107176f28521fd45bb739709d309e7970b1558c9f61Cassie            789,                    // max_conns_time
108176f28521fd45bb739709d309e7970b1558c9f61Cassie            0,                      // mtu
109176f28521fd45bb739709d309e7970b1558c9f61Cassie            "",                     // mvno_type
110176f28521fd45bb739709d309e7970b1558c9f61Cassie            ""                   // mnvo_match_data
111176f28521fd45bb739709d309e7970b1558c9f61Cassie            );
112176f28521fd45bb739709d309e7970b1558c9f61Cassie
1134b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu    @SmallTest
1144b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu    public void testCreateFromApnSetting() throws Exception {
115886183cde1263ea524cdf08524442724e246ed42Jack Yu        DataProfile dp = DcTracker.createDataProfile(mApn1, mApn1.profileId);
116886183cde1263ea524cdf08524442724e246ed42Jack Yu        assertEquals(mApn1.profileId, dp.getProfileId());
117886183cde1263ea524cdf08524442724e246ed42Jack Yu        assertEquals(mApn1.apn, dp.getApn());
118886183cde1263ea524cdf08524442724e246ed42Jack Yu        assertEquals(mApn1.protocol, dp.getProtocol());
119886183cde1263ea524cdf08524442724e246ed42Jack Yu        assertEquals(RILConstants.SETUP_DATA_AUTH_PAP_CHAP, dp.getAuthType());
120886183cde1263ea524cdf08524442724e246ed42Jack Yu        assertEquals(mApn1.user, dp.getUserName());
121886183cde1263ea524cdf08524442724e246ed42Jack Yu        assertEquals(mApn1.password, dp.getPassword());
122176f28521fd45bb739709d309e7970b1558c9f61Cassie        assertEquals(0, dp.getType());  // TYPE_COMMON
123886183cde1263ea524cdf08524442724e246ed42Jack Yu        assertEquals(mApn1.maxConnsTime, dp.getMaxConnsTime());
124886183cde1263ea524cdf08524442724e246ed42Jack Yu        assertEquals(mApn1.maxConns, dp.getMaxConns());
125886183cde1263ea524cdf08524442724e246ed42Jack Yu        assertEquals(mApn1.waitTime, dp.getWaitTime());
126886183cde1263ea524cdf08524442724e246ed42Jack Yu        assertEquals(mApn1.carrierEnabled, dp.isEnabled());
1274b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu    }
1284b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu
1294b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu    @SmallTest
130176f28521fd45bb739709d309e7970b1558c9f61Cassie    public void testCreateFromApnSettingWithNetworkTypeBitmask() throws Exception {
131176f28521fd45bb739709d309e7970b1558c9f61Cassie        DataProfile dp = DcTracker.createDataProfile(mApn3, mApn3.profileId);
132176f28521fd45bb739709d309e7970b1558c9f61Cassie        assertEquals(mApn3.profileId, dp.getProfileId());
133176f28521fd45bb739709d309e7970b1558c9f61Cassie        assertEquals(mApn3.apn, dp.getApn());
134176f28521fd45bb739709d309e7970b1558c9f61Cassie        assertEquals(mApn3.protocol, dp.getProtocol());
135176f28521fd45bb739709d309e7970b1558c9f61Cassie        assertEquals(RILConstants.SETUP_DATA_AUTH_PAP_CHAP, dp.getAuthType());
136176f28521fd45bb739709d309e7970b1558c9f61Cassie        assertEquals(mApn3.user, dp.getUserName());
137176f28521fd45bb739709d309e7970b1558c9f61Cassie        assertEquals(mApn3.password, dp.getPassword());
138176f28521fd45bb739709d309e7970b1558c9f61Cassie        assertEquals(2, dp.getType());  // TYPE_3GPP2
139176f28521fd45bb739709d309e7970b1558c9f61Cassie        assertEquals(mApn3.maxConnsTime, dp.getMaxConnsTime());
140176f28521fd45bb739709d309e7970b1558c9f61Cassie        assertEquals(mApn3.maxConns, dp.getMaxConns());
141176f28521fd45bb739709d309e7970b1558c9f61Cassie        assertEquals(mApn3.waitTime, dp.getWaitTime());
142176f28521fd45bb739709d309e7970b1558c9f61Cassie        assertEquals(mApn3.carrierEnabled, dp.isEnabled());
143176f28521fd45bb739709d309e7970b1558c9f61Cassie        int expectedBearerBitmap =
144176f28521fd45bb739709d309e7970b1558c9f61Cassie                ServiceState.convertNetworkTypeBitmaskToBearerBitmask(mApn3.networkTypeBitmask);
145176f28521fd45bb739709d309e7970b1558c9f61Cassie        assertEquals(expectedBearerBitmap, dp.getBearerBitmap());
146176f28521fd45bb739709d309e7970b1558c9f61Cassie    }
147176f28521fd45bb739709d309e7970b1558c9f61Cassie
148176f28521fd45bb739709d309e7970b1558c9f61Cassie    @SmallTest
1494b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu    public void testEquals() throws Exception {
150886183cde1263ea524cdf08524442724e246ed42Jack Yu        DataProfile dp1 = DcTracker.createDataProfile(mApn1, mApn1.profileId);
151886183cde1263ea524cdf08524442724e246ed42Jack Yu        DataProfile dp2 = DcTracker.createDataProfile(mApn1, mApn1.profileId);
1524b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu        assertEquals(dp1, dp2);
1534b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu
154886183cde1263ea524cdf08524442724e246ed42Jack Yu        dp2 = DcTracker.createDataProfile(mApn2, mApn2.profileId);
1554b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu        assertFalse(dp1.equals(dp2));
1564b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu    }
1574b2613ad8d9825c892a03558a227c2cee71473d7Jack Yu}
158