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

Commit 0e48c55a authored by Angela Wang's avatar Angela Wang
Browse files

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
parent 4951384b
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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