Loading packages/SystemUI/multivalentTests/src/com/android/keyguard/KeyguardPasswordViewControllerTest.kt +40 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ package com.android.keyguard import android.testing.TestableLooper import android.view.KeyEvent import android.view.View import android.view.ViewGroup import android.view.inputmethod.InputMethodManager import android.widget.EditText Loading @@ -25,8 +27,8 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.internal.util.LatencyTracker import com.android.internal.widget.LockPatternUtils import com.android.internal.widget.LockscreenCredential import com.android.keyguard.domain.interactor.KeyguardKeyboardInteractor import com.android.systemui.Flags as AconfigFlags import com.android.systemui.SysuiTestCase import com.android.systemui.classifier.FalsingCollector import com.android.systemui.flags.FakeFeatureFlags Loading @@ -36,12 +38,17 @@ import com.android.systemui.res.R import com.android.systemui.statusbar.policy.DevicePostureController 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 junit.framework.Assert.assertFalse import junit.framework.Assert.assertTrue import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.ArgumentCaptor import org.mockito.ArgumentMatchers.anyBoolean import org.mockito.ArgumentMatchers.anyString import org.mockito.Captor import org.mockito.Mock import org.mockito.Mockito import org.mockito.Mockito.mock Loading @@ -49,6 +56,7 @@ import org.mockito.Mockito.never import org.mockito.Mockito.verify import org.mockito.Mockito.`when` import org.mockito.MockitoAnnotations import com.android.systemui.Flags as AconfigFlags @SmallTest @RunWith(AndroidJUnit4::class) Loading Loading @@ -77,6 +85,7 @@ class KeyguardPasswordViewControllerTest : SysuiTestCase() { private lateinit var mKeyguardMessageAreaController: KeyguardMessageAreaController<BouncerKeyguardMessageArea> @Mock private lateinit var postureController: DevicePostureController @Captor private lateinit var keyListenerArgumentCaptor: ArgumentCaptor<View.OnKeyListener> private lateinit var keyguardPasswordViewController: KeyguardPasswordViewController Loading Loading @@ -171,4 +180,34 @@ class KeyguardPasswordViewControllerTest : SysuiTestCase() { keyguardPasswordViewController.resetState() verify(mKeyguardMessageAreaController).setMessage(R.string.keyguard_enter_your_password) } @Test fun testSpaceKeyDoesNotSubmitPassword() { keyguardPasswordViewController.onViewAttached() verify(passwordEntry).setOnKeyListener(keyListenerArgumentCaptor.capture()) val eventHandled = keyListenerArgumentCaptor.value.onKey(keyguardPasswordView, KeyEvent.KEYCODE_SPACE, KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_SPACE)) assertFalse("Unlock attempted.", eventHandled) } @Test fun testEnterKeySubmitsPassword() { val password = mock<LockscreenCredential>() `when`(keyguardPasswordView.enteredCredential).thenReturn(password) `when`(password.size()).thenReturn(4) `when`(password.duplicate()).thenReturn(password) keyguardPasswordViewController.onViewAttached() verify(passwordEntry).setOnKeyListener(keyListenerArgumentCaptor.capture()) val eventHandled = keyListenerArgumentCaptor.value.onKey(keyguardPasswordView, KeyEvent.KEYCODE_ENTER, KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_ENTER)) assertTrue("Unlock not attempted.", eventHandled) } } packages/SystemUI/src/com/android/keyguard/KeyguardPasswordViewController.java +2 −1 Original line number Diff line number Diff line Loading @@ -86,8 +86,9 @@ public class KeyguardPasswordViewController }; private final View.OnKeyListener mKeyListener = (v, keyCode, keyEvent) -> { // Ignore SPACE as a confirm key to allow the space character within passwords. final boolean isKeyboardEnterKey = keyEvent != null && KeyEvent.isConfirmKey(keyCode) && KeyEvent.isConfirmKey(keyCode) && keyCode != KeyEvent.KEYCODE_SPACE && keyEvent.getAction() == KeyEvent.ACTION_UP; if (isKeyboardEnterKey) { verifyPasswordAndUnlock(); Loading Loading
packages/SystemUI/multivalentTests/src/com/android/keyguard/KeyguardPasswordViewControllerTest.kt +40 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ package com.android.keyguard import android.testing.TestableLooper import android.view.KeyEvent import android.view.View import android.view.ViewGroup import android.view.inputmethod.InputMethodManager import android.widget.EditText Loading @@ -25,8 +27,8 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.internal.util.LatencyTracker import com.android.internal.widget.LockPatternUtils import com.android.internal.widget.LockscreenCredential import com.android.keyguard.domain.interactor.KeyguardKeyboardInteractor import com.android.systemui.Flags as AconfigFlags import com.android.systemui.SysuiTestCase import com.android.systemui.classifier.FalsingCollector import com.android.systemui.flags.FakeFeatureFlags Loading @@ -36,12 +38,17 @@ import com.android.systemui.res.R import com.android.systemui.statusbar.policy.DevicePostureController 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 junit.framework.Assert.assertFalse import junit.framework.Assert.assertTrue import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.ArgumentCaptor import org.mockito.ArgumentMatchers.anyBoolean import org.mockito.ArgumentMatchers.anyString import org.mockito.Captor import org.mockito.Mock import org.mockito.Mockito import org.mockito.Mockito.mock Loading @@ -49,6 +56,7 @@ import org.mockito.Mockito.never import org.mockito.Mockito.verify import org.mockito.Mockito.`when` import org.mockito.MockitoAnnotations import com.android.systemui.Flags as AconfigFlags @SmallTest @RunWith(AndroidJUnit4::class) Loading Loading @@ -77,6 +85,7 @@ class KeyguardPasswordViewControllerTest : SysuiTestCase() { private lateinit var mKeyguardMessageAreaController: KeyguardMessageAreaController<BouncerKeyguardMessageArea> @Mock private lateinit var postureController: DevicePostureController @Captor private lateinit var keyListenerArgumentCaptor: ArgumentCaptor<View.OnKeyListener> private lateinit var keyguardPasswordViewController: KeyguardPasswordViewController Loading Loading @@ -171,4 +180,34 @@ class KeyguardPasswordViewControllerTest : SysuiTestCase() { keyguardPasswordViewController.resetState() verify(mKeyguardMessageAreaController).setMessage(R.string.keyguard_enter_your_password) } @Test fun testSpaceKeyDoesNotSubmitPassword() { keyguardPasswordViewController.onViewAttached() verify(passwordEntry).setOnKeyListener(keyListenerArgumentCaptor.capture()) val eventHandled = keyListenerArgumentCaptor.value.onKey(keyguardPasswordView, KeyEvent.KEYCODE_SPACE, KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_SPACE)) assertFalse("Unlock attempted.", eventHandled) } @Test fun testEnterKeySubmitsPassword() { val password = mock<LockscreenCredential>() `when`(keyguardPasswordView.enteredCredential).thenReturn(password) `when`(password.size()).thenReturn(4) `when`(password.duplicate()).thenReturn(password) keyguardPasswordViewController.onViewAttached() verify(passwordEntry).setOnKeyListener(keyListenerArgumentCaptor.capture()) val eventHandled = keyListenerArgumentCaptor.value.onKey(keyguardPasswordView, KeyEvent.KEYCODE_ENTER, KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_ENTER)) assertTrue("Unlock not attempted.", eventHandled) } }
packages/SystemUI/src/com/android/keyguard/KeyguardPasswordViewController.java +2 −1 Original line number Diff line number Diff line Loading @@ -86,8 +86,9 @@ public class KeyguardPasswordViewController }; private final View.OnKeyListener mKeyListener = (v, keyCode, keyEvent) -> { // Ignore SPACE as a confirm key to allow the space character within passwords. final boolean isKeyboardEnterKey = keyEvent != null && KeyEvent.isConfirmKey(keyCode) && KeyEvent.isConfirmKey(keyCode) && keyCode != KeyEvent.KEYCODE_SPACE && keyEvent.getAction() == KeyEvent.ACTION_UP; if (isKeyboardEnterKey) { verifyPasswordAndUnlock(); Loading