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

Commit 0581bd7f authored by tim peng's avatar tim peng Committed by Android (Google) Code Review
Browse files

Merge "Output switcher shows the device list by an incorrect package name" into rvc-dev

parents 9a9ce2b2 77bec31e
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -73,7 +73,8 @@ public class MediaDeviceUpdateWorker extends SliceBackgroundWorker
    protected void onSlicePinned() {
        mMediaDevices.clear();
        mIsTouched = false;
        if (mLocalMediaManager == null) {
        if (mLocalMediaManager == null || !TextUtils.equals(mPackageName,
                mLocalMediaManager.getPackageName())) {
            mLocalMediaManager = new LocalMediaManager(mContext, mPackageName, null);
        }

+35 −1
Original line number Diff line number Diff line
@@ -35,12 +35,17 @@ import android.media.RoutingSessionInfo;
import android.net.Uri;

import com.android.settings.testutils.shadow.ShadowAudioManager;
import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
import com.android.settingslib.bluetooth.BluetoothEventManager;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.media.LocalMediaManager;
import com.android.settingslib.media.MediaDevice;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
@@ -51,16 +56,28 @@ import java.util.ArrayList;
import java.util.List;

@RunWith(RobolectricTestRunner.class)
@Config(shadows = ShadowAudioManager.class)
@Config(shadows = {ShadowAudioManager.class, ShadowBluetoothAdapter.class,
        ShadowBluetoothUtils.class})
public class MediaDeviceUpdateWorkerTest {

    private static final Uri URI = Uri.parse("content://com.android.settings.slices/test");
    private static final Uri URI1 = Uri.parse("content://com.android.settings.slices/action/"
            + "media_output?media_package_name=com.music1");
    private static final Uri URI2 = Uri.parse("content://com.android.settings.slices/action/"
            + "media_output?media_package_name=com.music2");
    private static final String TEST_DEVICE_PACKAGE_NAME1 = "com.music1";
    private static final String TEST_DEVICE_PACKAGE_NAME2 = "com.music2";
    private static final String TEST_DEVICE_1_ID = "test_device_1_id";
    private static final String TEST_DEVICE_2_ID = "test_device_2_id";
    private static final String TEST_DEVICE_3_ID = "test_device_3_id";

    private final List<MediaDevice> mMediaDevices = new ArrayList<>();

    @Mock
    private LocalBluetoothManager mLocalBluetoothManager;
    @Mock
    private BluetoothEventManager mBluetoothEventManager;

    private MediaDeviceUpdateWorker mMediaDeviceUpdateWorker;
    private ContentResolver mResolver;
    private Context mContext;
@@ -209,4 +226,21 @@ public class MediaDeviceUpdateWorkerTest {
        assertThat(mMediaDeviceUpdateWorker.getActiveRemoteMediaDevice()).containsExactly(
                remoteSessionInfo);
    }

    @Test
    public void onSlicePinned_packageUpdated_checkPackageName() {
        ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBluetoothManager;
        when(mLocalBluetoothManager.getEventManager()).thenReturn(mBluetoothEventManager);
        mMediaDeviceUpdateWorker = new MediaDeviceUpdateWorker(mContext, URI1);
        mMediaDeviceUpdateWorker.onSlicePinned();

        assertThat(mMediaDeviceUpdateWorker.mLocalMediaManager.getPackageName()).matches(
                TEST_DEVICE_PACKAGE_NAME1);

        mMediaDeviceUpdateWorker = new MediaDeviceUpdateWorker(mContext, URI2);
        mMediaDeviceUpdateWorker.onSlicePinned();

        assertThat(mMediaDeviceUpdateWorker.mLocalMediaManager.getPackageName()).matches(
                TEST_DEVICE_PACKAGE_NAME2);
    }
}