Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 92c11917 authored by Shuo Qian's avatar Shuo Qian Committed by Android (Google) Code Review
Browse files

Merge "Add emergency number listener PhoneStateListenerTest in framework"

parents 2b85e499 0f684a6a
Loading
Loading
Loading
Loading
+66 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.os.HandlerThread;
import android.telephony.PhoneStateListener;
import android.telephony.PhysicalChannelConfig;
import android.telephony.ServiceState;
import android.telephony.emergency.EmergencyNumber;
import android.test.suitebuilder.annotation.SmallTest;

import org.junit.After;
@@ -31,6 +32,7 @@ import org.junit.Before;
import org.junit.Test;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

@@ -40,6 +42,8 @@ public class PhoneStateListenerTest extends TelephonyTest {
    private PhoneStateListenerHandler mPhoneStateListenerHandler;
    private boolean mUserMobileDataState = false;
    private List<PhysicalChannelConfig> mPhysicalChannelConfigs;
    private EmergencyNumber mCalledEmergencyNumber;
    private EmergencyNumber mTextedEmergencyNumber;

    private class PhoneStateListenerHandler extends HandlerThread {
        private PhoneStateListenerHandler(String name) {
@@ -64,6 +68,20 @@ public class PhoneStateListenerTest extends TelephonyTest {
                    setReady(true);
                }

                public void onOutgoingEmergencyCall(
                        EmergencyNumber emergencyNumber) {
                    logd("OutgoingCallEmergencyNumber Changed");
                    mCalledEmergencyNumber = emergencyNumber;
                    setReady(true);
                }

                public void onOutgoingEmergencySms(
                        EmergencyNumber emergencyNumber) {
                    logd("OutgoingSmsEmergencyNumber Changed");
                    mTextedEmergencyNumber = emergencyNumber;
                    setReady(true);
                }

                @Override
                public void onPhysicalChannelConfigurationChanged(
                        List<PhysicalChannelConfig> configs) {
@@ -121,6 +139,54 @@ public class PhoneStateListenerTest extends TelephonyTest {
        assertTrue(mUserMobileDataState);
    }

    @Test @SmallTest
    public void testTriggerOutgoingCallEmergencyNumberChanged() throws Exception {
        Field field = PhoneStateListener.class.getDeclaredField("callback");
        field.setAccessible(true);

        assertNull(mCalledEmergencyNumber);

        EmergencyNumber emergencyNumber = new EmergencyNumber(
                "911",
                "us",
                "30",
                EmergencyNumber.EMERGENCY_SERVICE_CATEGORY_UNSPECIFIED,
                new ArrayList<String>(),
                EmergencyNumber.EMERGENCY_NUMBER_SOURCE_NETWORK_SIGNALING,
                EmergencyNumber.EMERGENCY_CALL_ROUTING_NORMAL);

        setReady(false);
        ((IPhoneStateListener) field.get(mPhoneStateListenerUT)).onOutgoingEmergencyCall(
                emergencyNumber);
        waitUntilReady();

        assertTrue(mCalledEmergencyNumber.equals(emergencyNumber));
    }

    @Test @SmallTest
    public void testTriggerOutgoingSmsEmergencyNumberChanged() throws Exception {
        Field field = PhoneStateListener.class.getDeclaredField("callback");
        field.setAccessible(true);

        assertNull(mTextedEmergencyNumber);

        EmergencyNumber emergencyNumber = new EmergencyNumber(
                "911",
                "us",
                "30",
                EmergencyNumber.EMERGENCY_SERVICE_CATEGORY_UNSPECIFIED,
                new ArrayList<String>(),
                EmergencyNumber.EMERGENCY_NUMBER_SOURCE_NETWORK_SIGNALING,
                EmergencyNumber.EMERGENCY_CALL_ROUTING_NORMAL);

        setReady(false);
        ((IPhoneStateListener) field.get(mPhoneStateListenerUT)).onOutgoingEmergencySms(
                emergencyNumber);
        waitUntilReady();

        assertTrue(mTextedEmergencyNumber.equals(emergencyNumber));
    }

    @Test @SmallTest
    public void testTriggerPhysicalChannelConfigurationChanged() throws Exception {
        Field field = PhoneStateListener.class.getDeclaredField("callback");