aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2019-06-03 18:11:12 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2019-06-03 18:11:12 +0000
commit18d560c36e062740036c3f8c43f96ff79e017d10 (patch)
tree3be0bbe9eaa4ade789ee25813de4a5d4f7d4df5f /tests
parent88c8c45dd8bb2be44909e054d75c3fbaf8edda18 (diff)
parent6cc9673158c49713db8e999c2501edea9c4f9b54 (diff)
downloadandroid_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.java152
-rw-r--r--tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java15
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 {