19e0be93719c4de0cedec33508c799f3b2f223454Jack Yu/* 29e0be93719c4de0cedec33508c799f3b2f223454Jack Yu * Copyright (C) 2010 The Android Open Source Project 39e0be93719c4de0cedec33508c799f3b2f223454Jack Yu * 49e0be93719c4de0cedec33508c799f3b2f223454Jack Yu * Licensed under the Apache License, Version 2.0 (the "License"); 59e0be93719c4de0cedec33508c799f3b2f223454Jack Yu * you may not use this file except in compliance with the License. 69e0be93719c4de0cedec33508c799f3b2f223454Jack Yu * You may obtain a copy of the License at 79e0be93719c4de0cedec33508c799f3b2f223454Jack Yu * 89e0be93719c4de0cedec33508c799f3b2f223454Jack Yu * http://www.apache.org/licenses/LICENSE-2.0 99e0be93719c4de0cedec33508c799f3b2f223454Jack Yu * 109e0be93719c4de0cedec33508c799f3b2f223454Jack Yu * Unless required by applicable law or agreed to in writing, software 119e0be93719c4de0cedec33508c799f3b2f223454Jack Yu * distributed under the License is distributed on an "AS IS" BASIS, 129e0be93719c4de0cedec33508c799f3b2f223454Jack Yu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139e0be93719c4de0cedec33508c799f3b2f223454Jack Yu * See the License for the specific language governing permissions and 149e0be93719c4de0cedec33508c799f3b2f223454Jack Yu * limitations under the License. 159e0be93719c4de0cedec33508c799f3b2f223454Jack Yu */ 169e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 179e0be93719c4de0cedec33508c799f3b2f223454Jack Yupackage com.android.internal.telephony.dataconnection; 189e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 19692640f429efa8e292c6261472b2c682e1079f8eRobert Greenwaltimport android.net.NetworkCapabilities; 209e0be93719c4de0cedec33508c799f3b2f223454Jack Yuimport android.net.NetworkConfig; 21692640f429efa8e292c6261472b2c682e1079f8eRobert Greenwaltimport android.net.NetworkRequest; 229e0be93719c4de0cedec33508c799f3b2f223454Jack Yuimport android.test.suitebuilder.annotation.SmallTest; 239e0be93719c4de0cedec33508c799f3b2f223454Jack Yuimport android.util.LocalLog; 249e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 259e0be93719c4de0cedec33508c799f3b2f223454Jack Yuimport com.android.internal.R; 269e0be93719c4de0cedec33508c799f3b2f223454Jack Yuimport com.android.internal.telephony.DctConstants; 279e0be93719c4de0cedec33508c799f3b2f223454Jack Yuimport com.android.internal.telephony.PhoneConstants; 289e0be93719c4de0cedec33508c799f3b2f223454Jack Yuimport com.android.internal.telephony.TelephonyTest; 299e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 309e0be93719c4de0cedec33508c799f3b2f223454Jack Yuimport org.junit.After; 319e0be93719c4de0cedec33508c799f3b2f223454Jack Yuimport org.junit.Before; 329e0be93719c4de0cedec33508c799f3b2f223454Jack Yuimport org.junit.Test; 339e0be93719c4de0cedec33508c799f3b2f223454Jack Yuimport org.mockito.Mock; 349e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 359e0be93719c4de0cedec33508c799f3b2f223454Jack Yuimport static junit.framework.Assert.assertEquals; 369e0be93719c4de0cedec33508c799f3b2f223454Jack Yuimport static junit.framework.Assert.assertFalse; 379e0be93719c4de0cedec33508c799f3b2f223454Jack Yuimport static junit.framework.Assert.assertNull; 389e0be93719c4de0cedec33508c799f3b2f223454Jack Yuimport static junit.framework.Assert.assertTrue; 399e0be93719c4de0cedec33508c799f3b2f223454Jack Yuimport static org.mockito.Matchers.eq; 409e0be93719c4de0cedec33508c799f3b2f223454Jack Yuimport static org.mockito.Mockito.mock; 419e0be93719c4de0cedec33508c799f3b2f223454Jack Yuimport static org.mockito.Mockito.never; 429e0be93719c4de0cedec33508c799f3b2f223454Jack Yuimport static org.mockito.Mockito.times; 439e0be93719c4de0cedec33508c799f3b2f223454Jack Yuimport static org.mockito.Mockito.verify; 449e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 459e0be93719c4de0cedec33508c799f3b2f223454Jack Yupublic class ApnContextTest extends TelephonyTest { 469e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 479e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @Mock 489e0be93719c4de0cedec33508c799f3b2f223454Jack Yu NetworkConfig mNetworkConfig; 499e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @Mock 509e0be93719c4de0cedec33508c799f3b2f223454Jack Yu ApnSetting mApnSetting; 519e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 529e0be93719c4de0cedec33508c799f3b2f223454Jack Yu private ApnContext mApnContext; 539e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 549e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @Before 559e0be93719c4de0cedec33508c799f3b2f223454Jack Yu public void setUp() throws Exception { 569e0be93719c4de0cedec33508c799f3b2f223454Jack Yu super.setUp(getClass().getSimpleName()); 579e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mNetworkConfig.dependencyMet = true; 589e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mApnContext = new ApnContext(mPhone, PhoneConstants.APN_TYPE_DEFAULT, TAG, mNetworkConfig, 599e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mDcTracker); 609e0be93719c4de0cedec33508c799f3b2f223454Jack Yu } 619e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 629e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @After 639e0be93719c4de0cedec33508c799f3b2f223454Jack Yu public void tearDown() throws Exception { 649e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mApnContext = null; 659e0be93719c4de0cedec33508c799f3b2f223454Jack Yu super.tearDown(); 669e0be93719c4de0cedec33508c799f3b2f223454Jack Yu } 679e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 689e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @Test 699e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @SmallTest 709e0be93719c4de0cedec33508c799f3b2f223454Jack Yu public void testSetGetApnSetting() throws Exception { 719e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mApnContext.setApnSetting(mApnSetting); 729e0be93719c4de0cedec33508c799f3b2f223454Jack Yu assertEquals(mApnSetting, mApnContext.getApnSetting()); 739e0be93719c4de0cedec33508c799f3b2f223454Jack Yu } 749e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 759e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @Test 769e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @SmallTest 779e0be93719c4de0cedec33508c799f3b2f223454Jack Yu public void testGetApnType() throws Exception { 789e0be93719c4de0cedec33508c799f3b2f223454Jack Yu assertEquals(PhoneConstants.APN_TYPE_DEFAULT, mApnContext.getApnType()); 799e0be93719c4de0cedec33508c799f3b2f223454Jack Yu } 809e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 819e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @Test 829e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @SmallTest 839e0be93719c4de0cedec33508c799f3b2f223454Jack Yu public void testConnectionGeneration() throws Exception { 849e0be93719c4de0cedec33508c799f3b2f223454Jack Yu for (int i = 0; i < 100; i++) { 859e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mApnContext.incAndGetConnectionGeneration(); 869e0be93719c4de0cedec33508c799f3b2f223454Jack Yu assertEquals(i + 1, mApnContext.getConnectionGeneration()); 879e0be93719c4de0cedec33508c799f3b2f223454Jack Yu } 889e0be93719c4de0cedec33508c799f3b2f223454Jack Yu } 899e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 909e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @Test 919e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @SmallTest 929e0be93719c4de0cedec33508c799f3b2f223454Jack Yu public void testDataCallAsyncChannel() throws Exception { 939e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 949e0be93719c4de0cedec33508c799f3b2f223454Jack Yu DcAsyncChannel dcAc = mock(DcAsyncChannel.class); 959e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 969e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mApnContext.setDataConnectionAc(dcAc); 979e0be93719c4de0cedec33508c799f3b2f223454Jack Yu assertEquals(dcAc, mApnContext.getDcAc()); 989e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mApnContext.releaseDataConnection(""); 999e0be93719c4de0cedec33508c799f3b2f223454Jack Yu assertNull(mApnContext.getDcAc()); 1009e0be93719c4de0cedec33508c799f3b2f223454Jack Yu assertEquals(DctConstants.State.IDLE, mApnContext.getState()); 1019e0be93719c4de0cedec33508c799f3b2f223454Jack Yu } 1029e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 1039e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @Test 1049e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @SmallTest 1059e0be93719c4de0cedec33508c799f3b2f223454Jack Yu public void testDependencyMet() throws Exception { 1069e0be93719c4de0cedec33508c799f3b2f223454Jack Yu assertTrue(mApnContext.getDependencyMet()); 1079e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mApnContext.setDependencyMet(false); 1089e0be93719c4de0cedec33508c799f3b2f223454Jack Yu assertFalse(mApnContext.getDependencyMet()); 1099e0be93719c4de0cedec33508c799f3b2f223454Jack Yu } 1109e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 1119e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @Test 1129e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @SmallTest 1139e0be93719c4de0cedec33508c799f3b2f223454Jack Yu public void testReason() throws Exception { 1149e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mApnContext.setReason("dataEnabled"); 1159e0be93719c4de0cedec33508c799f3b2f223454Jack Yu assertEquals("dataEnabled", mApnContext.getReason()); 1169e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mApnContext.setReason("simLoaded"); 1179e0be93719c4de0cedec33508c799f3b2f223454Jack Yu assertEquals("simLoaded", mApnContext.getReason()); 1189e0be93719c4de0cedec33508c799f3b2f223454Jack Yu } 1199e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 1209e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @Test 1219e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @SmallTest 1229e0be93719c4de0cedec33508c799f3b2f223454Jack Yu public void testState() throws Exception { 1239e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mApnContext.setState(DctConstants.State.DISCONNECTING); 1249e0be93719c4de0cedec33508c799f3b2f223454Jack Yu assertEquals(DctConstants.State.DISCONNECTING, mApnContext.getState()); 1259e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mApnContext.setEnabled(true); 1269e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mApnContext.setDependencyMet(true); 1279e0be93719c4de0cedec33508c799f3b2f223454Jack Yu assertFalse(mApnContext.isConnectable()); 1289e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 1299e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mApnContext.setState(DctConstants.State.SCANNING); 1309e0be93719c4de0cedec33508c799f3b2f223454Jack Yu assertTrue(mApnContext.isConnectable()); 1319e0be93719c4de0cedec33508c799f3b2f223454Jack Yu assertTrue(mApnContext.isConnectedOrConnecting()); 1329e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 1339e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mApnContext.setState(DctConstants.State.FAILED); 1349e0be93719c4de0cedec33508c799f3b2f223454Jack Yu assertTrue(mApnContext.isDisconnected()); 1359e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mApnContext.setState(DctConstants.State.IDLE); 1369e0be93719c4de0cedec33508c799f3b2f223454Jack Yu assertTrue(mApnContext.isDisconnected()); 1379e0be93719c4de0cedec33508c799f3b2f223454Jack Yu } 1389e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 1399e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @Test 1409e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @SmallTest 141692640f429efa8e292c6261472b2c682e1079f8eRobert Greenwalt public void testNetworkRequest() throws Exception { 1429e0be93719c4de0cedec33508c799f3b2f223454Jack Yu LocalLog log = new LocalLog(3); 14364fbcce906012e4b429c354ba3a200a6ee410010Lorenzo Colitti NetworkRequest nr = new NetworkRequest.Builder().build(); 144692640f429efa8e292c6261472b2c682e1079f8eRobert Greenwalt mApnContext.requestNetwork(nr, log); 14564fbcce906012e4b429c354ba3a200a6ee410010Lorenzo Colitti 1469e0be93719c4de0cedec33508c799f3b2f223454Jack Yu verify(mDcTracker, times(1)).setEnabled(eq(DctConstants.APN_DEFAULT_ID), eq(true)); 147692640f429efa8e292c6261472b2c682e1079f8eRobert Greenwalt mApnContext.requestNetwork(nr, log); 1489e0be93719c4de0cedec33508c799f3b2f223454Jack Yu verify(mDcTracker, times(1)).setEnabled(eq(DctConstants.APN_DEFAULT_ID), eq(true)); 1499e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 150692640f429efa8e292c6261472b2c682e1079f8eRobert Greenwalt mApnContext.releaseNetwork(nr, log); 151692640f429efa8e292c6261472b2c682e1079f8eRobert Greenwalt verify(mDcTracker, times(1)).setEnabled(eq(DctConstants.APN_DEFAULT_ID), eq(false)); 152692640f429efa8e292c6261472b2c682e1079f8eRobert Greenwalt mApnContext.releaseNetwork(nr, log); 1539e0be93719c4de0cedec33508c799f3b2f223454Jack Yu verify(mDcTracker, times(1)).setEnabled(eq(DctConstants.APN_DEFAULT_ID), eq(false)); 1549e0be93719c4de0cedec33508c799f3b2f223454Jack Yu } 1559e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 1569e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @Test 1579e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @SmallTest 1589e0be93719c4de0cedec33508c799f3b2f223454Jack Yu public void testConcurrentVoiceAndDataAllowed() throws Exception { 1599e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mApnContext.setConcurrentVoiceAndDataAllowed(true); 1609e0be93719c4de0cedec33508c799f3b2f223454Jack Yu assertTrue(mApnContext.isConcurrentVoiceAndDataAllowed()); 1619e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mApnContext.setConcurrentVoiceAndDataAllowed(false); 1629e0be93719c4de0cedec33508c799f3b2f223454Jack Yu assertFalse(mApnContext.isConcurrentVoiceAndDataAllowed()); 1639e0be93719c4de0cedec33508c799f3b2f223454Jack Yu } 1649e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 1659e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @Test 1669e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @SmallTest 1679e0be93719c4de0cedec33508c799f3b2f223454Jack Yu public void testEnableDisable() throws Exception { 1689e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mApnContext.setEnabled(true); 1699e0be93719c4de0cedec33508c799f3b2f223454Jack Yu assertTrue(mApnContext.isEnabled()); 1709e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mApnContext.setEnabled(false); 1719e0be93719c4de0cedec33508c799f3b2f223454Jack Yu assertFalse(mApnContext.isEnabled()); 1729e0be93719c4de0cedec33508c799f3b2f223454Jack Yu } 1739e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 1749e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @Test 1759e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @SmallTest 1769e0be93719c4de0cedec33508c799f3b2f223454Jack Yu public void testProvisionApn() throws Exception { 1779e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mContextFixture.putResource(R.string.mobile_provisioning_apn, "fake_apn"); 1789e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 1799e0be93719c4de0cedec33508c799f3b2f223454Jack Yu ApnSetting myApn = new ApnSetting( 1809e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 2163, // id 1819e0be93719c4de0cedec33508c799f3b2f223454Jack Yu "44010", // numeric 1829e0be93719c4de0cedec33508c799f3b2f223454Jack Yu "sp-mode", // name 1839e0be93719c4de0cedec33508c799f3b2f223454Jack Yu "fake_apn", // apn 1849e0be93719c4de0cedec33508c799f3b2f223454Jack Yu "", // proxy 1859e0be93719c4de0cedec33508c799f3b2f223454Jack Yu "", // port 1869e0be93719c4de0cedec33508c799f3b2f223454Jack Yu "", // mmsc 1879e0be93719c4de0cedec33508c799f3b2f223454Jack Yu "", // mmsproxy 1889e0be93719c4de0cedec33508c799f3b2f223454Jack Yu "", // mmsport 1899e0be93719c4de0cedec33508c799f3b2f223454Jack Yu "", // user 1909e0be93719c4de0cedec33508c799f3b2f223454Jack Yu "", // password 1919e0be93719c4de0cedec33508c799f3b2f223454Jack Yu -1, // authtype 1929e0be93719c4de0cedec33508c799f3b2f223454Jack Yu new String[]{"default", "supl"}, // types 1939e0be93719c4de0cedec33508c799f3b2f223454Jack Yu "IP", // protocol 1949e0be93719c4de0cedec33508c799f3b2f223454Jack Yu "IP", // roaming_protocol 1959e0be93719c4de0cedec33508c799f3b2f223454Jack Yu true, // carrier_enabled 1969e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 0, // bearer 1979e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 0, // bearer_bitmask 1989e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 0, // profile_id 1999e0be93719c4de0cedec33508c799f3b2f223454Jack Yu false, // modem_cognitive 2009e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 0, // max_conns 2019e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 0, // wait_time 2029e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 0, // max_conns_time 2039e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 0, // mtu 2049e0be93719c4de0cedec33508c799f3b2f223454Jack Yu "", // mvno_type 2059e0be93719c4de0cedec33508c799f3b2f223454Jack Yu ""); // mnvo_match_data 2069e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 2079e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mApnContext.setApnSetting(myApn); 2089e0be93719c4de0cedec33508c799f3b2f223454Jack Yu assertTrue(mApnContext.isProvisioningApn()); 2099e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mApnContext.setApnSetting(mApnSetting); 2109e0be93719c4de0cedec33508c799f3b2f223454Jack Yu assertFalse(mApnContext.isProvisioningApn()); 2119e0be93719c4de0cedec33508c799f3b2f223454Jack Yu } 2129e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 2139e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @Test 2149e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @SmallTest 2159e0be93719c4de0cedec33508c799f3b2f223454Jack Yu public void testIsReady() throws Exception { 2169e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mApnContext.setEnabled(true); 2179e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mApnContext.setDependencyMet(true); 2189e0be93719c4de0cedec33508c799f3b2f223454Jack Yu assertTrue(mApnContext.isReady()); 2199e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 2209e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mApnContext.setEnabled(false); 2219e0be93719c4de0cedec33508c799f3b2f223454Jack Yu assertFalse(mApnContext.isReady()); 2229e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 2239e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mApnContext.setDependencyMet(false); 2249e0be93719c4de0cedec33508c799f3b2f223454Jack Yu assertFalse(mApnContext.isReady()); 2259e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 2269e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mApnContext.setEnabled(true); 2279e0be93719c4de0cedec33508c799f3b2f223454Jack Yu assertFalse(mApnContext.isReady()); 2289e0be93719c4de0cedec33508c799f3b2f223454Jack Yu } 2299e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 2309e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @Test 2319e0be93719c4de0cedec33508c799f3b2f223454Jack Yu @SmallTest 2329e0be93719c4de0cedec33508c799f3b2f223454Jack Yu public void testErrorCodeRetry() throws Exception { 2339e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mContextFixture.putStringArrayResource( 2349e0be93719c4de0cedec33508c799f3b2f223454Jack Yu com.android.internal.R.array.config_cell_retries_per_error_code, 2359e0be93719c4de0cedec33508c799f3b2f223454Jack Yu new String[]{"36,2"}); 2369e0be93719c4de0cedec33508c799f3b2f223454Jack Yu mApnContext.resetErrorCodeRetries(); 2379e0be93719c4de0cedec33508c799f3b2f223454Jack Yu 2389e0be93719c4de0cedec33508c799f3b2f223454Jack Yu assertFalse(mApnContext.restartOnError(36)); 2399e0be93719c4de0cedec33508c799f3b2f223454Jack Yu assertTrue(mApnContext.restartOnError(36)); 2409e0be93719c4de0cedec33508c799f3b2f223454Jack Yu assertFalse(mApnContext.restartOnError(37)); 2419e0be93719c4de0cedec33508c799f3b2f223454Jack Yu } 2429e0be93719c4de0cedec33508c799f3b2f223454Jack Yu} 243