• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package org.robolectric.integrationtests.axt;
2 
3 import static org.junit.Assert.fail;
4 
5 import androidx.biometric.BiometricPrompt;
6 import androidx.biometric.BiometricPrompt.PromptInfo;
7 import androidx.fragment.app.FragmentActivity;
8 import androidx.test.ext.junit.runners.AndroidJUnit4;
9 import java.security.NoSuchAlgorithmException;
10 import javax.crypto.Cipher;
11 import javax.crypto.NoSuchPaddingException;
12 import org.junit.Before;
13 import org.junit.Test;
14 import org.junit.runner.RunWith;
15 import org.robolectric.android.controller.ActivityController;
16 
17 /** Test intercepting classes not present in OpenJDK. */
18 @RunWith(AndroidJUnit4.class)
19 public class CryptoObjectTest {
20 
21   private FragmentActivity fragmentActivity;
22 
23   @Before
setUp()24   public void setUp() {
25     fragmentActivity =
26         ActivityController.of(new FragmentActivity()).create().resume().start().get();
27   }
28 
29   @Test
biometricPromptAuthenticateShouldNotCrashWithNoSuchMethodError()30   public void biometricPromptAuthenticateShouldNotCrashWithNoSuchMethodError()
31       throws NoSuchPaddingException, NoSuchAlgorithmException {
32     BiometricPrompt biometricPrompt =
33         new BiometricPrompt(
34             fragmentActivity, command -> {}, new BiometricPrompt.AuthenticationCallback() {});
35 
36     PromptInfo promptInfo =
37         new PromptInfo.Builder()
38             .setTitle("Set and not empty")
39             .setNegativeButtonText("Set and not empty")
40             .build();
41     try {
42       biometricPrompt.authenticate(
43           promptInfo, new BiometricPrompt.CryptoObject(Cipher.getInstance("RSA")));
44     } catch (NoSuchMethodError e) {
45       fail();
46     }
47   }
48 }
49