summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorTyler Gunn <tgunn@google.com>2019-05-08 13:38:16 -0700
committerTyler Gunn <tgunn@google.com>2019-05-10 14:46:16 -0700
commit2c90c974fcd216680f31bdfbeb7ff2bf4a6c9b93 (patch)
treee81666de77b48bbe13ee91dffd22bd180077209b /tests
parente8a85b76a057536c02aceae6b6c44f37e3602c00 (diff)
downloadandroid_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.java34
-rw-r--r--tests/src/com/android/server/telecom/tests/ParcelableCallUtilsTest.java26
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");