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

Commit fb3f0115 authored by Michal Belusiak's avatar Michal Belusiak
Browse files

BassClientService: Add missing return if source add failed

Fix unit tests for intentional and unintentional disconnection
by setting correct playing state for local broadcast.

Remove unnecessary broadcast searching as these tests are only
for local broadcast.

Bug: 338574075
Bug: 333050419
Test: atest BassClientServiceTest
Change-Id: Ic433405954491ab9ab475160e55e3aa6d91b3b27
parent 5911195b
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -2289,6 +2289,8 @@ public class BassClientService extends ProfileService {
                            sink,
                            sourceMetadata,
                            BluetoothStatusCodes.ERROR_LOCAL_NOT_ENOUGH_RESOURCES);

                    return;
                }
            }
        } else {
+16 −15
Original line number Diff line number Diff line
@@ -3412,16 +3412,13 @@ public class BassClientServiceTest {
        assertThat(activeSinks.contains(mCurrentDevice1)).isTrue();
    }

    private void prepareTwoSynchronizedDevices() {
    private void prepareTwoSynchronizedDevicesForLocalBroadcast() {
        BluetoothLeBroadcastMetadata meta = createBroadcastMetadata(TEST_BROADCAST_ID);

        doReturn(new ArrayList<BluetoothLeBroadcastMetadata>(Arrays.asList(meta)))
                .when(mLeAudioService)
                .getAllBroadcastMetadata();
        prepareConnectedDeviceGroup();
        startSearchingForSources();
        onScanResult(mSourceDevice, TEST_BROADCAST_ID);
        onSyncEstablished(mSourceDevice, TEST_SYNC_HANDLE);
        verifyAddSourceForGroup(meta);
        for (BassClientStateMachine sm : mStateMachines.values()) {
            if (sm.getDevice().equals(mCurrentDevice)) {
@@ -3472,10 +3469,11 @@ public class BassClientServiceTest {

    @Test
    public void testPrivateBroadcastIntentionalDisconnection() {
        prepareTwoSynchronizedDevices();

        /* Imitate broadcast being active */
        doReturn(true).when(mLeAudioService).isPlaying(TEST_BROADCAST_ID);

        prepareTwoSynchronizedDevicesForLocalBroadcast();

        /* Imitate devices being primary */
        doReturn(true).when(mLeAudioService).isPrimaryDevice(mCurrentDevice);
        doReturn(true).when(mLeAudioService).isPrimaryDevice(mCurrentDevice1);
@@ -3500,10 +3498,11 @@ public class BassClientServiceTest {

    @Test
    public void testPrivateBroadcastUnintentionalDisconnection() {
        prepareTwoSynchronizedDevices();

        /* Imitate broadcast being active */
        doReturn(true).when(mLeAudioService).isPlaying(TEST_BROADCAST_ID);

        prepareTwoSynchronizedDevicesForLocalBroadcast();

        /* Imitate devices being primary */
        doReturn(true).when(mLeAudioService).isPrimaryDevice(mCurrentDevice);
        doReturn(true).when(mLeAudioService).isPrimaryDevice(mCurrentDevice1);
@@ -3528,10 +3527,11 @@ public class BassClientServiceTest {

    @Test
    public void testAudioSharingIntentionalDisconnection() {
        prepareTwoSynchronizedDevices();

        /* Imitate broadcast being active */
        doReturn(true).when(mLeAudioService).isPlaying(TEST_BROADCAST_ID);

        prepareTwoSynchronizedDevicesForLocalBroadcast();

        /* Imitate devices being primary */
        doReturn(true).when(mLeAudioService).isPrimaryDevice(mCurrentDevice);
        doReturn(false).when(mLeAudioService).isPrimaryDevice(mCurrentDevice1);
@@ -3556,10 +3556,11 @@ public class BassClientServiceTest {

    @Test
    public void testAudioSharingUnintentionalDisconnection() {
        prepareTwoSynchronizedDevices();

        /* Imitate broadcast being active */
        doReturn(true).when(mLeAudioService).isPlaying(TEST_BROADCAST_ID);

        prepareTwoSynchronizedDevicesForLocalBroadcast();

        /* Imitate devices being primary */
        doReturn(true).when(mLeAudioService).isPrimaryDevice(mCurrentDevice);
        doReturn(false).when(mLeAudioService).isPrimaryDevice(mCurrentDevice1);
@@ -3584,15 +3585,15 @@ public class BassClientServiceTest {

    @Test
    public void testNotifyBroadcastStateChangedStopped() {
        /* Imitate broadcast being active */
        doReturn(true).when(mLeAudioService).isPlaying(TEST_BROADCAST_ID);

        BluetoothLeBroadcastMetadata meta = createBroadcastMetadata(TEST_BROADCAST_ID);

        doReturn(new ArrayList<BluetoothLeBroadcastMetadata>(Arrays.asList(meta)))
                .when(mLeAudioService)
                .getAllBroadcastMetadata();
        prepareConnectedDeviceGroup();
        startSearchingForSources();
        onScanResult(mSourceDevice, TEST_BROADCAST_ID);
        onSyncEstablished(mSourceDevice, TEST_SYNC_HANDLE);
        verifyAddSourceForGroup(meta);
        for (BassClientStateMachine sm : mStateMachines.values()) {
            if (sm.getDevice().equals(mCurrentDevice)) {