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

Commit 5025dda9 authored by Weilin Xu's avatar Weilin Xu
Browse files

Add announcement listener and session unit test

Added missing unit tests for announcement listener and tuner session
for broadcast radio service.

Bug: 282031772
Test: atest BroadcastRadioTests
Flag: TEST_ONLY
Change-Id: I2d3a911d7ca74f5ff98be82405d1c63bedd7f294
parent 9d3e5eec
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -24,6 +24,8 @@ import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

@@ -33,6 +35,7 @@ import android.hardware.radio.ICloseHandle;
import android.hardware.radio.ITuner;
import android.hardware.radio.ITunerCallback;
import android.hardware.radio.RadioManager;
import android.os.IBinder;

import org.junit.Before;
import org.junit.Test;
@@ -132,6 +135,7 @@ public final class IRadioServiceHidlImplTest {
    @Test
    public void addAnnouncementListener_forHidlImpl() {
        when(mHal2Mock.hasAnyModules()).thenReturn(true);

        ICloseHandle closeHandle = mHidlImpl.addAnnouncementListener(ENABLE_TYPES, mListenerMock);

        verify(mHal2Mock).addAnnouncementListener(ENABLE_TYPES, mListenerMock);
@@ -139,4 +143,15 @@ public final class IRadioServiceHidlImplTest {
                .that(closeHandle).isEqualTo(mICloseHandle);
    }

    @Test
    public void addAnnouncementListener_withoutAnyModules() throws Exception {
        when(mHal2Mock.hasAnyModules()).thenReturn(false);
        IBinder binderMock = mock(IBinder.class);
        when(mListenerMock.asBinder()).thenReturn(binderMock);

        mHidlImpl.addAnnouncementListener(ENABLE_TYPES, mListenerMock);

        verify(mHal2Mock, never()).addAnnouncementListener(ENABLE_TYPES, mListenerMock);
        verify(binderMock).linkToDeath(any(), anyInt());
    }
}
+13 −0
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@ import android.hardware.radio.RadioManager;
import android.hardware.radio.RadioTuner;
import android.hardware.radio.UniqueProgramIdentifier;
import android.os.Binder;
import android.os.DeadObjectException;
import android.os.ParcelableException;
import android.os.RemoteException;
import android.os.ServiceSpecificException;
@@ -379,6 +380,18 @@ public final class TunerSessionTest extends ExtendedRadioMockitoTestCase {
        }
    }

    @Test
    public void tune_withDeadTunerCallback_removesDeadSession() throws Exception {
        openAidlClients(/* numClients= */ 1);
        ProgramSelector sel = AidlTestUtils.makeFmSelector(AM_FM_FREQUENCY_LIST[1]);
        doThrow(new DeadObjectException()).when(mAidlTunerCallbackMocks[0])
                .onCurrentProgramInfoChanged(any());

        mTunerSessions[0].tune(sel);

        verify(mBroadcastRadioMock, CALLBACK_TIMEOUT).unsetTunerCallback();
    }

    @Test
    public void tune_withUnsupportedSelector_throwsException() throws Exception {
        openAidlClients(/* numClients= */ 1);
+13 −0
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ import android.hardware.radio.ProgramSelector;
import android.hardware.radio.RadioManager;
import android.hardware.radio.RadioTuner;
import android.os.Binder;
import android.os.DeadObjectException;
import android.os.ParcelableException;
import android.os.RemoteException;
import android.os.UserHandle;
@@ -366,6 +367,18 @@ public final class TunerSessionHidlTest extends ExtendedRadioMockitoTestCase {
        }
    }

    @Test
    public void tune_withDeadTunerCallback_removesDeadSession() throws Exception {
        openAidlClients(/* numClients= */ 1);
        ProgramSelector sel = TestUtils.makeFmSelector(AM_FM_FREQUENCY_LIST[1]);
        doThrow(new DeadObjectException()).when(mAidlTunerCallbackMocks[0])
                .onCurrentProgramInfoChanged(any());

        mTunerSessions[0].tune(sel);

        verify(mHalTunerSessionMock, CALLBACK_TIMEOUT).close();
    }

    @Test
    public void tune_withUnsupportedSelector_throwsException() throws Exception {
        ProgramSelector.Identifier dabPrimaryId =