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

Commit d558e093 authored by Grzegorz Kolodziejczyk's avatar Grzegorz Kolodziejczyk Committed by Gerrit Code Review
Browse files

Merge "Spy adding audio device to AudioManager"

parents add5372a f14bc92d
Loading
Loading
Loading
Loading
+28 −1
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.timeout;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
@@ -46,6 +47,8 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.media.AudioDeviceCallback;
import android.media.AudioDeviceInfo;
import android.media.AudioManager;
import android.media.BluetoothProfileConnectionInfo;
import android.os.ParcelUuid;
@@ -106,10 +109,10 @@ public class LeAudioServiceTest {
    @Mock private AdapterService mAdapterService;
    @Mock private DatabaseManager mDatabaseManager;
    @Mock private LeAudioNativeInterface mNativeInterface;
    @Mock private AudioManager mAudioManager;
    @Mock private VolumeControlService mVolumeControlService;
    @Mock private LeAudioTmapGattServer mTmapGattServer;
    @Spy private LeAudioObjectsFactory mObjectsFactory = LeAudioObjectsFactory.getInstance();
    @Spy private AudioManager mAudioManager;


    @Rule public final ServiceTestRule mServiceRule = new ServiceTestRule();
@@ -173,6 +176,7 @@ public class LeAudioServiceTest {

        LeAudioNativeInterface.setInstance(mNativeInterface);
        startService();
        mAudioManager = spy(mService.mAudioManager);
        mService.mAudioManager = mAudioManager;
        mService.mVolumeControlService = mVolumeControlService;

@@ -1118,6 +1122,14 @@ public class LeAudioServiceTest {

        String action = BluetoothLeAudio.ACTION_LE_AUDIO_ACTIVE_DEVICE_CHANGED;

        ArgumentCaptor<AudioDeviceCallback> audioDeviceCallback =
                ArgumentCaptor.forClass(AudioDeviceCallback.class);
        verify(mAudioManager, times(1)).registerAudioDeviceCallback(audioDeviceCallback.capture(),
                any());
        AudioDeviceInfo audioDeviceInfo[] =
                mAudioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS);
        audioDeviceCallback.getValue().onAudioDevicesAdded(audioDeviceInfo);

        Intent intent = TestUtils.waitForIntent(TIMEOUT_MS, mDeviceQueueMap.get(mSingleDevice));
        assertThat(intent).isNotNull();
        assertThat(action).isEqualTo(intent.getAction());
@@ -1332,6 +1344,14 @@ public class LeAudioServiceTest {
                        any(BluetoothProfileConnectionInfo.class));

        doReturn(BluetoothDevice.BOND_BONDED).when(mAdapterService).getBondState(leadDevice);

        ArgumentCaptor<AudioDeviceCallback> audioDeviceCallback =
                ArgumentCaptor.forClass(AudioDeviceCallback.class);
        verify(mAudioManager, times(1)).registerAudioDeviceCallback(audioDeviceCallback.capture(),
                any());
        AudioDeviceInfo audioDeviceInfo[] =
                mAudioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS);
        audioDeviceCallback.getValue().onAudioDevicesAdded(audioDeviceInfo);
        verifyActiveDeviceStateIntent(AUDIO_MANAGER_DEVICE_ADD_TIMEOUT_MS, leadDevice);
        injectNoVerifyDeviceDisconnected(leadDevice);

@@ -1397,6 +1417,13 @@ public class LeAudioServiceTest {
        verify(mAudioManager, times(1)).handleBluetoothActiveDeviceChanged(eq(leadDevice), any(),
                        any(BluetoothProfileConnectionInfo.class));

        ArgumentCaptor<AudioDeviceCallback> audioDeviceCallback =
                ArgumentCaptor.forClass(AudioDeviceCallback.class);
        verify(mAudioManager, times(1)).registerAudioDeviceCallback(audioDeviceCallback.capture(),
                any());
        AudioDeviceInfo audioDeviceInfo[] =
                mAudioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS);
        audioDeviceCallback.getValue().onAudioDevicesAdded(audioDeviceInfo);
        verifyActiveDeviceStateIntent(AUDIO_MANAGER_DEVICE_ADD_TIMEOUT_MS, leadDevice);
        /* We don't want to distribute DISCONNECTION event, instead will try to reconnect
         * (in native)