134a181aceb3e49397584c1f768a75593b15c55edMaurice Lam/* 234a181aceb3e49397584c1f768a75593b15c55edMaurice Lam * Copyright (C) 2017 The Android Open Source Project 334a181aceb3e49397584c1f768a75593b15c55edMaurice Lam * 434a181aceb3e49397584c1f768a75593b15c55edMaurice Lam * Licensed under the Apache License, Version 2.0 (the "License"); 534a181aceb3e49397584c1f768a75593b15c55edMaurice Lam * you may not use this file except in compliance with the License. 634a181aceb3e49397584c1f768a75593b15c55edMaurice Lam * You may obtain a copy of the License at 734a181aceb3e49397584c1f768a75593b15c55edMaurice Lam * 834a181aceb3e49397584c1f768a75593b15c55edMaurice Lam * http://www.apache.org/licenses/LICENSE-2.0 934a181aceb3e49397584c1f768a75593b15c55edMaurice Lam * 1034a181aceb3e49397584c1f768a75593b15c55edMaurice Lam * Unless required by applicable law or agreed to in writing, software 1134a181aceb3e49397584c1f768a75593b15c55edMaurice Lam * distributed under the License is distributed on an "AS IS" BASIS, 1234a181aceb3e49397584c1f768a75593b15c55edMaurice Lam * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1334a181aceb3e49397584c1f768a75593b15c55edMaurice Lam * See the License for the specific language governing permissions and 1434a181aceb3e49397584c1f768a75593b15c55edMaurice Lam * limitations under the License. 1534a181aceb3e49397584c1f768a75593b15c55edMaurice Lam */ 1634a181aceb3e49397584c1f768a75593b15c55edMaurice Lam 1734a181aceb3e49397584c1f768a75593b15c55edMaurice Lampackage com.android.settings.fingerprint; 1834a181aceb3e49397584c1f768a75593b15c55edMaurice Lam 1934a181aceb3e49397584c1f768a75593b15c55edMaurice Lam 2034a181aceb3e49397584c1f768a75593b15c55edMaurice Lamimport static com.google.common.truth.Truth.assertThat; 2134a181aceb3e49397584c1f768a75593b15c55edMaurice Lam 2234a181aceb3e49397584c1f768a75593b15c55edMaurice Lamimport static org.robolectric.RuntimeEnvironment.application; 2334a181aceb3e49397584c1f768a75593b15c55edMaurice Lam 2434a181aceb3e49397584c1f768a75593b15c55edMaurice Lamimport android.app.Activity; 2534a181aceb3e49397584c1f768a75593b15c55edMaurice Lamimport android.app.KeyguardManager; 2634a181aceb3e49397584c1f768a75593b15c55edMaurice Lamimport android.content.Intent; 2734a181aceb3e49397584c1f768a75593b15c55edMaurice Lamimport android.content.pm.UserInfo; 2834a181aceb3e49397584c1f768a75593b15c55edMaurice Lamimport android.view.View; 2934a181aceb3e49397584c1f768a75593b15c55edMaurice Lamimport android.widget.Button; 3034a181aceb3e49397584c1f768a75593b15c55edMaurice Lam 3134a181aceb3e49397584c1f768a75593b15c55edMaurice Lamimport com.android.settings.R; 3234a181aceb3e49397584c1f768a75593b15c55edMaurice Lamimport com.android.settings.TestConfig; 3334a181aceb3e49397584c1f768a75593b15c55edMaurice Lamimport com.android.settings.testutils.SettingsRobolectricTestRunner; 3434a181aceb3e49397584c1f768a75593b15c55edMaurice Lamimport com.android.settings.testutils.shadow.ShadowEventLogWriter; 3534a181aceb3e49397584c1f768a75593b15c55edMaurice Lamimport com.android.settings.testutils.shadow.ShadowLockPatternUtils; 3634a181aceb3e49397584c1f768a75593b15c55edMaurice Lamimport com.android.settings.testutils.shadow.ShadowUserManager; 3734a181aceb3e49397584c1f768a75593b15c55edMaurice Lam 3834a181aceb3e49397584c1f768a75593b15c55edMaurice Lamimport org.junit.Before; 3934a181aceb3e49397584c1f768a75593b15c55edMaurice Lamimport org.junit.Test; 4034a181aceb3e49397584c1f768a75593b15c55edMaurice Lamimport org.junit.runner.RunWith; 4134a181aceb3e49397584c1f768a75593b15c55edMaurice Lamimport org.mockito.Mock; 4234a181aceb3e49397584c1f768a75593b15c55edMaurice Lamimport org.mockito.MockitoAnnotations; 4334a181aceb3e49397584c1f768a75593b15c55edMaurice Lamimport org.robolectric.Robolectric; 4434a181aceb3e49397584c1f768a75593b15c55edMaurice Lamimport org.robolectric.Shadows; 4534a181aceb3e49397584c1f768a75593b15c55edMaurice Lamimport org.robolectric.annotation.Config; 4634a181aceb3e49397584c1f768a75593b15c55edMaurice Lamimport org.robolectric.shadows.ShadowActivity; 4734a181aceb3e49397584c1f768a75593b15c55edMaurice Lamimport org.robolectric.shadows.ShadowKeyguardManager; 4834a181aceb3e49397584c1f768a75593b15c55edMaurice Lamimport org.robolectric.util.ActivityController; 4934a181aceb3e49397584c1f768a75593b15c55edMaurice Lam 5034a181aceb3e49397584c1f768a75593b15c55edMaurice Lam@RunWith(SettingsRobolectricTestRunner.class) 5134a181aceb3e49397584c1f768a75593b15c55edMaurice Lam@Config( 5234a181aceb3e49397584c1f768a75593b15c55edMaurice Lam manifest = TestConfig.MANIFEST_PATH, 5334a181aceb3e49397584c1f768a75593b15c55edMaurice Lam sdk = TestConfig.SDK_VERSION, 5434a181aceb3e49397584c1f768a75593b15c55edMaurice Lam shadows = { 5534a181aceb3e49397584c1f768a75593b15c55edMaurice Lam ShadowEventLogWriter.class, 5634a181aceb3e49397584c1f768a75593b15c55edMaurice Lam ShadowLockPatternUtils.class, 5734a181aceb3e49397584c1f768a75593b15c55edMaurice Lam ShadowUserManager.class 5834a181aceb3e49397584c1f768a75593b15c55edMaurice Lam }) 5934a181aceb3e49397584c1f768a75593b15c55edMaurice Lampublic class FingerprintSuggestionActivityTest { 6034a181aceb3e49397584c1f768a75593b15c55edMaurice Lam 6134a181aceb3e49397584c1f768a75593b15c55edMaurice Lam @Mock 6234a181aceb3e49397584c1f768a75593b15c55edMaurice Lam private UserInfo mUserInfo; 6334a181aceb3e49397584c1f768a75593b15c55edMaurice Lam 6434a181aceb3e49397584c1f768a75593b15c55edMaurice Lam private ActivityController<FingerprintSuggestionActivity> mController; 6534a181aceb3e49397584c1f768a75593b15c55edMaurice Lam 6634a181aceb3e49397584c1f768a75593b15c55edMaurice Lam @Before 6734a181aceb3e49397584c1f768a75593b15c55edMaurice Lam public void setUp() { 6834a181aceb3e49397584c1f768a75593b15c55edMaurice Lam MockitoAnnotations.initMocks(this); 6934a181aceb3e49397584c1f768a75593b15c55edMaurice Lam 7034a181aceb3e49397584c1f768a75593b15c55edMaurice Lam final Intent intent = new Intent(); 7134a181aceb3e49397584c1f768a75593b15c55edMaurice Lam mController = Robolectric.buildActivity(FingerprintSuggestionActivity.class, intent); 7234a181aceb3e49397584c1f768a75593b15c55edMaurice Lam 7334a181aceb3e49397584c1f768a75593b15c55edMaurice Lam ShadowUserManager.getShadow().setUserInfo(0, mUserInfo); 7434a181aceb3e49397584c1f768a75593b15c55edMaurice Lam } 7534a181aceb3e49397584c1f768a75593b15c55edMaurice Lam 7634a181aceb3e49397584c1f768a75593b15c55edMaurice Lam @Test 7734a181aceb3e49397584c1f768a75593b15c55edMaurice Lam public void testKeyguardSecure_shouldFinishWithFingerprintResultSkip() { 7834a181aceb3e49397584c1f768a75593b15c55edMaurice Lam getShadowKeyguardManager().setIsKeyguardSecure(true); 7934a181aceb3e49397584c1f768a75593b15c55edMaurice Lam 8034a181aceb3e49397584c1f768a75593b15c55edMaurice Lam mController.create().resume(); 8134a181aceb3e49397584c1f768a75593b15c55edMaurice Lam 8234a181aceb3e49397584c1f768a75593b15c55edMaurice Lam final Button cancelButton = mController.get().findViewById(R.id.fingerprint_cancel_button); 8334a181aceb3e49397584c1f768a75593b15c55edMaurice Lam assertThat(cancelButton.getText().toString()).isEqualTo("Cancel"); 8434a181aceb3e49397584c1f768a75593b15c55edMaurice Lam assertThat(cancelButton.getVisibility()).named("Cancel visible").isEqualTo(View.VISIBLE); 8534a181aceb3e49397584c1f768a75593b15c55edMaurice Lam cancelButton.performClick(); 8634a181aceb3e49397584c1f768a75593b15c55edMaurice Lam 8734a181aceb3e49397584c1f768a75593b15c55edMaurice Lam ShadowActivity shadowActivity = Shadows.shadowOf(mController.get()); 8834a181aceb3e49397584c1f768a75593b15c55edMaurice Lam assertThat(mController.get().isFinishing()).named("Is finishing").isTrue(); 8934a181aceb3e49397584c1f768a75593b15c55edMaurice Lam assertThat(shadowActivity.getResultCode()).named("Result code") 9034a181aceb3e49397584c1f768a75593b15c55edMaurice Lam .isEqualTo(Activity.RESULT_CANCELED); 9134a181aceb3e49397584c1f768a75593b15c55edMaurice Lam } 9234a181aceb3e49397584c1f768a75593b15c55edMaurice Lam 9334a181aceb3e49397584c1f768a75593b15c55edMaurice Lam private ShadowKeyguardManager getShadowKeyguardManager() { 9434a181aceb3e49397584c1f768a75593b15c55edMaurice Lam return Shadows.shadowOf(application.getSystemService(KeyguardManager.class)); 9534a181aceb3e49397584c1f768a75593b15c55edMaurice Lam } 9634a181aceb3e49397584c1f768a75593b15c55edMaurice Lam} 97