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

Commit b521d636 authored by Beverly's avatar Beverly Committed by Beverly Tai
Browse files

Use LockPatternCheckerWrapper instead of directly calling static method

This way, in unit tests, we can inject a mocked wrapper so
real methods won't be called. This avoids mockito-npe's that
can happen when the static methods are called in the
test and return on a background thread after the test has
already finished.

Flag: EXEMPT bugfix
Test: atest KeyguardPasswordViewControllerTest
Test: atest KeyguardPasswordViewControllerTest KeyguardPinBasedInputViewControllerTest
  KeyguardAbsKeyInputViewControllerTest KeyguardPinViewControllerTest
  KeyguardSecurityContainerControllerTest KeyguardSimPinViewControllerTest
  KeyguardSimPukViewControllerTest
Fixes: 423646800
Change-Id: Ia5194336cd70f2e987d8e80bbb0959d1d127ef42
parent c4096d15
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ import com.android.systemui.haptics.msdl.FakeMSDLPlayer;
import com.android.systemui.kosmos.KosmosJavaAdapter;
import com.android.systemui.res.R;
import com.android.systemui.user.domain.interactor.SelectedUserInteractor;
import com.android.systemui.util.wrapper.LockPatternCheckerWrapper;

import com.google.android.msdl.data.model.MSDLToken;

@@ -95,6 +96,8 @@ public class KeyguardAbsKeyInputViewControllerTest extends SysuiTestCase {
    private SelectedUserInteractor mSelectedUserInteractor;
    @Mock
    private UserActivityNotifier mUserActivityNotifier;
    @Mock
    private LockPatternCheckerWrapper mLockPatternCheckerWrapper;
    private KeyguardAbsKeyInputViewController mKeyguardAbsKeyInputViewController;
    private KosmosJavaAdapter mKosmosJavaAdapter = new KosmosJavaAdapter(this);
    private final BouncerHapticPlayer mBouncerHapticPlayer =
@@ -123,7 +126,7 @@ public class KeyguardAbsKeyInputViewControllerTest extends SysuiTestCase {
                mKeyguardUpdateMonitor, mSecurityMode, mLockPatternUtils, mKeyguardSecurityCallback,
                mKeyguardMessageAreaControllerFactory, mLatencyTracker, mFalsingCollector,
                mEmergencyButtonController, mFeatureFlags, mSelectedUserInteractor,
                mBouncerHapticPlayer, mUserActivityNotifier) {
                mBouncerHapticPlayer, mUserActivityNotifier, mLockPatternCheckerWrapper) {
            @Override
            void resetState() {
            }
+3 −2
Original line number Diff line number Diff line
@@ -43,10 +43,10 @@ import com.android.systemui.user.domain.interactor.SelectedUserInteractor
import com.android.systemui.util.concurrency.DelayableExecutor
import com.android.systemui.util.mockito.mock
import com.android.systemui.util.mockito.whenever
import com.android.systemui.util.wrapper.LockPatternCheckerWrapper
import junit.framework.Assert.assertFalse
import junit.framework.Assert.assertTrue
import org.junit.Before
import org.junit.Ignore
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.ArgumentCaptor
@@ -61,7 +61,6 @@ import org.mockito.Mockito.verify
import org.mockito.Mockito.`when`
import org.mockito.MockitoAnnotations

@Ignore("b/423646800")
@SmallTest
@RunWith(AndroidJUnit4::class)
// collectFlow in KeyguardPinBasedInputViewController.onViewAttached calls JavaAdapter.CollectFlow,
@@ -89,6 +88,7 @@ class KeyguardPasswordViewControllerTest : SysuiTestCase() {
        KeyguardMessageAreaController<BouncerKeyguardMessageArea>
    @Mock private lateinit var postureController: DevicePostureController
    @Mock private lateinit var mUserActivityNotifier: UserActivityNotifier
    @Mock private lateinit var lockPatternChecker: LockPatternCheckerWrapper
    @Captor private lateinit var keyListenerArgumentCaptor: ArgumentCaptor<View.OnKeyListener>
    private val kosmos = testKosmos()

@@ -139,6 +139,7 @@ class KeyguardPasswordViewControllerTest : SysuiTestCase() {
                keyguardKeyboardInteractor,
                kosmos.bouncerHapticPlayer,
                mUserActivityNotifier,
                lockPatternChecker,
            )
    }

+4 −1
Original line number Diff line number Diff line
@@ -48,6 +48,7 @@ import com.android.systemui.keyboard.data.repository.FakeKeyboardRepository;
import com.android.systemui.kosmos.KosmosJavaAdapter;
import com.android.systemui.res.R;
import com.android.systemui.user.domain.interactor.SelectedUserInteractor;
import com.android.systemui.util.wrapper.LockPatternCheckerWrapper;

import org.junit.Before;
import org.junit.Test;
@@ -98,6 +99,8 @@ public class KeyguardPinBasedInputViewControllerTest extends SysuiTestCase {
    private NumPadKey[] mButtons = new NumPadKey[]{};
    @Mock
    private InputManager mInputManager;
    @Mock
    private LockPatternCheckerWrapper mLockPatternCheckerWrapper;

    private KeyguardPinBasedInputViewController mKeyguardPinViewController;

@@ -132,7 +135,7 @@ public class KeyguardPinBasedInputViewControllerTest extends SysuiTestCase {
                mKeyguardMessageAreaControllerFactory, mLatencyTracker,
                mEmergencyButtonController, mFalsingCollector, featureFlags,
                mSelectedUserInteractor, keyguardKeyboardInteractor, mBouncerHapticPlayer,
                mUserActivityNotifier, mInputManager) {
                mUserActivityNotifier, mInputManager, mLockPatternCheckerWrapper) {
            @Override
            public void onResume(int reason) {
                super.onResume(reason);
+3 −0
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ import com.android.systemui.statusbar.policy.DevicePostureController.DEVICE_POST
import com.android.systemui.testKosmos
import com.android.systemui.user.domain.interactor.SelectedUserInteractor
import com.android.systemui.util.mockito.whenever
import com.android.systemui.util.wrapper.LockPatternCheckerWrapper
import com.google.common.truth.Truth.assertThat
import org.junit.After
import org.junit.Before
@@ -107,6 +108,7 @@ class KeyguardPinViewControllerTest : SysuiTestCase() {
    @Mock lateinit var uiEventLogger: UiEventLogger
    @Mock lateinit var mUserActivityNotifier: UserActivityNotifier
    @Mock lateinit var inputManager: InputManager
    @Mock private lateinit var lockPatternChecker: LockPatternCheckerWrapper

    @Captor lateinit var postureCallbackCaptor: ArgumentCaptor<DevicePostureController.Callback>

@@ -167,6 +169,7 @@ class KeyguardPinViewControllerTest : SysuiTestCase() {
                kosmos.bouncerHapticPlayer,
                mUserActivityNotifier,
                inputManager,
                lockPatternChecker,
            )
    }

+3 −0
Original line number Diff line number Diff line
@@ -91,6 +91,7 @@ import com.android.systemui.util.mockito.mock
import com.android.systemui.util.mockito.whenever
import com.android.systemui.util.settings.GlobalSettings
import com.android.systemui.util.time.FakeSystemClock
import com.android.systemui.util.wrapper.LockPatternCheckerWrapper
import com.android.systemui.window.domain.interactor.windowRootViewBlurInteractor
import com.google.common.truth.Truth
import junit.framework.Assert
@@ -163,6 +164,7 @@ class KeyguardSecurityContainerControllerTest : SysuiTestCase() {
    @Mock private lateinit var devicePolicyManager: DevicePolicyManager
    @Mock private lateinit var mUserActivityNotifier: UserActivityNotifier
    @Mock private lateinit var bouncerInteractor: BouncerInteractor
    @Mock private lateinit var lockPatternChecker: LockPatternCheckerWrapper

    @Captor
    private lateinit var swipeListenerArgumentCaptor:
@@ -247,6 +249,7 @@ class KeyguardSecurityContainerControllerTest : SysuiTestCase() {
                keyguardKeyboardInteractor,
                null,
                mUserActivityNotifier,
                lockPatternChecker,
            )

        kosmos = testKosmos()
Loading