diff options
| author | 2024-07-05 14:56:59 +0100 | |
|---|---|---|
| committer | 2024-07-08 16:58:20 +0000 | |
| commit | db954501543ff815a03d070fe19422fa5e268094 (patch) | |
| tree | 9069785841b64efc69f666a39a4aa9d9fd0c4cd5 | |
| parent | f82e76adc3d9546a49c879572961548ec9d06610 (diff) | |
Add test for IAE on address-less bluetooth routes in InfoMediaManager
This test checks the fix on ag/27873855.
Bug: 347499404
Test: atest InfoMediaManagerTest
Flag: TEST_ONLY
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:337a1f04e338cf52b47d792e4049c7af55db35a2)
Merged-In: Ib929a8bd66d288d956524f67a941421294cc531b
Change-Id: I27bfeb220a45902b2846cbd9a2cbd6698d70029c
| -rw-r--r-- | packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java index c159d5ee37f0..39ce5dab5306 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java @@ -85,6 +85,15 @@ public class InfoMediaManagerTest { private static final String TEST_DUPLICATED_ID_1 = "test_duplicated_id_1"; private static final String TEST_DUPLICATED_ID_2 = "test_duplicated_id_2"; private static final String TEST_DUPLICATED_ID_3 = "test_duplicated_id_3"; + private static final String TEST_BLUETOOTH_ROUTE_ID = "TEST_BT_ROUTE_ID"; + + private static final MediaRoute2Info TEST_BLUETOOTH_ROUTE = + new MediaRoute2Info.Builder(TEST_BLUETOOTH_ROUTE_ID, "BLUETOOTH_ROUTE") + .setSystemRoute(true) + .addFeature(MediaRoute2Info.FEATURE_LIVE_AUDIO) + .setType(TYPE_BLUETOOTH_A2DP) + .setAddress("00:00:00:00:00:00") + .build(); @Mock private MediaRouter2Manager mRouterManager; @@ -848,6 +857,23 @@ public class InfoMediaManagerTest { } @Test + public void addMediaDevice_withAddresslessBluetoothDevice_shouldIgnoreDeviceAndNotCrash() { + MediaRoute2Info bluetoothRoute = + new MediaRoute2Info.Builder(TEST_BLUETOOTH_ROUTE).setAddress(null).build(); + + final CachedBluetoothDeviceManager cachedBluetoothDeviceManager = + mock(CachedBluetoothDeviceManager.class); + when(mLocalBluetoothManager.getCachedDeviceManager()) + .thenReturn(cachedBluetoothDeviceManager); + when(cachedBluetoothDeviceManager.findDevice(any(BluetoothDevice.class))).thenReturn(null); + + mInfoMediaManager.mMediaDevices.clear(); + mInfoMediaManager.addMediaDevice(bluetoothRoute); + + assertThat(mInfoMediaManager.mMediaDevices.size()).isEqualTo(0); + } + + @Test public void addMediaDevice_deviceIncludedInSelectedDevices_shouldSetAsCurrentConnected() { final MediaRoute2Info route2Info = mock(MediaRoute2Info.class); final CachedBluetoothDeviceManager cachedBluetoothDeviceManager = |