From 6608a785b170cad58abf1cf8d8f22bb11d81b695 Mon Sep 17 00:00:00 2001 From: Mohammed Rashidy Date: Mon, 6 Feb 2023 14:26:26 +0000 Subject: [PATCH] Add unit tests to ActivityInterceptorCallback Adding unit test to ActivityInterceptorCallback.ActivityInterceptResult and ActivityInterceptorCallback.ActivityInterceptorInfo. Bug: 264468632 Bug: 264468233 Bug: 264468636 Test: atest com.android.server.wm.ActivityInterceptorCallbackTest Change-Id: I57d6cad6ffaea59bd1db8469498e02a138412e44 --- .../wm/ActivityInterceptorCallbackTest.java | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 services/tests/wmtests/src/com/android/server/wm/ActivityInterceptorCallbackTest.java diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityInterceptorCallbackTest.java b/services/tests/wmtests/src/com/android/server/wm/ActivityInterceptorCallbackTest.java new file mode 100644 index 0000000000000..ff0591bb99e54 --- /dev/null +++ b/services/tests/wmtests/src/com/android/server/wm/ActivityInterceptorCallbackTest.java @@ -0,0 +1,96 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.server.wm; + +import static com.google.common.truth.Truth.assertThat; + +import android.app.ActivityOptions; +import android.content.Intent; +import android.content.pm.ActivityInfo; +import android.content.pm.ResolveInfo; +import android.platform.test.annotations.Presubmit; + +import androidx.test.filters.MediumTest; + +import org.junit.Test; + +@Presubmit +@MediumTest +public class ActivityInterceptorCallbackTest { + + @Test + public void testBuildActivityInterceptorCallback() { + int callingUid = 10; + int callingPid = 100; + int realCallingUid = 20; + int realCallingPid = 200; + int userId = 1; + Intent intent = new Intent(); + ResolveInfo resolveInfo = new ResolveInfo(); + ActivityInfo activityInfo = new ActivityInfo(); + String resolveType = "resolveType"; + String callingPackage = "callingPackage"; + String callingFeatureId = "callingFeatureId"; + ActivityOptions activityOptions = ActivityOptions.makeBasic(); + Runnable clearOptionsAnimation = () -> {}; + + ActivityInterceptorCallback.ActivityInterceptorInfo activityInterceptorInfo = + new ActivityInterceptorCallback.ActivityInterceptorInfo.Builder(callingUid, + callingPid, realCallingUid, realCallingPid, userId, intent, resolveInfo, + activityInfo) + .setResolvedType(resolveType) + .setCallingPackage(callingPackage) + .setCallingFeatureId(callingFeatureId) + .setCheckedOptions(activityOptions) + .setClearOptionsAnimationRunnable(clearOptionsAnimation) + .build(); + + assertThat(activityInterceptorInfo.getCallingUid()).isEqualTo(callingUid); + assertThat(activityInterceptorInfo.getCallingPid()).isEqualTo(callingPid); + assertThat(activityInterceptorInfo.getRealCallingUid()).isEqualTo(realCallingUid); + assertThat(activityInterceptorInfo.getRealCallingPid()).isEqualTo(realCallingPid); + assertThat(activityInterceptorInfo.getUserId()).isEqualTo(userId); + assertThat(activityInterceptorInfo.getIntent()).isEqualTo(intent); + assertThat(activityInterceptorInfo.getResolveInfo()).isEqualTo(resolveInfo); + assertThat(activityInterceptorInfo.getActivityInfo()).isEqualTo(activityInfo); + assertThat(activityInterceptorInfo.getResolvedType()).isEqualTo(resolveType); + assertThat(activityInterceptorInfo.getCallingPackage()).isEqualTo(callingPackage); + assertThat(activityInterceptorInfo.getCallingFeatureId()).isEqualTo(callingFeatureId); + assertThat(activityInterceptorInfo.getCheckedOptions()).isEqualTo(activityOptions); + assertThat(activityInterceptorInfo.getClearOptionsAnimationRunnable()) + .isEqualTo(clearOptionsAnimation); + } + + @Test + public void testActivityInterceptResult() { + Intent intent = new Intent(); + ActivityOptions activityOptions = ActivityOptions.makeBasic(); + boolean isActivityResolved = true; + + ActivityInterceptorCallback.ActivityInterceptResult result = + new ActivityInterceptorCallback.ActivityInterceptResult(intent, activityOptions); + assertThat(result.getIntent()).isEqualTo(intent); + assertThat(result.getActivityOptions()).isEqualTo(activityOptions); + assertThat(result.isActivityResolved()).isFalse(); + + result = new ActivityInterceptorCallback.ActivityInterceptResult( + intent, activityOptions, isActivityResolved); + assertThat(result.getIntent()).isEqualTo(intent); + assertThat(result.getActivityOptions()).isEqualTo(activityOptions); + assertThat(result.isActivityResolved()).isTrue(); + } +}