Add tests for PinResult APIs
Test: atest TelephonyManagerTest
Bug: 171884262
Change-Id: I1a0cc7b16b0b039bddc195e6af84c9608fbbfebf
diff --git a/tests/tests/telephony/current/src/android/telephony/cts/TelephonyManagerTest.java b/tests/tests/telephony/current/src/android/telephony/cts/TelephonyManagerTest.java
index 9e5929c..3f960ee 100644
--- a/tests/tests/telephony/current/src/android/telephony/cts/TelephonyManagerTest.java
+++ b/tests/tests/telephony/current/src/android/telephony/cts/TelephonyManagerTest.java
@@ -60,6 +60,7 @@
import android.telephony.ModemActivityInfo;
import android.telephony.NetworkRegistrationInfo;
import android.telephony.PhoneStateListener;
+import android.telephony.PinResult;
import android.telephony.PreciseCallState;
import android.telephony.RadioAccessFamily;
import android.telephony.ServiceState;
@@ -3127,6 +3128,45 @@
tm -> tm.setCdmaRoamingMode(cdmaSubscriptionMode));
}
+ @Test
+ public void testPinResult() {
+ if (!mPackageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY)) {
+ return;
+ }
+
+ final String pin = "fake_pin";
+ final String puk = "fake_puk";
+ final String newPin = "fake_new_pin";
+
+ boolean isEnabled = ShellIdentityUtils.invokeMethodWithShellPermissions(
+ mTelephonyManager, TelephonyManager::isIccLockEnabled);
+ PinResult result = ShellIdentityUtils.invokeMethodWithShellPermissions(
+ mTelephonyManager, (tm) -> tm.setIccLockEnabled(!isEnabled, pin));
+ assertTrue(result.getResult() == PinResult.PIN_RESULT_TYPE_INCORRECT
+ || result.getResult() == PinResult.PIN_RESULT_TYPE_FAILURE);
+ assertTrue(result.getAttemptsRemaining() >= 0);
+ assertEquals(isEnabled, ShellIdentityUtils.invokeMethodWithShellPermissions(
+ mTelephonyManager, TelephonyManager::isIccLockEnabled));
+
+ result = ShellIdentityUtils.invokeMethodWithShellPermissions(
+ mTelephonyManager, (tm) -> tm.changeIccLockPin(pin, newPin));
+ assertTrue(result.getResult() == PinResult.PIN_RESULT_TYPE_INCORRECT
+ || result.getResult() == PinResult.PIN_RESULT_TYPE_FAILURE);
+ assertTrue(result.getAttemptsRemaining() >= 0);
+
+ result = ShellIdentityUtils.invokeMethodWithShellPermissions(
+ mTelephonyManager, (tm) -> tm.supplyIccLockPin(pin));
+ assertTrue(result.getResult() == PinResult.PIN_RESULT_TYPE_INCORRECT
+ || result.getResult() == PinResult.PIN_RESULT_TYPE_FAILURE);
+ assertTrue(result.getAttemptsRemaining() >= 0);
+
+ result = ShellIdentityUtils.invokeMethodWithShellPermissions(
+ mTelephonyManager, (tm) -> tm.supplyIccLockPuk(puk, pin));
+ assertTrue(result.getResult() == PinResult.PIN_RESULT_TYPE_INCORRECT
+ || result.getResult() == PinResult.PIN_RESULT_TYPE_FAILURE);
+ assertTrue(result.getAttemptsRemaining() >= 0);
+ }
+
/**
* Validate Emergency Number address that only contains the dialable character.
*