summaryrefslogtreecommitdiffstats
path: root/tests/src/com
diff options
context:
space:
mode:
authorHall Liu <hallliu@google.com>2021-02-04 13:11:04 -0800
committerHall Liu <hallliu@google.com>2021-02-08 17:57:49 -0800
commit2b4f7ed57a420c52f6c9ae01834cf2a54e945ded (patch)
treeffd96c3fe394d78a1389720bfd798340b3c48b01 /tests/src/com
parent96669b2b2b3b1f7ad35f021318d357dc75217d95 (diff)
downloadplatform_packages_services_Telecomm-2b4f7ed57a420c52f6c9ae01834cf2a54e945ded.tar.gz
platform_packages_services_Telecomm-2b4f7ed57a420c52f6c9ae01834cf2a54e945ded.tar.bz2
platform_packages_services_Telecomm-2b4f7ed57a420c52f6c9ae01834cf2a54e945ded.zip
Refactor CallScreeningService
Take the call response directly from the client app and do all logic Telecom-side. Also pipe through the response to the connection service. Bug: Bug: 179412110 Test: atest ConnectionServiceTest CallScreeningServiceTest Change-Id: Ia01fb6f491da9d0ebb227c02a2b4d031b88e6b86
Diffstat (limited to 'tests/src/com')
-rw-r--r--tests/src/com/android/server/telecom/tests/CallScreeningServiceFilterTest.java56
-rwxr-xr-xtests/src/com/android/server/telecom/tests/ConnectionServiceFixture.java4
2 files changed, 50 insertions, 10 deletions
diff --git a/tests/src/com/android/server/telecom/tests/CallScreeningServiceFilterTest.java b/tests/src/com/android/server/telecom/tests/CallScreeningServiceFilterTest.java
index c7b3a7eb5..68caf6776 100644
--- a/tests/src/com/android/server/telecom/tests/CallScreeningServiceFilterTest.java
+++ b/tests/src/com/android/server/telecom/tests/CallScreeningServiceFilterTest.java
@@ -93,6 +93,16 @@ public class CallScreeningServiceFilterTest extends TelecomTestCase {
.setShouldShowNotification(true)
.build();
+ private static final CallFilteringResult PASS_RESULT_WITH_NAME =
+ new CallFilteringResult.Builder()
+ .setShouldAllowCall(true)
+ .setShouldReject(false)
+ .setShouldAddToCallLog(true)
+ .setShouldShowNotification(true)
+ .setCallScreeningAppName(APP_NAME)
+ .setCallScreeningComponentName(COMPONENT_NAME.flattenToString())
+ .build();
+
@Override
@Before
public void setUp() throws Exception {
@@ -235,8 +245,14 @@ public class CallScreeningServiceFilterTest extends TelecomTestCase {
serviceConnection.onServiceConnected(COMPONENT_NAME, mBinder);
ICallScreeningAdapter csAdapter = getCallScreeningAdapter();
- csAdapter.allowCall(CALL_ID);
- assertEquals(PASS_RESULT,
+ CallScreeningService.CallResponse allowCallResponse =
+ new CallScreeningService.CallResponse.Builder()
+ .setDisallowCall(false)
+ .setRejectCall(false)
+ .setSilenceCall(false)
+ .build();
+ csAdapter.onScreeningResponse(CALL_ID, COMPONENT_NAME, allowCallResponse.toParcelable());
+ assertEquals(PASS_RESULT_WITH_NAME,
resultFuture.toCompletableFuture().get(
CallScreeningServiceFilter.CALL_SCREENING_FILTER_TIMEOUT,
TimeUnit.MILLISECONDS));
@@ -264,12 +280,16 @@ public class CallScreeningServiceFilterTest extends TelecomTestCase {
ServiceConnection serviceConnection = verifyBindingIntent();
serviceConnection.onServiceConnected(COMPONENT_NAME, mBinder);
+ CallScreeningService.CallResponse disallowCallResponse =
+ new CallScreeningService.CallResponse.Builder()
+ .setDisallowCall(true)
+ .setRejectCall(true)
+ .setSkipCallLog(false)
+ .setSkipNotification(false)
+ .build();
ICallScreeningAdapter csAdapter = getCallScreeningAdapter();
- csAdapter.disallowCall(CALL_ID,
- true, // shouldReject
- true, //shouldAddToCallLog
- true, // shouldShowNotification
- COMPONENT_NAME);
+ csAdapter.onScreeningResponse(CALL_ID, COMPONENT_NAME, disallowCallResponse.toParcelable());
+
assertEquals(expectedResult,
resultFuture.toCompletableFuture().get(
CallScreeningServiceFilter.CALL_SCREENING_FILTER_TIMEOUT,
@@ -286,6 +306,8 @@ public class CallScreeningServiceFilterTest extends TelecomTestCase {
.setShouldSilence(true)
.setShouldAddToCallLog(true)
.setShouldShowNotification(true)
+ .setCallScreeningAppName(APP_NAME)
+ .setCallScreeningComponentName(COMPONENT_NAME.flattenToString())
.build();
CallScreeningServiceFilter filter = new CallScreeningServiceFilter(mCall, PKG_NAME,
CallScreeningServiceFilter.PACKAGE_TYPE_CARRIER, mContext, mCallsManager,
@@ -296,7 +318,13 @@ public class CallScreeningServiceFilterTest extends TelecomTestCase {
serviceConnection.onServiceConnected(COMPONENT_NAME, mBinder);
ICallScreeningAdapter csAdapter = getCallScreeningAdapter();
- csAdapter.silenceCall(CALL_ID);
+ CallScreeningService.CallResponse silenceCallResponse =
+ new CallScreeningService.CallResponse.Builder()
+ .setDisallowCall(false)
+ .setRejectCall(false)
+ .setSilenceCall(true)
+ .build();
+ csAdapter.onScreeningResponse(CALL_ID, COMPONENT_NAME, silenceCallResponse.toParcelable());
assertEquals(expectedResult,
resultFuture.toCompletableFuture().get(
CallScreeningServiceFilter.CALL_SCREENING_FILTER_TIMEOUT,
@@ -314,6 +342,7 @@ public class CallScreeningServiceFilterTest extends TelecomTestCase {
.setShouldSilence(false)
.setShouldScreenViaAudio(true)
.setCallScreeningAppName(APP_NAME)
+ .setCallScreeningComponentName(COMPONENT_NAME.flattenToString())
.build();
CallScreeningServiceFilter filter = new CallScreeningServiceFilter(mCall, PKG_NAME,
CallScreeningServiceFilter.PACKAGE_TYPE_DEFAULT_DIALER, mContext, mCallsManager,
@@ -323,8 +352,17 @@ public class CallScreeningServiceFilterTest extends TelecomTestCase {
ServiceConnection serviceConnection = verifyBindingIntent();
serviceConnection.onServiceConnected(COMPONENT_NAME, mBinder);
+
+ CallScreeningService.CallResponse additionalScreeningResponse =
+ new CallScreeningService.CallResponse.Builder()
+ .setDisallowCall(false)
+ .setRejectCall(false)
+ .setSilenceCall(false)
+ .setShouldScreenCallViaAudioProcessing(true)
+ .build();
ICallScreeningAdapter csAdapter = getCallScreeningAdapter();
- csAdapter.screenCallFurther(CALL_ID);
+ csAdapter.onScreeningResponse(CALL_ID, COMPONENT_NAME,
+ additionalScreeningResponse.toParcelable());
assertEquals(expectedResult,
resultFuture.toCompletableFuture().get(
CallScreeningServiceFilter.CALL_SCREENING_FILTER_TIMEOUT,
diff --git a/tests/src/com/android/server/telecom/tests/ConnectionServiceFixture.java b/tests/src/com/android/server/telecom/tests/ConnectionServiceFixture.java
index efdb7421b..6736132ca 100755
--- a/tests/src/com/android/server/telecom/tests/ConnectionServiceFixture.java
+++ b/tests/src/com/android/server/telecom/tests/ConnectionServiceFixture.java
@@ -34,6 +34,7 @@ import android.os.IInterface;
import android.os.ParcelFileDescriptor;
import android.os.RemoteException;
import android.telecom.CallAudioState;
+import android.telecom.CallScreeningService;
import android.telecom.Conference;
import android.telecom.Connection;
import android.telecom.ConnectionRequest;
@@ -440,7 +441,8 @@ public class ConnectionServiceFixture implements TestFixture<IConnectionService>
@Override
public void onCallFilteringCompleted(String callId, boolean isBlocked, boolean isInContacts,
- Session.Info sessionInfo) { }
+ CallScreeningService.ParcelableCallResponse callScreeningResponse,
+ boolean isResponseFromSystemDialer, Session.Info sessionInfo) { }
}
FakeConnectionServiceDelegate mConnectionServiceDelegate;