diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2019-06-03 18:11:12 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2019-06-03 18:11:12 +0000 |
commit | 18d560c36e062740036c3f8c43f96ff79e017d10 (patch) | |
tree | 3be0bbe9eaa4ade789ee25813de4a5d4f7d4df5f /tests | |
parent | 88c8c45dd8bb2be44909e054d75c3fbaf8edda18 (diff) | |
parent | 6cc9673158c49713db8e999c2501edea9c4f9b54 (diff) | |
download | android_frameworks_opt_telephony-18d560c36e062740036c3f8c43f96ff79e017d10.tar.gz android_frameworks_opt_telephony-18d560c36e062740036c3f8c43f96ff79e017d10.tar.bz2 android_frameworks_opt_telephony-18d560c36e062740036c3f8c43f96ff79e017d10.zip |
Merge "Migrate Emergency call profile" into qt-dev
Diffstat (limited to 'tests')
-rw-r--r-- | tests/telephonytests/src/com/android/internal/telephony/ConnectionTest.java | 152 | ||||
-rw-r--r-- | tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java | 15 |
2 files changed, 167 insertions, 0 deletions
diff --git a/tests/telephonytests/src/com/android/internal/telephony/ConnectionTest.java b/tests/telephonytests/src/com/android/internal/telephony/ConnectionTest.java new file mode 100644 index 000000000..e7e694c84 --- /dev/null +++ b/tests/telephonytests/src/com/android/internal/telephony/ConnectionTest.java @@ -0,0 +1,152 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.internal.telephony; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.doReturn; + +import android.os.Handler; +import android.os.Looper; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mock; + +/** + * Unit test verifying the methods of the connection class. + */ +public class ConnectionTest extends TelephonyTest { + + private static final int TEST_PHONE_TYPE = 1; + + @Mock + protected Call mCall; + + private class TestConnection extends Connection { + + private TestConnection(int phoneType) { + super(phoneType); + } + + @Override + public Call getCall() { + return mCall; + } + + @Override + public long getDisconnectTime() { + return 0; + } + + @Override + public long getHoldDurationMillis() { + return 0; + } + + @Override + public String getVendorDisconnectCause() { + return ""; + } + + @Override + public void deflect(String number) throws CallStateException {} + + @Override + public void hangup() throws CallStateException {} + + @Override + public void separate() throws CallStateException {} + + @Override + public void proceedAfterWaitChar() {} + + @Override + public void proceedAfterWildChar(String str) {} + + @Override + public void cancelPostDial() {} + + @Override + public int getNumberPresentation() { + return 0; + } + + @Override + public UUSInfo getUUSInfo() { + return null; + } + + @Override + public int getPreciseDisconnectCause() { + return 0; + } + + @Override + public boolean isMultiparty() { + return false; + } + } + + @Before + public void setUp() throws Exception { + super.setUp(getClass().getSimpleName()); + doReturn(mPhone).when(mCall).getPhone(); + replaceInstance(Handler.class, "mLooper", mCT, Looper.getMainLooper()); + } + + @After + public void tearDown() throws Exception { + super.tearDown(); + } + + @Test + public void testMigrateFrom() { + Connection connection1 = new TestConnection(TEST_PHONE_TYPE); + Connection connection2 = new TestConnection(TEST_PHONE_TYPE); + + // Verify Emergency Call info is migrated + assertFalse(connection1.isEmergencyCall()); + assertNull(connection1.getEmergencyNumberInfo()); + assertFalse(connection1.hasKnownUserIntentEmergency()); + + connection2.setEmergencyCallInfo(); + connection2.setHasKnownUserIntentEmergency(true); + connection1.migrateFrom(connection2); + + assertTrue(connection1.isEmergencyCall()); + assertEquals(getTestEmergencyNumber(), connection1.getEmergencyNumberInfo()); + assertTrue(connection1.hasKnownUserIntentEmergency()); + + // TODO Verify more fields during the migration + } + + @Test + public void testEmergencyCallParameters() { + Connection connection = new TestConnection(TEST_PHONE_TYPE); + connection.setEmergencyCallInfo(); + assertTrue(connection.isEmergencyCall()); + assertEquals(getTestEmergencyNumber(), connection.getEmergencyNumberInfo()); + connection.setHasKnownUserIntentEmergency(true); + assertTrue(connection.hasKnownUserIntentEmergency()); + } + + // TODO Verify more methods in Connection +} diff --git a/tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java b/tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java index f4b7ae69b..5abb7f2d1 100644 --- a/tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java +++ b/tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java @@ -21,6 +21,7 @@ import static org.junit.Assert.fail; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Matchers.anyBoolean; import static org.mockito.Matchers.nullable; +import static org.mockito.Mockito.any; import static org.mockito.Mockito.anyInt; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.doReturn; @@ -52,6 +53,7 @@ import android.telephony.NetworkRegistrationInfo; import android.telephony.ServiceState; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; +import android.telephony.emergency.EmergencyNumber; import android.telephony.euicc.EuiccManager; import android.telephony.ims.ImsCallProfile; import android.test.mock.MockContentProvider; @@ -92,6 +94,7 @@ import org.mockito.stubbing.Answer; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -105,6 +108,12 @@ public abstract class TelephonyTest { private static final int MAX_INIT_WAIT_MS = 30000; // 30 seconds + private static final EmergencyNumber SAMPLE_EMERGENCY_NUMBER = + new EmergencyNumber("911", "us", "30", + EmergencyNumber.EMERGENCY_SERVICE_CATEGORY_UNSPECIFIED, + new ArrayList<String>(), EmergencyNumber.EMERGENCY_NUMBER_SOURCE_NETWORK_SIGNALING, + EmergencyNumber.EMERGENCY_CALL_ROUTING_NORMAL); + @Mock protected GsmCdmaPhone mPhone; @Mock @@ -376,6 +385,8 @@ public abstract class TelephonyTest { doReturn(mEmergencyNumberTracker).when(mTelephonyComponentFactory) .makeEmergencyNumberTracker(nullable(Phone.class), nullable(CommandsInterface.class)); + doReturn(getTestEmergencyNumber()).when(mEmergencyNumberTracker) + .getEmergencyNumber(any()); doReturn(mUiccProfile).when(mTelephonyComponentFactory) .makeUiccProfile(nullable(Context.class), nullable(CommandsInterface.class), nullable(IccCardStatus.class), anyInt(), nullable(UiccCard.class), @@ -709,6 +720,10 @@ public abstract class TelephonyTest { } } + protected final EmergencyNumber getTestEmergencyNumber() { + return SAMPLE_EMERGENCY_NUMBER; + } + public static Object invokeMethod( Object instance, String methodName, Class<?>[] parameterClasses, Object[] parameters) { try { |