From 0e48c55a2a7e0e1c25ebf24527a5ef7e1c2ac668 Mon Sep 17 00:00:00 2001 From: Angela Wang Date: Wed, 15 Feb 2023 08:23:58 +0000 Subject: [PATCH] Fixes fail test cases in AccessibilitySettingsTest AccessibilityHearingAidPreferenceController can't be instantiated correctly in tests with the lack of LocalBluetoothManager. This causes null pointer exception when AccessibilityHearingAidPreferenceController.setFragmentManager() is called in AccessibilitySettings.onAttach(). Solution: Mocks the LocalBluetoothManager for tests to successfully instantiate AccessibilityHearingAidPreferenceController to prevent null pointer exception from happening. Bug: 269407238 Test: atest AccessibilitySettingsTest Change-Id: Ibcfffa10b46fd6e85c1b74b03343e5ee0e8843b3 --- .../settings/accessibility/AccessibilitySettingsTest.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java index 695e86b3604..16d14837b06 100644 --- a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java @@ -56,9 +56,11 @@ import com.android.internal.accessibility.util.AccessibilityUtils; import com.android.internal.content.PackageMonitor; import com.android.settings.R; import com.android.settings.testutils.XmlTestUtils; +import com.android.settings.testutils.shadow.ShadowBluetoothUtils; import com.android.settings.testutils.shadow.ShadowFragment; import com.android.settings.testutils.shadow.ShadowUserManager; import com.android.settingslib.RestrictedPreference; +import com.android.settingslib.bluetooth.LocalBluetoothManager; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.search.SearchIndexableRaw; @@ -85,6 +87,7 @@ import java.util.List; /** Test for {@link AccessibilitySettings}. */ @RunWith(RobolectricTestRunner.class) +@Config(shadows = {ShadowBluetoothUtils.class}) public class AccessibilitySettingsTest { private static final String PACKAGE_NAME = "com.android.test"; private static final String CLASS_NAME = PACKAGE_NAME + ".test_a11y_service"; @@ -116,6 +119,8 @@ public class AccessibilitySettingsTest { private ShadowAccessibilityManager mShadowAccessibilityManager; @Mock private AppOpsManager mAppOpsManager; + @Mock + private LocalBluetoothManager mLocalBluetoothManager; private Lifecycle mLifecycle; @@ -134,6 +139,7 @@ public class AccessibilitySettingsTest { anyInt(), anyString())).thenReturn(AppOpsManager.MODE_ALLOWED); mLifecycle = new Lifecycle(() -> mLifecycle); when(mFragment.getSettingsLifecycle()).thenReturn(mLifecycle); + ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBluetoothManager; } @Test