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

Commit 46b6b8a1 authored by jasonwshsu's avatar jasonwshsu Committed by Jason Hsu
Browse files

Fix AccessibilityManagerServiceTest exceeded the number of permissible registered listeners

Root Cause: Test will construct AccessibilityManagerService each time, and it will register listeners without unregister it.

Solution: We don't need to test register listeners logic inside AccessibilityManagerService, so pass the mock object inside constructor.

Bug: 388436864
Test: atest AccessibilityManagerServiceTest
Flag: EXEMPT bugfix
Change-Id: I8c96323438d4708afe5f99daee0f2498c8c2b2ea
parent beedd416
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -542,7 +542,8 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
            MagnificationController magnificationController,
            MagnificationController magnificationController,
            @Nullable AccessibilityInputFilter inputFilter,
            @Nullable AccessibilityInputFilter inputFilter,
            ProxyManager proxyManager,
            ProxyManager proxyManager,
            PermissionEnforcer permissionEnforcer) {
            PermissionEnforcer permissionEnforcer,
            HearingDevicePhoneCallNotificationController hearingDeviceNotificationController) {
        super(permissionEnforcer);
        super(permissionEnforcer);
        mContext = context;
        mContext = context;
        mPowerManager =  (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
        mPowerManager =  (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
@@ -571,8 +572,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
        mVisibleBgUserIds = null;
        mVisibleBgUserIds = null;
        mInputManager = context.getSystemService(InputManager.class);
        mInputManager = context.getSystemService(InputManager.class);
        if (com.android.settingslib.flags.Flags.hearingDevicesInputRoutingControl()) {
        if (com.android.settingslib.flags.Flags.hearingDevicesInputRoutingControl()) {
            mHearingDeviceNotificationController = new HearingDevicePhoneCallNotificationController(
            mHearingDeviceNotificationController = hearingDeviceNotificationController;
                    context);
        } else {
        } else {
            mHearingDeviceNotificationController = null;
            mHearingDeviceNotificationController = null;
        }
        }
+5 −1
Original line number Original line Diff line number Diff line
@@ -220,6 +220,9 @@ public class AccessibilityManagerServiceTest {
    @Mock private ProxyManager mProxyManager;
    @Mock private ProxyManager mProxyManager;
    @Mock private StatusBarManagerInternal mStatusBarManagerInternal;
    @Mock private StatusBarManagerInternal mStatusBarManagerInternal;
    @Mock private DevicePolicyManager mDevicePolicyManager;
    @Mock private DevicePolicyManager mDevicePolicyManager;
    @Mock
    private HearingDevicePhoneCallNotificationController
            mMockHearingDevicePhoneCallNotificationController;
    @Spy private IUserInitializationCompleteCallback mUserInitializationCompleteCallback;
    @Spy private IUserInitializationCompleteCallback mUserInitializationCompleteCallback;
    @Captor private ArgumentCaptor<Intent> mIntentArgumentCaptor;
    @Captor private ArgumentCaptor<Intent> mIntentArgumentCaptor;
    private IAccessibilityManager mA11yManagerServiceOnDevice;
    private IAccessibilityManager mA11yManagerServiceOnDevice;
@@ -289,7 +292,8 @@ public class AccessibilityManagerServiceTest {
                mMockMagnificationController,
                mMockMagnificationController,
                mInputFilter,
                mInputFilter,
                mProxyManager,
                mProxyManager,
                mFakePermissionEnforcer);
                mFakePermissionEnforcer,
                mMockHearingDevicePhoneCallNotificationController);
        mA11yms.switchUser(mTestableContext.getUserId());
        mA11yms.switchUser(mTestableContext.getUserId());
        mTestableLooper.processAllMessages();
        mTestableLooper.processAllMessages();