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

Commit bb4acf1c authored by Brad Ebinger's avatar Brad Ebinger
Browse files

Update ImsCallTest to ensure NPE isnt hit after ImsCall#close is called.

Bug: 236279778
Test: atest FrameworksTelephonyTests:ImsCallTest
Change-Id: I098e09b32a143ec4a98ca6e3eedb451fcbfacbc8
parent 3865c72f
Loading
Loading
Loading
Loading
+34 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
@@ -144,6 +145,39 @@ public class ImsCallTest extends TelephonyTest {
        assertTrue(imsCall.wasVideoCall());
    }

    @Test
    @SmallTest
    public void testCloseImsCallRtt() throws Exception {
        ImsCallSession mockSession = mock(ImsCallSession.class);
        ImsStreamMediaProfile streamProfile = new ImsStreamMediaProfile(
                ImsStreamMediaProfile.AUDIO_QUALITY_AMR_WB,
                ImsStreamMediaProfile.DIRECTION_SEND_RECEIVE,
                ImsStreamMediaProfile.VIDEO_QUALITY_NONE,
                ImsStreamMediaProfile.DIRECTION_INACTIVE,
                // Full RTT mode
                ImsStreamMediaProfile.RTT_MODE_FULL);
        ImsCallProfile profile = new ImsCallProfile(ImsCallProfile.SERVICE_TYPE_NORMAL,
                ImsCallProfile.CALL_TYPE_VOICE, null /*extras*/, streamProfile);
        profile.mCallType = ImsCallProfile.CALL_TYPE_VOICE;
        ImsCall imsCall = new ImsCall(mContext, profile);
        imsCall.attachSession(mockSession);

        imsCall.sendRttMessage("test");
        verify(mockSession).sendRttMessage("test");

        //called by ImsPhoneCallTracker when the call is terminated
        imsCall.close();

        try {
            // Ensure RTT cases are handled gracefully.
            imsCall.sendRttMessage("test");
            imsCall.sendRttModifyRequest(true);
            imsCall.sendRttModifyResponse(true);
        } catch (Exception e) {
            fail("Unexpected exception: " + e);
        }
    }

    @Test
    @SmallTest
    public void testSetWifi() {