Loading tests/telephonytests/src/com/android/internal/telephony/TelephonyPermissionsTest.java +46 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import static org.mockito.Mockito.when; import android.app.AppOpsManager; import android.content.Context; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.test.suitebuilder.annotation.SmallTest; Loading @@ -49,12 +50,17 @@ public class TelephonyPermissionsTest { @Mock private AppOpsManager mMockAppOps; @Mock private SubscriptionManager mMockSubscriptionMananger; @Mock private ITelephony mMockTelephony; @Before public void setUp() throws Exception { MockitoAnnotations.initMocks(this); when(mMockContext.getSystemService(Context.APP_OPS_SERVICE)).thenReturn(mMockAppOps); when(mMockContext.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE)).thenReturn( mMockSubscriptionMananger); when(mMockSubscriptionMananger.getActiveSubscriptionIdList()).thenReturn(new int[]{SUB_ID}); // By default, assume we have no permissions or app-ops bits. doThrow(new SecurityException()).when(mMockContext) Loading Loading @@ -112,6 +118,46 @@ public class TelephonyPermissionsTest { mMockContext, () -> mMockTelephony, SUB_ID, PID, UID, PACKAGE, MSG)); } @Test public void testCheckReadPhoneStateOnAnyActiveSub_noPermissions() { assertFalse(TelephonyPermissions.checkReadPhoneStateOnAnyActiveSub( mMockContext, () -> mMockTelephony, PID, UID, PACKAGE, MSG)); } @Test public void testCheckReadPhoneStateOnAnyActiveSub_hasPrivilegedPermission() { doNothing().when(mMockContext).enforcePermission( android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, PID, UID, MSG); assertTrue(TelephonyPermissions.checkReadPhoneStateOnAnyActiveSub( mMockContext, () -> mMockTelephony, PID, UID, PACKAGE, MSG)); } @Test public void testCheckReadPhoneStateOnAnyActiveSub_hasPermissionAndAppOp() { doNothing().when(mMockContext).enforcePermission( android.Manifest.permission.READ_PHONE_STATE, PID, UID, MSG); when(mMockAppOps.noteOp(AppOpsManager.OP_READ_PHONE_STATE, UID, PACKAGE)) .thenReturn(AppOpsManager.MODE_ALLOWED); assertTrue(TelephonyPermissions.checkReadPhoneStateOnAnyActiveSub( mMockContext, () -> mMockTelephony, PID, UID, PACKAGE, MSG)); } @Test public void testCheckReadPhoneStateOnAnyActiveSub_hasPermissionWithoutAppOp() { doNothing().when(mMockContext).enforcePermission( android.Manifest.permission.READ_PHONE_STATE, PID, UID, MSG); assertFalse(TelephonyPermissions.checkReadPhoneStateOnAnyActiveSub( mMockContext, () -> mMockTelephony, PID, UID, PACKAGE, MSG)); } @Test public void testCheckReadPhoneStateOnAnyActiveSub_hasCarrierPrivileges() throws Exception { when(mMockTelephony.getCarrierPrivilegeStatusForUid(eq(SUB_ID), eq(UID))) .thenReturn(TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS); assertTrue(TelephonyPermissions.checkReadPhoneStateOnAnyActiveSub( mMockContext, () -> mMockTelephony, PID, UID, PACKAGE, MSG)); } @Test public void testCheckReadPhoneNumber_noPermissions() { try { Loading tests/telephonytests/src/com/android/internal/telephony/TelephonyRegistryTest.java +3 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.when; import android.os.HandlerThread; import android.os.ServiceManager; Loading Loading @@ -124,6 +125,8 @@ public class TelephonyRegistryTest extends TelephonyTest { public void testActiveDataSubChanged() { // mTelephonyRegistry.listen with notifyNow = true should trigger callback immediately. setReady(false); int[] activeSubs = {0, 1, 2}; when(mSubscriptionManager.getActiveSubscriptionIdList()).thenReturn(activeSubs); int activeSubId = 0; mTelephonyRegistry.notifyActiveDataSubIdChanged(activeSubId); mTelephonyRegistry.listen(mContext.getOpPackageName(), Loading Loading
tests/telephonytests/src/com/android/internal/telephony/TelephonyPermissionsTest.java +46 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import static org.mockito.Mockito.when; import android.app.AppOpsManager; import android.content.Context; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.test.suitebuilder.annotation.SmallTest; Loading @@ -49,12 +50,17 @@ public class TelephonyPermissionsTest { @Mock private AppOpsManager mMockAppOps; @Mock private SubscriptionManager mMockSubscriptionMananger; @Mock private ITelephony mMockTelephony; @Before public void setUp() throws Exception { MockitoAnnotations.initMocks(this); when(mMockContext.getSystemService(Context.APP_OPS_SERVICE)).thenReturn(mMockAppOps); when(mMockContext.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE)).thenReturn( mMockSubscriptionMananger); when(mMockSubscriptionMananger.getActiveSubscriptionIdList()).thenReturn(new int[]{SUB_ID}); // By default, assume we have no permissions or app-ops bits. doThrow(new SecurityException()).when(mMockContext) Loading Loading @@ -112,6 +118,46 @@ public class TelephonyPermissionsTest { mMockContext, () -> mMockTelephony, SUB_ID, PID, UID, PACKAGE, MSG)); } @Test public void testCheckReadPhoneStateOnAnyActiveSub_noPermissions() { assertFalse(TelephonyPermissions.checkReadPhoneStateOnAnyActiveSub( mMockContext, () -> mMockTelephony, PID, UID, PACKAGE, MSG)); } @Test public void testCheckReadPhoneStateOnAnyActiveSub_hasPrivilegedPermission() { doNothing().when(mMockContext).enforcePermission( android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, PID, UID, MSG); assertTrue(TelephonyPermissions.checkReadPhoneStateOnAnyActiveSub( mMockContext, () -> mMockTelephony, PID, UID, PACKAGE, MSG)); } @Test public void testCheckReadPhoneStateOnAnyActiveSub_hasPermissionAndAppOp() { doNothing().when(mMockContext).enforcePermission( android.Manifest.permission.READ_PHONE_STATE, PID, UID, MSG); when(mMockAppOps.noteOp(AppOpsManager.OP_READ_PHONE_STATE, UID, PACKAGE)) .thenReturn(AppOpsManager.MODE_ALLOWED); assertTrue(TelephonyPermissions.checkReadPhoneStateOnAnyActiveSub( mMockContext, () -> mMockTelephony, PID, UID, PACKAGE, MSG)); } @Test public void testCheckReadPhoneStateOnAnyActiveSub_hasPermissionWithoutAppOp() { doNothing().when(mMockContext).enforcePermission( android.Manifest.permission.READ_PHONE_STATE, PID, UID, MSG); assertFalse(TelephonyPermissions.checkReadPhoneStateOnAnyActiveSub( mMockContext, () -> mMockTelephony, PID, UID, PACKAGE, MSG)); } @Test public void testCheckReadPhoneStateOnAnyActiveSub_hasCarrierPrivileges() throws Exception { when(mMockTelephony.getCarrierPrivilegeStatusForUid(eq(SUB_ID), eq(UID))) .thenReturn(TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS); assertTrue(TelephonyPermissions.checkReadPhoneStateOnAnyActiveSub( mMockContext, () -> mMockTelephony, PID, UID, PACKAGE, MSG)); } @Test public void testCheckReadPhoneNumber_noPermissions() { try { Loading
tests/telephonytests/src/com/android/internal/telephony/TelephonyRegistryTest.java +3 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.when; import android.os.HandlerThread; import android.os.ServiceManager; Loading Loading @@ -124,6 +125,8 @@ public class TelephonyRegistryTest extends TelephonyTest { public void testActiveDataSubChanged() { // mTelephonyRegistry.listen with notifyNow = true should trigger callback immediately. setReady(false); int[] activeSubs = {0, 1, 2}; when(mSubscriptionManager.getActiveSubscriptionIdList()).thenReturn(activeSubs); int activeSubId = 0; mTelephonyRegistry.notifyActiveDataSubIdChanged(activeSubId); mTelephonyRegistry.listen(mContext.getOpPackageName(), Loading