1f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu/* 2f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu * Copyright (C) 2016 The Android Open Source Project 3f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu * 4f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu * Licensed under the Apache License, Version 2.0 (the "License"); 5f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu * you may not use this file except in compliance with the License. 6f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu * You may obtain a copy of the License at 7f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu * 8f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu * http://www.apache.org/licenses/LICENSE-2.0 9f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu * 10f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu * Unless required by applicable law or agreed to in writing, software 11f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu * distributed under the License is distributed on an "AS IS" BASIS, 12f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu * See the License for the specific language governing permissions and 14f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu * limitations under the License. 15f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu */ 16f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu 17f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yupackage com.android.internal.telephony.dataconnection; 18f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu 198e9d1e601dce62cd0328701d7054e03db24727c7Jack Yuimport static com.android.internal.telephony.dataconnection.DcTrackerTest.FAKE_ADDRESS; 208e9d1e601dce62cd0328701d7054e03db24727c7Jack Yuimport static com.android.internal.telephony.dataconnection.DcTrackerTest.FAKE_DNS; 218e9d1e601dce62cd0328701d7054e03db24727c7Jack Yuimport static com.android.internal.telephony.dataconnection.DcTrackerTest.FAKE_GATEWAY; 228e9d1e601dce62cd0328701d7054e03db24727c7Jack Yuimport static com.android.internal.telephony.dataconnection.DcTrackerTest.FAKE_IFNAME; 238e9d1e601dce62cd0328701d7054e03db24727c7Jack Yuimport static com.android.internal.telephony.dataconnection.DcTrackerTest.FAKE_PCSCF_ADDRESS; 248e9d1e601dce62cd0328701d7054e03db24727c7Jack Yu 258e9d1e601dce62cd0328701d7054e03db24727c7Jack Yuimport static org.junit.Assert.assertEquals; 268e9d1e601dce62cd0328701d7054e03db24727c7Jack Yu 27f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yuimport android.net.LinkProperties; 28f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yuimport android.test.suitebuilder.annotation.SmallTest; 29f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu 30f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yuimport com.android.internal.telephony.TelephonyTest; 31f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yuimport com.android.internal.telephony.dataconnection.DataCallResponse.SetupResult; 32f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu 33f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yuimport org.junit.After; 34f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yuimport org.junit.Before; 35f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yuimport org.junit.Test; 36f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu 37f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yupublic class DataCallResponseTest extends TelephonyTest { 38f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu 39f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu DataCallResponse mDcResponse; 40f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu 41f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu @Before 42f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu public void setUp() throws Exception { 43f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu super.setUp(getClass().getSimpleName()); 448e9d1e601dce62cd0328701d7054e03db24727c7Jack Yu mDcResponse = new DataCallResponse(0, -1, 1, 2, "IP", FAKE_IFNAME, FAKE_ADDRESS, 458e9d1e601dce62cd0328701d7054e03db24727c7Jack Yu FAKE_DNS, FAKE_GATEWAY, FAKE_PCSCF_ADDRESS, 1440); 46f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu } 47f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu 48f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu @After 49f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu public void tearDown() throws Exception { 50f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu super.tearDown(); 51f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu } 52f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu 53f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu @Test 54f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu @SmallTest 55f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu public void testSetLinkProperties() throws Exception { 56f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu LinkProperties linkProperties = new LinkProperties(); 57f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu assertEquals(SetupResult.SUCCESS, 58f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu mDcResponse.setLinkProperties(linkProperties, true)); 59f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu logd(linkProperties.toString()); 60f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu assertEquals(mDcResponse.ifname, linkProperties.getInterfaceName()); 61f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu assertEquals(mDcResponse.addresses.length, linkProperties.getAddresses().size()); 62f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu for (int i = 0; i < mDcResponse.addresses.length; ++i) { 63f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu assertEquals(mDcResponse.addresses[i], 64f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu linkProperties.getLinkAddresses().get(i).getAddress().getHostAddress()); 65f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu } 66f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu 67f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu assertEquals(mDcResponse.dnses.length, linkProperties.getDnsServers().size()); 68f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu for (int i = 0; i < mDcResponse.dnses.length; ++i) { 69f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu assertEquals("i = " + i, mDcResponse.dnses[i], 70f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu linkProperties.getDnsServers().get(i).getHostAddress()); 71f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu } 72f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu 73f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu assertEquals(mDcResponse.gateways.length, linkProperties.getRoutes().size()); 74f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu for (int i = 0; i < mDcResponse.gateways.length; ++i) { 75f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu assertEquals("i = " + i, mDcResponse.gateways[i], 76f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu linkProperties.getRoutes().get(i).getGateway().getHostAddress()); 77f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu } 78f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu 79f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu assertEquals(mDcResponse.mtu, linkProperties.getMtu()); 80f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu } 814698f5cc8dcf0f31a03c64f90e5faa1b4ffed5fcJack Yu 824698f5cc8dcf0f31a03c64f90e5faa1b4ffed5fcJack Yu @Test 834698f5cc8dcf0f31a03c64f90e5faa1b4ffed5fcJack Yu @SmallTest 844698f5cc8dcf0f31a03c64f90e5faa1b4ffed5fcJack Yu public void testSetLinkPropertiesInvalidAddress() throws Exception { 854698f5cc8dcf0f31a03c64f90e5faa1b4ffed5fcJack Yu 868e9d1e601dce62cd0328701d7054e03db24727c7Jack Yu // 224.224.224.224 is an invalid address. 878e9d1e601dce62cd0328701d7054e03db24727c7Jack Yu mDcResponse = new DataCallResponse(0, -1, 1, 2, "IP", FAKE_IFNAME, "224.224.224.224", 888e9d1e601dce62cd0328701d7054e03db24727c7Jack Yu FAKE_DNS, FAKE_GATEWAY, FAKE_PCSCF_ADDRESS, 1440); 894698f5cc8dcf0f31a03c64f90e5faa1b4ffed5fcJack Yu 904698f5cc8dcf0f31a03c64f90e5faa1b4ffed5fcJack Yu LinkProperties linkProperties = new LinkProperties(); 914698f5cc8dcf0f31a03c64f90e5faa1b4ffed5fcJack Yu assertEquals(SetupResult.ERR_UnacceptableParameter, 924698f5cc8dcf0f31a03c64f90e5faa1b4ffed5fcJack Yu mDcResponse.setLinkProperties(linkProperties, true)); 934698f5cc8dcf0f31a03c64f90e5faa1b4ffed5fcJack Yu } 94f2be4db966d151fe58a132991bfce9d59f8d8c67Jack Yu}