From 27ffd822b91c3aeadcc8e3b30420e190b3bdd09f Mon Sep 17 00:00:00 2001 From: Ben Gruver Date: Wed, 7 Mar 2018 13:24:18 -0800 Subject: [PATCH] Fix ActivityStartInterceptor tests This adds the SET_HARMFUL_APPS_WARNINGS permission required by interceptHarmfulAppIfNeeded, and mocks out the new PackageManager calls used by it Test: atest ActivityStartInterceptorTest Bug: 77607079 Change-Id: Iea9c183078261b03be984ba4e0fad271f1548945 Merged-In: Iea9c183078261b03be984ba4e0fad271f1548945 (cherry picked from commit eb8fd1c68220bf771167051108a4f89a0eccec40) --- .../com/android/server/am/ActivityStartInterceptor.java | 7 +++---- .../android/server/am/ActivityStartInterceptorTest.java | 8 ++++++++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/services/core/java/com/android/server/am/ActivityStartInterceptor.java b/services/core/java/com/android/server/am/ActivityStartInterceptor.java index 2ac389d7bf301..dd79e57352ea4 100644 --- a/services/core/java/com/android/server/am/ActivityStartInterceptor.java +++ b/services/core/java/com/android/server/am/ActivityStartInterceptor.java @@ -33,7 +33,6 @@ import static android.content.Intent.FLAG_ACTIVITY_TASK_ON_HOME; import static android.content.pm.ApplicationInfo.FLAG_SUSPENDED; import android.app.ActivityOptions; -import android.app.AppGlobals; import android.app.KeyguardManager; import android.app.admin.DevicePolicyManagerInternal; import android.content.Context; @@ -293,9 +292,9 @@ class ActivityStartInterceptor { private boolean interceptHarmfulAppIfNeeded() { CharSequence harmfulAppWarning; try { - harmfulAppWarning = AppGlobals.getPackageManager().getHarmfulAppWarning( - mAInfo.packageName, mUserId); - } catch (RemoteException e) { + harmfulAppWarning = mService.getPackageManager() + .getHarmfulAppWarning(mAInfo.packageName, mUserId); + } catch (RemoteException ex) { return false; } diff --git a/services/tests/servicestests/src/com/android/server/am/ActivityStartInterceptorTest.java b/services/tests/servicestests/src/com/android/server/am/ActivityStartInterceptorTest.java index f76eb5659a11a..2512c9db3c62b 100644 --- a/services/tests/servicestests/src/com/android/server/am/ActivityStartInterceptorTest.java +++ b/services/tests/servicestests/src/com/android/server/am/ActivityStartInterceptorTest.java @@ -38,6 +38,7 @@ import android.testing.DexmakerShareClassLoaderRule; import com.android.internal.app.UnlaunchableAppActivity; import com.android.server.LocalServices; +import com.android.server.pm.PackageManagerService; import org.junit.Before; import org.junit.Rule; @@ -84,6 +85,8 @@ public class ActivityStartInterceptorTest { private UserController mUserController; @Mock private KeyguardManager mKeyguardManager; + @Mock + private PackageManagerService mPackageManager; private ActivityStartInterceptor mInterceptor; private ActivityInfo mAInfo = new ActivityInfo(); @@ -114,6 +117,11 @@ public class ActivityStartInterceptorTest { nullable(CharSequence.class), nullable(CharSequence.class), eq(TEST_USER_ID))). thenReturn(CONFIRM_CREDENTIALS_INTENT); + // Mock PackageManager + when(mService.getPackageManager()).thenReturn(mPackageManager); + when(mPackageManager.getHarmfulAppWarning(TEST_PACKAGE_NAME, TEST_USER_ID)) + .thenReturn(null); + // Initialise activity info mAInfo.packageName = TEST_PACKAGE_NAME; mAInfo.applicationInfo = new ApplicationInfo();