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