summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Iván Budnik <ivanbuper@google.com> 2024-07-05 14:56:59 +0100
committer Iván Budnik <ivanbuper@google.com> 2024-07-08 16:58:20 +0000
commitdb954501543ff815a03d070fe19422fa5e268094 (patch)
tree9069785841b64efc69f666a39a4aa9d9fd0c4cd5
parentf82e76adc3d9546a49c879572961548ec9d06610 (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.java26
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 =