blob: eadb1b63df90093163e7050cd6888ce27b9b88c8 [file] [log] [blame]
Lucas Dupin70659002018-04-30 15:56:52 -07001/*
2 * Copyright (C) 2018 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License
15 */
16
17package com.android.keyguard;
18
Lucas Dupin29e796d2018-05-10 15:31:20 -070019import static org.mockito.ArgumentMatchers.eq;
20import static org.mockito.Mockito.mock;
Lucas Dupin70659002018-04-30 15:56:52 -070021import static org.mockito.Mockito.verify;
Lucas Dupin29e796d2018-05-10 15:31:20 -070022import static org.mockito.Mockito.verifyZeroInteractions;
Lucas Dupin70659002018-04-30 15:56:52 -070023
Lucas Dupin70659002018-04-30 15:56:52 -070024import android.testing.AndroidTestingRunner;
25import android.testing.TestableLooper.RunWithLooper;
Lucas Dupin29e796d2018-05-10 15:31:20 -070026import android.view.KeyEvent;
Lucas Dupin70659002018-04-30 15:56:52 -070027import android.view.LayoutInflater;
28
Brett Chabot84151d92019-02-27 15:37:59 -080029import androidx.test.filters.SmallTest;
30
Lucas Dupin70659002018-04-30 15:56:52 -070031import com.android.systemui.SysuiTestCase;
32
33import org.junit.Before;
34import org.junit.Test;
35import org.junit.runner.RunWith;
Lucas Dupin29e796d2018-05-10 15:31:20 -070036import org.mockito.InjectMocks;
Lucas Dupin70659002018-04-30 15:56:52 -070037import org.mockito.Mock;
38import org.mockito.MockitoAnnotations;
39
40@SmallTest
41@RunWith(AndroidTestingRunner.class)
Jason Monka716bac2018-12-05 15:48:21 -050042@RunWithLooper
Lucas Dupin70659002018-04-30 15:56:52 -070043public class KeyguardPinBasedInputViewTest extends SysuiTestCase {
44
45 @Mock
Lucas Dupin29e796d2018-05-10 15:31:20 -070046 private PasswordTextView mPasswordEntry;
47 @Mock
48 private SecurityMessageDisplay mSecurityMessageDisplay;
49 @InjectMocks
Lucas Dupin70659002018-04-30 15:56:52 -070050 private KeyguardPinBasedInputView mKeyguardPinView;
51
52 @Before
53 public void setup() {
Lucas Dupin70659002018-04-30 15:56:52 -070054 LayoutInflater inflater = LayoutInflater.from(getContext());
55 mKeyguardPinView =
56 (KeyguardPinBasedInputView) inflater.inflate(R.layout.keyguard_pin_view, null);
Lucas Dupin29e796d2018-05-10 15:31:20 -070057 MockitoAnnotations.initMocks(this);
Lucas Dupin70659002018-04-30 15:56:52 -070058 }
59
60 @Test
61 public void onResume_requestsFocus() {
62 mKeyguardPinView.onResume(KeyguardSecurityView.SCREEN_ON);
Lucas Dupin29e796d2018-05-10 15:31:20 -070063 verify(mPasswordEntry).requestFocus();
64 }
65
66 @Test
67 public void onKeyDown_clearsSecurityMessage() {
68 mKeyguardPinView.onKeyDown(KeyEvent.KEYCODE_0, mock(KeyEvent.class));
69 verify(mSecurityMessageDisplay).setMessage(eq(""));
70 }
71
72 @Test
73 public void onKeyDown_noSecurityMessageInteraction() {
74 mKeyguardPinView.onKeyDown(KeyEvent.KEYCODE_UNKNOWN, mock(KeyEvent.class));
75 verifyZeroInteractions(mSecurityMessageDisplay);
Lucas Dupin70659002018-04-30 15:56:52 -070076 }
77}