diff options
author | Tyler Gunn <tgunn@google.com> | 2019-05-08 13:38:16 -0700 |
---|---|---|
committer | Tyler Gunn <tgunn@google.com> | 2019-05-10 14:46:16 -0700 |
commit | 2c90c974fcd216680f31bdfbeb7ff2bf4a6c9b93 (patch) | |
tree | e81666de77b48bbe13ee91dffd22bd180077209b /tests | |
parent | e8a85b76a057536c02aceae6b6c44f37e3602c00 (diff) | |
download | android_packages_services_Telecomm-2c90c974fcd216680f31bdfbeb7ff2bf4a6c9b93.tar.gz android_packages_services_Telecomm-2c90c974fcd216680f31bdfbeb7ff2bf4a6c9b93.tar.bz2 android_packages_services_Telecomm-2c90c974fcd216680f31bdfbeb7ff2bf4a6c9b93.zip |
Permit system dialer callscreeningservice to access sip invite.
Similar to how the system dialer can use Connection#EXTRA_SIP_INVITE,
adding the ability for the callscreeningservice which is implemented by
the system dialer to also access this extra key value.
Test: Added new unit tests
Bug: 132122961
Change-Id: I402c8c0bfd39322820c65787e24f2f6df842e7c7
Diffstat (limited to 'tests')
-rw-r--r-- | tests/src/com/android/server/telecom/tests/CallScreeningServiceFilterTest.java | 34 | ||||
-rw-r--r-- | tests/src/com/android/server/telecom/tests/ParcelableCallUtilsTest.java | 26 |
2 files changed, 48 insertions, 12 deletions
diff --git a/tests/src/com/android/server/telecom/tests/CallScreeningServiceFilterTest.java b/tests/src/com/android/server/telecom/tests/CallScreeningServiceFilterTest.java index bab80203..5b47fe94 100644 --- a/tests/src/com/android/server/telecom/tests/CallScreeningServiceFilterTest.java +++ b/tests/src/com/android/server/telecom/tests/CallScreeningServiceFilterTest.java @@ -25,7 +25,6 @@ import android.content.ServiceConnection; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.ServiceInfo; -import android.graphics.drawable.Icon; import android.os.IBinder; import android.os.PersistableBundle; import android.os.RemoteException; @@ -166,7 +165,8 @@ public class CallScreeningServiceFilterTest extends TelecomTestCase { @SmallTest @Test public void testNoPackageName() { - mFilter.startCallScreeningFilter(mCall, mCallback, null, null); + mFilter.startCallScreeningFilter(mCall, mCallback, null, null, + CallScreeningServiceFilter.CALL_SCREENING_FILTER_TYPE_USER_SELECTED); verify(mCallback).onCallScreeningFilterComplete(eq(mCall), eq(PASS_RESULT), eq(null)); } @@ -175,7 +175,8 @@ public class CallScreeningServiceFilterTest extends TelecomTestCase { public void testNoResolveEntries() { when(mPackageManager.queryIntentServicesAsUser(nullable(Intent.class), anyInt(), anyInt())) .thenReturn(Collections.emptyList()); - mFilter.startCallScreeningFilter(mCall, mCallback, PKG_NAME, APP_NAME); + mFilter.startCallScreeningFilter(mCall, mCallback, PKG_NAME, APP_NAME, + CallScreeningServiceFilter.CALL_SCREENING_FILTER_TYPE_USER_SELECTED); verify(mCallback).onCallScreeningFilterComplete(eq(mCall), eq(PASS_RESULT), eq(PKG_NAME)); } @@ -183,7 +184,8 @@ public class CallScreeningServiceFilterTest extends TelecomTestCase { @Test public void testBadResolveEntry() { mResolveInfo.serviceInfo = null; - mFilter.startCallScreeningFilter(mCall, mCallback, PKG_NAME, APP_NAME); + mFilter.startCallScreeningFilter(mCall, mCallback, PKG_NAME, APP_NAME, + CallScreeningServiceFilter.CALL_SCREENING_FILTER_TYPE_USER_SELECTED); verify(mCallback).onCallScreeningFilterComplete(eq(mCall), eq(PASS_RESULT), eq(PKG_NAME)); } @@ -191,7 +193,8 @@ public class CallScreeningServiceFilterTest extends TelecomTestCase { @Test public void testPermissionlessFilterService() { mResolveInfo.serviceInfo.permission = null; - mFilter.startCallScreeningFilter(mCall, mCallback, PKG_NAME, APP_NAME); + mFilter.startCallScreeningFilter(mCall, mCallback, PKG_NAME, APP_NAME, + CallScreeningServiceFilter.CALL_SCREENING_FILTER_TYPE_USER_SELECTED); verify(mCallback).onCallScreeningFilterComplete(eq(mCall), eq(PASS_RESULT), eq(PKG_NAME)); } @@ -200,7 +203,8 @@ public class CallScreeningServiceFilterTest extends TelecomTestCase { public void testContextFailToBind() { when(mContext.bindServiceAsUser(nullable(Intent.class), nullable(ServiceConnection.class), anyInt(), eq(UserHandle.CURRENT))).thenReturn(false); - mFilter.startCallScreeningFilter(mCall, mCallback, PKG_NAME, APP_NAME); + mFilter.startCallScreeningFilter(mCall, mCallback, PKG_NAME, APP_NAME, + CallScreeningServiceFilter.CALL_SCREENING_FILTER_TYPE_USER_SELECTED); verify(mCallback).onCallScreeningFilterComplete(eq(mCall), eq(PASS_RESULT), eq(PKG_NAME)); } @@ -209,7 +213,8 @@ public class CallScreeningServiceFilterTest extends TelecomTestCase { public void testExceptionInScreeningService() throws Exception { doThrow(new RemoteException()).when(mCallScreeningService).screenCall( nullable(ICallScreeningAdapter.class), nullable(ParcelableCall.class)); - mFilter.startCallScreeningFilter(mCall, mCallback, PKG_NAME, APP_NAME); + mFilter.startCallScreeningFilter(mCall, mCallback, PKG_NAME, APP_NAME, + CallScreeningServiceFilter.CALL_SCREENING_FILTER_TYPE_USER_SELECTED); ServiceConnection serviceConnection = verifyBindingIntent(); serviceConnection.onServiceConnected(COMPONENT_NAME, mBinder); verify(mCallback).onCallScreeningFilterComplete(eq(mCall), eq(PASS_RESULT), eq(PKG_NAME)); @@ -218,7 +223,8 @@ public class CallScreeningServiceFilterTest extends TelecomTestCase { @SmallTest @Test public void testAllowCall() throws Exception { - mFilter.startCallScreeningFilter(mCall, mCallback, PKG_NAME, APP_NAME); + mFilter.startCallScreeningFilter(mCall, mCallback, PKG_NAME, APP_NAME, + CallScreeningServiceFilter.CALL_SCREENING_FILTER_TYPE_USER_SELECTED); ServiceConnection serviceConnection = verifyBindingIntent(); serviceConnection.onServiceConnected(COMPONENT_NAME, mBinder); ICallScreeningAdapter csAdapter = getCallScreeningAdapter(); @@ -229,7 +235,8 @@ public class CallScreeningServiceFilterTest extends TelecomTestCase { @SmallTest @Test public void testSilenceCall() throws Exception { - mFilter.startCallScreeningFilter(mCall, mCallback, PKG_NAME, APP_NAME); + mFilter.startCallScreeningFilter(mCall, mCallback, PKG_NAME, APP_NAME, + CallScreeningServiceFilter.CALL_SCREENING_FILTER_TYPE_USER_SELECTED); ServiceConnection serviceConnection = verifyBindingIntent(); serviceConnection.onServiceConnected(COMPONENT_NAME, mBinder); ICallScreeningAdapter csAdapter = getCallScreeningAdapter(); @@ -249,7 +256,8 @@ public class CallScreeningServiceFilterTest extends TelecomTestCase { mFilter.startCallScreeningFilter(mCall, mCallback, CARRIER_DEFINED_CALL_SCREENING.getPackageName(), - CARRIER_DEFINED_CALL_SCREENING_APP_NAME); + CARRIER_DEFINED_CALL_SCREENING_APP_NAME, + CallScreeningServiceFilter.CALL_SCREENING_FILTER_TYPE_CARRIER); ServiceConnection serviceConnection = verifyBindingIntent(); serviceConnection.onServiceConnected(COMPONENT_NAME, mBinder); ICallScreeningAdapter csAdapter = getCallScreeningAdapter(); @@ -281,7 +289,8 @@ public class CallScreeningServiceFilterTest extends TelecomTestCase { mFilter.startCallScreeningFilter(mCall, mCallback, DEFAULT_DIALER_CALL_SCREENING.getPackageName(), - DEFAULT_DIALER_APP_NAME); + DEFAULT_DIALER_APP_NAME, + CallScreeningServiceFilter.CALL_SCREENING_FILTER_TYPE_DEFAULT_DIALER); ServiceConnection serviceConnection = verifyBindingIntent(); serviceConnection.onServiceConnected(COMPONENT_NAME, mBinder); ICallScreeningAdapter csAdapter = getCallScreeningAdapter(); @@ -313,7 +322,8 @@ public class CallScreeningServiceFilterTest extends TelecomTestCase { mFilter.startCallScreeningFilter(mCall, mCallback, USER_CHOSEN_CALL_SCREENING.getPackageName(), - USER_CHOSEN_CALL_SCREENING_APP_NAME); + USER_CHOSEN_CALL_SCREENING_APP_NAME, + CallScreeningServiceFilter.CALL_SCREENING_FILTER_TYPE_USER_SELECTED); ServiceConnection serviceConnection = verifyBindingIntent(); serviceConnection.onServiceConnected(COMPONENT_NAME, mBinder); ICallScreeningAdapter csAdapter = getCallScreeningAdapter(); diff --git a/tests/src/com/android/server/telecom/tests/ParcelableCallUtilsTest.java b/tests/src/com/android/server/telecom/tests/ParcelableCallUtilsTest.java index 753b6353..3f4a4cdd 100644 --- a/tests/src/com/android/server/telecom/tests/ParcelableCallUtilsTest.java +++ b/tests/src/com/android/server/telecom/tests/ParcelableCallUtilsTest.java @@ -112,6 +112,32 @@ public class ParcelableCallUtilsTest extends TelecomTestCase { assertTrue(parceledExtras.containsKey(Connection.EXTRA_CALL_SUBJECT)); } + @SmallTest + @Test + public void testParcelForSystemCallScreening() { + mCall.putExtras(Call.SOURCE_CONNECTION_SERVICE, getSomeExtras()); + ParcelableCall call = ParcelableCallUtils.toParcelableCallForScreening(mCall, + true /* isPartOfSystemDialer */); + + Bundle parceledExtras = call.getExtras(); + assertTrue(parceledExtras.containsKey(Connection.EXTRA_SIP_INVITE)); + assertFalse(parceledExtras.containsKey("SomeExtra")); + assertFalse(parceledExtras.containsKey(Connection.EXTRA_CALL_SUBJECT)); + } + + @SmallTest + @Test + public void testParcelForSystemNonSystemCallScreening() { + mCall.putExtras(Call.SOURCE_CONNECTION_SERVICE, getSomeExtras()); + ParcelableCall call = ParcelableCallUtils.toParcelableCallForScreening(mCall, + false /* isPartOfSystemDialer */); + + Bundle parceledExtras = call.getExtras(); + assertFalse(parceledExtras.containsKey(Connection.EXTRA_SIP_INVITE)); + assertFalse(parceledExtras.containsKey("SomeExtra")); + assertFalse(parceledExtras.containsKey(Connection.EXTRA_CALL_SUBJECT)); + } + private Bundle getSomeExtras() { Bundle extras = new Bundle(); extras.putString(Connection.EXTRA_SIP_INVITE, "scary data"); |