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

Commit c85e8b6d authored by Grzegorz Kolodziejczyk's avatar Grzegorz Kolodziejczyk Committed by Automerger Merge Worker
Browse files

Merge "Spy adding audio device to AudioManager" am: d558e093

parents c5c2f3ea d558e093
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)