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