diff options
5 files changed, 77 insertions, 1385 deletions
diff --git a/services/backup/java/com/android/server/backup/utils/AppBackupUtils.java b/services/backup/java/com/android/server/backup/utils/AppBackupUtils.java index 593bb2c41587..35dfccf32924 100644 --- a/services/backup/java/com/android/server/backup/utils/AppBackupUtils.java +++ b/services/backup/java/com/android/server/backup/utils/AppBackupUtils.java @@ -23,22 +23,20 @@ import static com.android.server.backup.UserBackupManagerService.SHARED_BACKUP_A import static com.android.server.pm.PackageManagerService.PLATFORM_PACKAGE_NAME; import android.annotation.Nullable; -import android.app.AppGlobals; import android.app.backup.BackupTransport; import android.content.pm.ApplicationInfo; -import android.content.pm.IPackageManager; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManagerInternal; import android.content.pm.Signature; import android.content.pm.SigningInfo; -import android.os.RemoteException; import android.os.UserHandle; import android.util.Slog; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.backup.IBackupTransport; import com.android.internal.util.ArrayUtils; +import com.android.server.LocalServices; import com.android.server.backup.transport.TransportClient; import com.google.android.collect.Sets; @@ -67,12 +65,13 @@ public class AppBackupUtils { * </ol> */ public static boolean appIsEligibleForBackup(ApplicationInfo app, int userId) { - return appIsEligibleForBackup(app, AppGlobals.getPackageManager(), userId); + return appIsEligibleForBackup( + app, LocalServices.getService(PackageManagerInternal.class), userId); } @VisibleForTesting - static boolean appIsEligibleForBackup(ApplicationInfo app, - IPackageManager packageManager, int userId) { + static boolean appIsEligibleForBackup( + ApplicationInfo app, PackageManagerInternal packageManager, int userId) { // 1. their manifest states android:allowBackup="false" if ((app.flags & ApplicationInfo.FLAG_ALLOW_BACKUP) == 0) { return false; @@ -108,9 +107,9 @@ public class AppBackupUtils { /** * Returns whether an app is eligible for backup at runtime. That is, the app has to: * <ol> - * <li>Return true for {@link #appIsEligibleForBackup(ApplicationInfo, PackageManager)} + * <li>Return true for {@link #appIsEligibleForBackup(ApplicationInfo, int)} * <li>Return false for {@link #appIsStopped(ApplicationInfo)} - * <li>Return false for {@link #appIsDisabled(ApplicationInfo, PackageManager)} + * <li>Return false for {@link #appIsDisabled(ApplicationInfo, int)} * <li>Be eligible for the transport via * {@link BackupTransport#isAppEligibleForBackup(PackageInfo, boolean)} * </ol> @@ -149,19 +148,13 @@ public class AppBackupUtils { /** Avoid backups of 'disabled' apps. */ static boolean appIsDisabled(ApplicationInfo app, int userId) { - return appIsDisabled(app, AppGlobals.getPackageManager(), userId); + return appIsDisabled(app, LocalServices.getService(PackageManagerInternal.class), userId); } @VisibleForTesting - static boolean appIsDisabled(ApplicationInfo app, - IPackageManager packageManager, int userId) { - int enabledSetting; - try { - enabledSetting = packageManager.getApplicationEnabledSetting(app.packageName, userId); - } catch (RemoteException e) { - Slog.e(TAG, "Failed to get application enabled setting: " + e); - return false; - } + static boolean appIsDisabled( + ApplicationInfo app, PackageManagerInternal packageManager, int userId) { + int enabledSetting = packageManager.getApplicationEnabledState(app.packageName, userId); switch (enabledSetting) { case PackageManager.COMPONENT_ENABLED_STATE_DISABLED: diff --git a/services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java b/services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java index 164570a84cb0..cc64323e51c7 100644 --- a/services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java +++ b/services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java @@ -86,6 +86,7 @@ import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; +import android.content.pm.PackageManagerInternal; import android.net.Uri; import android.os.ConditionVariable; import android.os.DeadObjectException; @@ -100,6 +101,7 @@ import android.util.Pair; import com.android.internal.backup.IBackupTransport; import com.android.server.EventLogTags; +import com.android.server.LocalServices; import com.android.server.backup.BackupRestoreTask; import com.android.server.backup.DataChangedJournal; import com.android.server.backup.KeyValueBackupJob; @@ -116,7 +118,6 @@ import com.android.server.backup.testing.TransportTestUtils; import com.android.server.backup.testing.TransportTestUtils.TransportMock; import com.android.server.testing.shadows.FrameworkShadowLooper; import com.android.server.testing.shadows.ShadowApplicationPackageManager; -import com.android.server.testing.shadows.ShadowBackupActivityThread; import com.android.server.testing.shadows.ShadowBackupDataInput; import com.android.server.testing.shadows.ShadowBackupDataOutput; import com.android.server.testing.shadows.ShadowEventLog; @@ -163,8 +164,7 @@ import java.util.stream.Stream; ShadowBackupDataInput.class, ShadowBackupDataOutput.class, ShadowEventLog.class, - ShadowQueuedWork.class, - ShadowBackupActivityThread.class, + ShadowQueuedWork.class }) @Presubmit public class KeyValueBackupTaskTest { @@ -179,6 +179,7 @@ public class KeyValueBackupTaskTest { @Mock private IBackupObserver mObserver; @Mock private IBackupManagerMonitor mMonitor; @Mock private OnTaskFinishedListener mListener; + @Mock private PackageManagerInternal mPackageManagerInternal; private UserBackupManagerService mBackupManagerService; private TransportData mTransport; private ShadowLooper mShadowBackupLooper; @@ -243,6 +244,11 @@ public class KeyValueBackupTaskTest { mShadowBackupLooper = shadowOf(mBackupHandler.getLooper()); ShadowEventLog.setUp(); mReporter = spy(new KeyValueBackupReporter(mBackupManagerService, mObserver, mMonitor)); + + when(mPackageManagerInternal.getApplicationEnabledState(any(), anyInt())) + .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_ENABLED); + LocalServices.removeServiceForTest(PackageManagerInternal.class); + LocalServices.addService(PackageManagerInternal.class, mPackageManagerInternal); } @After @@ -471,7 +477,7 @@ public class KeyValueBackupTaskTest { TransportMock transportMock = setUpInitializedTransport(mTransport); setUpAgentWithData(PACKAGE_1); BackupAgent pmAgent = spy(createPmAgent()); - when(mBackupManagerService.makeMetadataAgent()).thenReturn(forward(pmAgent)); + doReturn(forward(pmAgent)).when(mBackupManagerService).makeMetadataAgent(); KeyValueBackupTask task = createKeyValueBackupTask(transportMock, true, PACKAGE_1); runTask(task); @@ -484,7 +490,7 @@ public class KeyValueBackupTaskTest { TransportMock transportMock = setUpInitializedTransport(mTransport); setUpAgentWithData(PACKAGE_1); BackupAgent pmAgent = spy(createPmAgent()); - when(mBackupManagerService.makeMetadataAgent()).thenReturn(forward(pmAgent)); + doReturn(forward(pmAgent)).when(mBackupManagerService).makeMetadataAgent(); KeyValueBackupTask task = createKeyValueBackupTask(transportMock, true, PACKAGE_1, PM_PACKAGE); @@ -498,7 +504,7 @@ public class KeyValueBackupTaskTest { TransportMock transportMock = setUpInitializedTransport(mTransport); setUpAgentWithData(PACKAGE_1); BackupAgent pmAgent = spy(createPmAgent()); - when(mBackupManagerService.makeMetadataAgent()).thenReturn(forward(pmAgent)); + doReturn(forward(pmAgent)).when(mBackupManagerService).makeMetadataAgent(); KeyValueBackupTask task = createKeyValueBackupTask(transportMock, false, PACKAGE_1); runTask(task); @@ -1307,7 +1313,7 @@ public class KeyValueBackupTaskTest { argThat(packageInfo(PM_PACKAGE)), any(), anyInt())) .then(copyBackupDataTo(backupDataPath)); BackupAgent pmAgent = spy(createPmAgent()); - when(mBackupManagerService.makeMetadataAgent()).thenReturn(forward(pmAgent)); + doReturn(forward(pmAgent)).when(mBackupManagerService).makeMetadataAgent(); agentOnBackupDo( pmAgent, (oldState, dataOutput, newState) -> { @@ -1371,7 +1377,7 @@ public class KeyValueBackupTaskTest { setUpAgent(PACKAGE_1); when(transportMock.transport.finishBackup()).thenReturn(BackupTransport.TRANSPORT_OK); BackupAgent pmAgent = spy(createPmAgent()); - when(mBackupManagerService.makeMetadataAgent()).thenReturn(forward(pmAgent)); + doReturn(forward(pmAgent)).when(mBackupManagerService).makeMetadataAgent(); agentOnBackupDo( pmAgent, (oldState, dataOutput, newState) -> { @@ -1395,7 +1401,7 @@ public class KeyValueBackupTaskTest { setUpAgent(PACKAGE_1); when(transportMock.transport.finishBackup()).thenReturn(BackupTransport.TRANSPORT_OK); BackupAgent pmAgent = spy(createPmAgent()); - when(mBackupManagerService.makeMetadataAgent()).thenReturn(forward(pmAgent)); + doReturn(forward(pmAgent)).when(mBackupManagerService).makeMetadataAgent(); agentOnBackupDo( pmAgent, (oldState, dataOutput, newState) -> { @@ -1957,7 +1963,7 @@ public class KeyValueBackupTaskTest { TransportMock transportMock = setUpInitializedTransport(mTransport); setUpAgent(PACKAGE_1); BackupAgent pmAgent = createThrowingPmAgent(new RuntimeException()); - when(mBackupManagerService.makeMetadataAgent()).thenReturn(pmAgent); + doReturn(pmAgent).when(mBackupManagerService).makeMetadataAgent(); KeyValueBackupTask task = createKeyValueBackupTask(transportMock, PACKAGE_1); runTask(task); @@ -1970,7 +1976,7 @@ public class KeyValueBackupTaskTest { TransportMock transportMock = setUpInitializedTransport(mTransport); setUpAgent(PACKAGE_1); BackupAgent pmAgent = createThrowingPmAgent(new RuntimeException()); - when(mBackupManagerService.makeMetadataAgent()).thenReturn(pmAgent); + doReturn(pmAgent).when(mBackupManagerService).makeMetadataAgent(); KeyValueBackupTask task = createKeyValueBackupTask(transportMock, PACKAGE_1); runTask(task); @@ -1983,7 +1989,7 @@ public class KeyValueBackupTaskTest { TransportMock transportMock = setUpInitializedTransport(mTransport); setUpAgent(PACKAGE_1); BackupAgent pmAgent = createThrowingPmAgent(new RuntimeException()); - when(mBackupManagerService.makeMetadataAgent()).thenReturn(pmAgent); + doReturn(pmAgent).when(mBackupManagerService).makeMetadataAgent(); KeyValueBackupTask task = createKeyValueBackupTask(transportMock, PACKAGE_1); runTask(task); @@ -1996,7 +2002,7 @@ public class KeyValueBackupTaskTest { TransportMock transportMock = setUpInitializedTransport(mTransport); setUpAgent(PACKAGE_1); BackupAgent pmAgent = spy(createPmAgent()); - when(mBackupManagerService.makeMetadataAgent()).thenReturn(forward(pmAgent)); + doReturn(forward(pmAgent)).when(mBackupManagerService).makeMetadataAgent(); KeyValueBackupTask task = createKeyValueBackupTask(transportMock, PACKAGE_1); agentOnBackupDo( pmAgent, (oldState, dataOutput, newState) -> runInWorkerThread(task::markCancel)); @@ -2011,7 +2017,7 @@ public class KeyValueBackupTaskTest { TransportMock transportMock = setUpInitializedTransport(mTransport); setUpAgent(PACKAGE_1); BackupAgent pmAgent = spy(createPmAgent()); - when(mBackupManagerService.makeMetadataAgent()).thenReturn(forward(pmAgent)); + doReturn(forward(pmAgent)).when(mBackupManagerService).makeMetadataAgent(); KeyValueBackupTask task = createKeyValueBackupTask(transportMock, PACKAGE_1); agentOnBackupDo( pmAgent, (oldState, dataOutput, newState) -> runInWorkerThread(task::markCancel)); diff --git a/services/robotests/src/com/android/server/testing/shadows/ShadowBackupActivityThread.java b/services/robotests/src/com/android/server/testing/shadows/ShadowBackupActivityThread.java deleted file mode 100644 index ca2e3b6dafef..000000000000 --- a/services/robotests/src/com/android/server/testing/shadows/ShadowBackupActivityThread.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (C) 2019 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.testing.shadows; - -import android.app.ActivityThread; -import android.content.pm.ApplicationInfo; -import android.content.pm.IPackageManager; -import android.content.pm.PackageManager; -import android.os.RemoteException; - -import org.robolectric.RuntimeEnvironment; -import org.robolectric.annotation.Implementation; -import org.robolectric.annotation.Implements; -import org.robolectric.shadows.ShadowActivityThread; - -import java.lang.reflect.InvocationHandler; -import java.lang.reflect.Method; -import java.lang.reflect.Proxy; - -import javax.annotation.Nonnull; - -/** - * Extends the existing {@link ShadowActivityThread} to add support for - * {@link PackageManager#getApplicationEnabledSetting(String)} in the shadow {@link PackageManager} - * returned by {@link ShadowBackupActivityThread#getPackageManager()}. - */ -@Implements(value = ActivityThread.class, isInAndroidSdk = false, looseSignatures = true) -public class ShadowBackupActivityThread extends ShadowActivityThread { - @Implementation - public static Object getPackageManager() { - ClassLoader classLoader = ShadowActivityThread.class.getClassLoader(); - Class<?> iPackageManagerClass; - try { - iPackageManagerClass = classLoader.loadClass("android.content.pm.IPackageManager"); - } catch (ClassNotFoundException e) { - throw new RuntimeException(e); - } - - return Proxy.newProxyInstance( - classLoader, - new Class[] {iPackageManagerClass}, - new InvocationHandler() { - @Override - public Object invoke(Object proxy, @Nonnull Method method, Object[] args) - throws Exception { - if (method.getName().equals("getApplicationInfo")) { - String packageName = (String) args[0]; - int flags = (Integer) args[1]; - - try { - return RuntimeEnvironment.application - .getPackageManager() - .getApplicationInfo(packageName, flags); - } catch (PackageManager.NameNotFoundException e) { - throw new RemoteException(e.getMessage()); - } - } else if (method.getName().equals("getApplicationEnabledSetting")) { - return 0; - } else { - return null; - } - } - }); - } -} diff --git a/services/tests/servicestests/src/com/android/server/backup/testutils/IPackageManagerStub.java b/services/tests/servicestests/src/com/android/server/backup/testutils/IPackageManagerStub.java deleted file mode 100644 index 97a6e6657b7a..000000000000 --- a/services/tests/servicestests/src/com/android/server/backup/testutils/IPackageManagerStub.java +++ /dev/null @@ -1,1217 +0,0 @@ -/* - * Copyright (C) 2019 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.backup.testutils; - -import android.content.ComponentName; -import android.content.Intent; -import android.content.IntentFilter; -import android.content.IntentSender; -import android.content.pm.ActivityInfo; -import android.content.pm.ApplicationInfo; -import android.content.pm.ChangedPackages; -import android.content.pm.IDexModuleRegisterCallback; -import android.content.pm.IOnPermissionsChangeListener; -import android.content.pm.IPackageDataObserver; -import android.content.pm.IPackageDeleteObserver; -import android.content.pm.IPackageDeleteObserver2; -import android.content.pm.IPackageInstaller; -import android.content.pm.IPackageManager; -import android.content.pm.IPackageMoveObserver; -import android.content.pm.IPackageStatsObserver; -import android.content.pm.InstrumentationInfo; -import android.content.pm.KeySet; -import android.content.pm.ModuleInfo; -import android.content.pm.PackageInfo; -import android.content.pm.PackageManager; -import android.content.pm.ParceledListSlice; -import android.content.pm.PermissionGroupInfo; -import android.content.pm.PermissionInfo; -import android.content.pm.ProviderInfo; -import android.content.pm.ResolveInfo; -import android.content.pm.ServiceInfo; -import android.content.pm.SuspendDialogInfo; -import android.content.pm.VerifierDeviceIdentity; -import android.content.pm.VersionedPackage; -import android.content.pm.dex.IArtManager; -import android.graphics.Bitmap; -import android.os.IBinder; -import android.os.PersistableBundle; -import android.os.RemoteException; - -import java.util.List; - -/** - * Stub for IPackageManager to use in tests. - */ -public class IPackageManagerStub implements IPackageManager { - public static PackageInfo sPackageInfo; - public static int sApplicationEnabledSetting = PackageManager.COMPONENT_ENABLED_STATE_DEFAULT; - - @Override - public PackageInfo getPackageInfo(String packageName, int flags, int userId) - throws RemoteException { - return sPackageInfo; - } - - @Override - public int getApplicationEnabledSetting(String packageName, int userId) throws RemoteException { - return sApplicationEnabledSetting; - } - - @Override - public void checkPackageStartable(String packageName, int userId) throws RemoteException { - - } - - @Override - public boolean isPackageAvailable(String packageName, int userId) throws RemoteException { - return false; - } - - @Override - public PackageInfo getPackageInfoVersioned(VersionedPackage versionedPackage, int flags, - int userId) throws RemoteException { - return null; - } - - @Override - public int getPackageUid(String packageName, int flags, int userId) throws RemoteException { - return 0; - } - - @Override - public int[] getPackageGids(String packageName, int flags, int userId) throws RemoteException { - return new int[0]; - } - - @Override - public String[] currentToCanonicalPackageNames(String[] names) throws RemoteException { - return new String[0]; - } - - @Override - public String[] canonicalToCurrentPackageNames(String[] names) throws RemoteException { - return new String[0]; - } - - @Override - public PermissionInfo getPermissionInfo(String name, String packageName, int flags) - throws RemoteException { - return null; - } - - @Override - public ParceledListSlice queryPermissionsByGroup(String group, int flags) - throws RemoteException { - return null; - } - - @Override - public PermissionGroupInfo getPermissionGroupInfo(String name, int flags) - throws RemoteException { - return null; - } - - @Override - public ParceledListSlice getAllPermissionGroups(int flags) throws RemoteException { - return null; - } - - @Override - public ApplicationInfo getApplicationInfo(String packageName, int flags, int userId) - throws RemoteException { - return null; - } - - @Override - public ActivityInfo getActivityInfo(ComponentName className, int flags, int userId) - throws RemoteException { - return null; - } - - @Override - public boolean activitySupportsIntent(ComponentName className, Intent intent, - String resolvedType) - throws RemoteException { - return false; - } - - @Override - public ActivityInfo getReceiverInfo(ComponentName className, int flags, int userId) - throws RemoteException { - return null; - } - - @Override - public ServiceInfo getServiceInfo(ComponentName className, int flags, int userId) - throws RemoteException { - return null; - } - - @Override - public ProviderInfo getProviderInfo(ComponentName className, int flags, int userId) - throws RemoteException { - return null; - } - - @Override - public int checkPermission(String permName, String pkgName, int userId) throws RemoteException { - return 0; - } - - @Override - public int checkUidPermission(String permName, int uid) throws RemoteException { - return 0; - } - - @Override - public boolean addPermission(PermissionInfo info) throws RemoteException { - return false; - } - - @Override - public void removePermission(String name) throws RemoteException { - - } - - @Override - public void grantRuntimePermission(String packageName, String permissionName, int userId) - throws RemoteException { - - } - - @Override - public void revokeRuntimePermission(String packageName, String permissionName, int userId) - throws RemoteException { - - } - - @Override - public void resetRuntimePermissions() throws RemoteException { - - } - - @Override - public int getPermissionFlags(String permissionName, String packageName, int userId) - throws RemoteException { - return 0; - } - - @Override - public void updatePermissionFlags(String permissionName, String packageName, int flagMask, - int flagValues, boolean checkAdjustPolicyFlagPermission, int userId) - throws RemoteException { - - } - - @Override - public void updatePermissionFlagsForAllApps(int flagMask, int flagValues, int userId) - throws RemoteException { - - } - - @Override - public List<String> getWhitelistedRestrictedPermissions(String packageName, int flags, - int userId) throws RemoteException { - return null; - } - - @Override - public boolean addWhitelistedRestrictedPermission(String packageName, String permission, - int whitelistFlags, int userId) throws RemoteException { - return false; - } - - @Override - public boolean removeWhitelistedRestrictedPermission(String packageName, String permission, - int whitelistFlags, int userId) throws RemoteException { - return false; - } - - @Override - public boolean shouldShowRequestPermissionRationale(String permissionName, String packageName, - int userId) throws RemoteException { - return false; - } - - @Override - public boolean isProtectedBroadcast(String actionName) throws RemoteException { - return false; - } - - @Override - public int checkSignatures(String pkg1, String pkg2) throws RemoteException { - return 0; - } - - @Override - public int checkUidSignatures(int uid1, int uid2) throws RemoteException { - return 0; - } - - @Override - public List<String> getAllPackages() throws RemoteException { - return null; - } - - @Override - public String[] getPackagesForUid(int uid) throws RemoteException { - return new String[0]; - } - - @Override - public String getNameForUid(int uid) throws RemoteException { - return null; - } - - @Override - public String[] getNamesForUids(int[] uids) throws RemoteException { - return new String[0]; - } - - @Override - public int getUidForSharedUser(String sharedUserName) throws RemoteException { - return 0; - } - - @Override - public int getFlagsForUid(int uid) throws RemoteException { - return 0; - } - - @Override - public int getPrivateFlagsForUid(int uid) throws RemoteException { - return 0; - } - - @Override - public boolean isUidPrivileged(int uid) throws RemoteException { - return false; - } - - @Override - public String[] getAppOpPermissionPackages(String permissionName) throws RemoteException { - return new String[0]; - } - - @Override - public ResolveInfo resolveIntent(Intent intent, String resolvedType, int flags, int userId) - throws RemoteException { - return null; - } - - @Override - public ResolveInfo findPersistentPreferredActivity(Intent intent, int userId) - throws RemoteException { - return null; - } - - @Override - public boolean canForwardTo(Intent intent, String resolvedType, int sourceUserId, - int targetUserId) throws RemoteException { - return false; - } - - @Override - public ParceledListSlice queryIntentActivities(Intent intent, String resolvedType, int flags, - int userId) throws RemoteException { - return null; - } - - @Override - public ParceledListSlice queryIntentActivityOptions(ComponentName caller, Intent[] specifics, - String[] specificTypes, Intent intent, String resolvedType, int flags, int userId) - throws RemoteException { - return null; - } - - @Override - public ParceledListSlice queryIntentReceivers(Intent intent, String resolvedType, int flags, - int userId) throws RemoteException { - return null; - } - - @Override - public ResolveInfo resolveService(Intent intent, String resolvedType, int flags, int userId) - throws RemoteException { - return null; - } - - @Override - public ParceledListSlice queryIntentServices(Intent intent, String resolvedType, int flags, - int userId) throws RemoteException { - return null; - } - - @Override - public ParceledListSlice queryIntentContentProviders(Intent intent, String resolvedType, - int flags, int userId) throws RemoteException { - return null; - } - - @Override - public ParceledListSlice getInstalledPackages(int flags, int userId) throws RemoteException { - return null; - } - - @Override - public ParceledListSlice getPackagesHoldingPermissions(String[] permissions, int flags, - int userId) throws RemoteException { - return null; - } - - @Override - public ParceledListSlice getInstalledApplications(int flags, int userId) - throws RemoteException { - return null; - } - - @Override - public ParceledListSlice getPersistentApplications(int flags) throws RemoteException { - return null; - } - - @Override - public ProviderInfo resolveContentProvider(String name, int flags, int userId) - throws RemoteException { - return null; - } - - @Override - public void querySyncProviders(List<String> outNames, List<ProviderInfo> outInfo) - throws RemoteException { - - } - - @Override - public ParceledListSlice queryContentProviders(String processName, int uid, int flags, - String metaDataKey) throws RemoteException { - return null; - } - - @Override - public InstrumentationInfo getInstrumentationInfo(ComponentName className, int flags) - throws RemoteException { - return null; - } - - @Override - public ParceledListSlice queryInstrumentation(String targetPackage, int flags) - throws RemoteException { - return null; - } - - @Override - public void finishPackageInstall(int token, boolean didLaunch) throws RemoteException { - - } - - @Override - public void setInstallerPackageName(String targetPackage, String installerPackageName) - throws RemoteException { - - } - - @Override - public void setApplicationCategoryHint(String packageName, int categoryHint, - String callerPackageName) throws RemoteException { - - } - - @Override - public void deletePackageAsUser(String packageName, int versionCode, - IPackageDeleteObserver observer, int userId, int flags) throws RemoteException { - - } - - @Override - public void deletePackageVersioned(VersionedPackage versionedPackage, - IPackageDeleteObserver2 observer, int userId, int flags) throws RemoteException { - - } - - @Override - public String getInstallerPackageName(String packageName) throws RemoteException { - return null; - } - - @Override - public void resetApplicationPreferences(int userId) throws RemoteException { - - } - - @Override - public ResolveInfo getLastChosenActivity(Intent intent, String resolvedType, int flags) - throws RemoteException { - return null; - } - - @Override - public void setLastChosenActivity(Intent intent, String resolvedType, int flags, - IntentFilter filter, int match, ComponentName activity) throws RemoteException { - - } - - @Override - public void addPreferredActivity(IntentFilter filter, int match, ComponentName[] set, - ComponentName activity, int userId) throws RemoteException { - - } - - @Override - public void replacePreferredActivity(IntentFilter filter, int match, ComponentName[] set, - ComponentName activity, int userId) throws RemoteException { - - } - - @Override - public void clearPackagePreferredActivities(String packageName) throws RemoteException { - - } - - @Override - public int getPreferredActivities(List<IntentFilter> outFilters, - List<ComponentName> outActivities, String packageName) throws RemoteException { - return 0; - } - - @Override - public void addPersistentPreferredActivity(IntentFilter filter, ComponentName activity, - int userId) throws RemoteException { - - } - - @Override - public void clearPackagePersistentPreferredActivities(String packageName, int userId) - throws RemoteException { - - } - - @Override - public void addCrossProfileIntentFilter(IntentFilter intentFilter, String ownerPackage, - int sourceUserId, int targetUserId, int flags) throws RemoteException { - - } - - @Override - public void clearCrossProfileIntentFilters(int sourceUserId, String ownerPackage) - throws RemoteException { - - } - - @Override - public String[] setDistractingPackageRestrictionsAsUser(String[] packageNames, - int restrictionFlags, int userId) throws RemoteException { - return new String[0]; - } - - @Override - public String[] setPackagesSuspendedAsUser(String[] packageNames, boolean suspended, - PersistableBundle appExtras, PersistableBundle launcherExtras, SuspendDialogInfo dialogInfo, - String callingPackage, int userId) throws RemoteException { - return new String[0]; - } - - @Override - public String[] getUnsuspendablePackagesForUser(String[] packageNames, int userId) - throws RemoteException { - return new String[0]; - } - - @Override - public boolean isPackageSuspendedForUser(String packageName, int userId) - throws RemoteException { - return false; - } - - @Override - public PersistableBundle getSuspendedPackageAppExtras(String packageName, int userId) - throws RemoteException { - return null; - } - - @Override - public byte[] getPreferredActivityBackup(int userId) throws RemoteException { - return new byte[0]; - } - - @Override - public void restorePreferredActivities(byte[] backup, int userId) throws RemoteException { - - } - - @Override - public byte[] getDefaultAppsBackup(int userId) throws RemoteException { - return new byte[0]; - } - - @Override - public void restoreDefaultApps(byte[] backup, int userId) throws RemoteException { - - } - - @Override - public byte[] getIntentFilterVerificationBackup(int userId) throws RemoteException { - return new byte[0]; - } - - @Override - public void restoreIntentFilterVerification(byte[] backup, int userId) throws RemoteException { - - } - - @Override - public ComponentName getHomeActivities(List<ResolveInfo> outHomeCandidates) - throws RemoteException { - return null; - } - - @Override - public void setHomeActivity(ComponentName className, int userId) throws RemoteException { - - } - - @Override - public void setComponentEnabledSetting(ComponentName componentName, int newState, int flags, - int userId) throws RemoteException { - - } - - @Override - public int getComponentEnabledSetting(ComponentName componentName, int userId) - throws RemoteException { - return 0; - } - - @Override - public void setApplicationEnabledSetting(String packageName, int newState, int flags, - int userId, - String callingPackage) throws RemoteException { - - } - - @Override - public void logAppProcessStartIfNeeded(String processName, int uid, String seinfo, - String apkFile, - int pid) throws RemoteException { - - } - - @Override - public void flushPackageRestrictionsAsUser(int userId) throws RemoteException { - - } - - @Override - public void setPackageStoppedState(String packageName, boolean stopped, int userId) - throws RemoteException { - - } - - @Override - public void freeStorageAndNotify(String volumeUuid, long freeStorageSize, int storageFlags, - IPackageDataObserver observer) throws RemoteException { - - } - - @Override - public void freeStorage(String volumeUuid, long freeStorageSize, int storageFlags, - IntentSender pi) throws RemoteException { - - } - - @Override - public void deleteApplicationCacheFiles(String packageName, IPackageDataObserver observer) - throws RemoteException { - - } - - @Override - public void deleteApplicationCacheFilesAsUser(String packageName, int userId, - IPackageDataObserver observer) throws RemoteException { - - } - - @Override - public void clearApplicationUserData(String packageName, IPackageDataObserver observer, - int userId) throws RemoteException { - - } - - @Override - public void clearApplicationProfileData(String packageName) throws RemoteException { - - } - - @Override - public void getPackageSizeInfo(String packageName, int userHandle, - IPackageStatsObserver observer) - throws RemoteException { - - } - - @Override - public String[] getSystemSharedLibraryNames() throws RemoteException { - return new String[0]; - } - - @Override - public ParceledListSlice getSystemAvailableFeatures() throws RemoteException { - return null; - } - - @Override - public boolean hasSystemFeature(String name, int version) throws RemoteException { - return false; - } - - @Override - public void enterSafeMode() throws RemoteException { - - } - - @Override - public boolean isSafeMode() throws RemoteException { - return false; - } - - @Override - public void systemReady() throws RemoteException { - - } - - @Override - public boolean hasSystemUidErrors() throws RemoteException { - return false; - } - - @Override - public void performFstrimIfNeeded() throws RemoteException { - - } - - @Override - public void updatePackagesIfNeeded() throws RemoteException { - - } - - @Override - public void notifyPackageUse(String packageName, int reason) throws RemoteException { - - } - - @Override - public void notifyDexLoad(String loadingPackageName, List<String> classLoadersNames, - List<String> classPaths, String loaderIsa) throws RemoteException { - - } - - @Override - public void registerDexModule(String packageName, String dexModulePath, boolean isSharedModule, - IDexModuleRegisterCallback callback) throws RemoteException { - - } - - @Override - public boolean performDexOptMode(String packageName, boolean checkProfiles, - String targetCompilerFilter, boolean force, boolean bootComplete, String splitName) - throws RemoteException { - return false; - } - - @Override - public boolean performDexOptSecondary(String packageName, String targetCompilerFilter, - boolean force) throws RemoteException { - return false; - } - - @Override - public boolean compileLayouts(String packageName) throws RemoteException { - return false; - } - - @Override - public void dumpProfiles(String packageName) throws RemoteException { - - } - - @Override - public void forceDexOpt(String packageName) throws RemoteException { - - } - - @Override - public boolean runBackgroundDexoptJob(List<String> packageNames) throws RemoteException { - return false; - } - - @Override - public void reconcileSecondaryDexFiles(String packageName) throws RemoteException { - - } - - @Override - public int getMoveStatus(int moveId) throws RemoteException { - return 0; - } - - @Override - public void registerMoveCallback(IPackageMoveObserver callback) throws RemoteException { - - } - - @Override - public void unregisterMoveCallback(IPackageMoveObserver callback) throws RemoteException { - - } - - @Override - public int movePackage(String packageName, String volumeUuid) throws RemoteException { - return 0; - } - - @Override - public int movePrimaryStorage(String volumeUuid) throws RemoteException { - return 0; - } - - @Override - public boolean addPermissionAsync(PermissionInfo info) throws RemoteException { - return false; - } - - @Override - public boolean setInstallLocation(int loc) throws RemoteException { - return false; - } - - @Override - public int getInstallLocation() throws RemoteException { - return 0; - } - - @Override - public int installExistingPackageAsUser(String packageName, int userId, int installFlags, - int installReason) throws RemoteException { - return 0; - } - - @Override - public void verifyPendingInstall(int id, int verificationCode) throws RemoteException { - - } - - @Override - public void extendVerificationTimeout(int id, int verificationCodeAtTimeout, - long millisecondsToDelay) throws RemoteException { - - } - - @Override - public void verifyIntentFilter(int id, int verificationCode, List<String> failedDomains) - throws RemoteException { - - } - - @Override - public int getIntentVerificationStatus(String packageName, int userId) throws RemoteException { - return 0; - } - - @Override - public boolean updateIntentVerificationStatus(String packageName, int status, int userId) - throws RemoteException { - return false; - } - - @Override - public ParceledListSlice getIntentFilterVerifications(String packageName) - throws RemoteException { - return null; - } - - @Override - public ParceledListSlice getAllIntentFilters(String packageName) throws RemoteException { - return null; - } - - @Override - public boolean setDefaultBrowserPackageName(String packageName, int userId) - throws RemoteException { - return false; - } - - @Override - public String getDefaultBrowserPackageName(int userId) throws RemoteException { - return null; - } - - @Override - public VerifierDeviceIdentity getVerifierDeviceIdentity() throws RemoteException { - return null; - } - - @Override - public boolean isFirstBoot() throws RemoteException { - return false; - } - - @Override - public boolean isOnlyCoreApps() throws RemoteException { - return false; - } - - @Override - public boolean isDeviceUpgrading() throws RemoteException { - return false; - } - - @Override - public void setPermissionEnforced(String permission, boolean enforced) throws RemoteException { - - } - - @Override - public boolean isPermissionEnforced(String permission) throws RemoteException { - return false; - } - - @Override - public boolean isStorageLow() throws RemoteException { - return false; - } - - @Override - public boolean setApplicationHiddenSettingAsUser(String packageName, boolean hidden, int userId) - throws RemoteException { - return false; - } - - @Override - public boolean getApplicationHiddenSettingAsUser(String packageName, int userId) - throws RemoteException { - return false; - } - - @Override - public void setSystemAppHiddenUntilInstalled(String packageName, boolean hidden) - throws RemoteException { - - } - - @Override - public boolean setSystemAppInstallState(String packageName, boolean installed, int userId) - throws RemoteException { - return false; - } - - @Override - public IPackageInstaller getPackageInstaller() throws RemoteException { - return null; - } - - @Override - public boolean setBlockUninstallForUser(String packageName, boolean blockUninstall, int userId) - throws RemoteException { - return false; - } - - @Override - public boolean getBlockUninstallForUser(String packageName, int userId) throws RemoteException { - return false; - } - - @Override - public KeySet getKeySetByAlias(String packageName, String alias) throws RemoteException { - return null; - } - - @Override - public KeySet getSigningKeySet(String packageName) throws RemoteException { - return null; - } - - @Override - public boolean isPackageSignedByKeySet(String packageName, KeySet ks) throws RemoteException { - return false; - } - - @Override - public boolean isPackageSignedByKeySetExactly(String packageName, KeySet ks) - throws RemoteException { - return false; - } - - @Override - public void addOnPermissionsChangeListener(IOnPermissionsChangeListener listener) - throws RemoteException { - - } - - @Override - public void removeOnPermissionsChangeListener(IOnPermissionsChangeListener listener) - throws RemoteException { - - } - - @Override - public void grantDefaultPermissionsToEnabledCarrierApps(String[] packageNames, int userId) - throws RemoteException { - - } - - @Override - public void grantDefaultPermissionsToEnabledImsServices(String[] packageNames, int userId) - throws RemoteException { - - } - - @Override - public void grantDefaultPermissionsToEnabledTelephonyDataServices(String[] packageNames, - int userId) throws RemoteException { - - } - - @Override - public void revokeDefaultPermissionsFromDisabledTelephonyDataServices(String[] packageNames, - int userId) throws RemoteException { - - } - - @Override - public void grantDefaultPermissionsToActiveLuiApp(String packageName, int userId) - throws RemoteException { - - } - - @Override - public void revokeDefaultPermissionsFromLuiApps(String[] packageNames, int userId) - throws RemoteException { - - } - - @Override - public boolean isPermissionRevokedByPolicy(String permission, String packageName, int userId) - throws RemoteException { - return false; - } - - @Override - public String getPermissionControllerPackageName() throws RemoteException { - return null; - } - - @Override - public ParceledListSlice getInstantApps(int userId) throws RemoteException { - return null; - } - - @Override - public byte[] getInstantAppCookie(String packageName, int userId) throws RemoteException { - return new byte[0]; - } - - @Override - public boolean setInstantAppCookie(String packageName, byte[] cookie, int userId) - throws RemoteException { - return false; - } - - @Override - public Bitmap getInstantAppIcon(String packageName, int userId) throws RemoteException { - return null; - } - - @Override - public boolean isInstantApp(String packageName, int userId) throws RemoteException { - return false; - } - - @Override - public boolean setRequiredForSystemUser(String packageName, boolean systemUserApp) - throws RemoteException { - return false; - } - - @Override - public void setUpdateAvailable(String packageName, boolean updateAvaialble) - throws RemoteException { - - } - - @Override - public String getServicesSystemSharedLibraryPackageName() throws RemoteException { - return null; - } - - @Override - public String getSharedSystemSharedLibraryPackageName() throws RemoteException { - return null; - } - - @Override - public ChangedPackages getChangedPackages(int sequenceNumber, int userId) - throws RemoteException { - return null; - } - - @Override - public boolean isPackageDeviceAdminOnAnyUser(String packageName) throws RemoteException { - return false; - } - - @Override - public int getInstallReason(String packageName, int userId) throws RemoteException { - return 0; - } - - @Override - public ParceledListSlice getSharedLibraries(String packageName, int flags, int userId) - throws RemoteException { - return null; - } - - @Override - public ParceledListSlice getDeclaredSharedLibraries(String packageName, int flags, int userId) - throws RemoteException { - return null; - } - - @Override - public boolean canRequestPackageInstalls(String packageName, int userId) - throws RemoteException { - return false; - } - - @Override - public void deletePreloadsFileCache() throws RemoteException { - - } - - @Override - public ComponentName getInstantAppResolverComponent() throws RemoteException { - return null; - } - - @Override - public ComponentName getInstantAppResolverSettingsComponent() throws RemoteException { - return null; - } - - @Override - public ComponentName getInstantAppInstallerComponent() throws RemoteException { - return null; - } - - @Override - public String getInstantAppAndroidId(String packageName, int userId) throws RemoteException { - return null; - } - - @Override - public IArtManager getArtManager() throws RemoteException { - return null; - } - - @Override - public void setHarmfulAppWarning(String packageName, CharSequence warning, int userId) - throws RemoteException { - - } - - @Override - public CharSequence getHarmfulAppWarning(String packageName, int userId) - throws RemoteException { - return null; - } - - @Override - public boolean hasSigningCertificate(String packageName, byte[] signingCertificate, int flags) - throws RemoteException { - return false; - } - - @Override - public boolean hasUidSigningCertificate(int uid, byte[] signingCertificate, int flags) - throws RemoteException { - return false; - } - - @Override - public String getSystemTextClassifierPackageName() throws RemoteException { - return null; - } - - @Override - public String getWellbeingPackageName() throws RemoteException { - return null; - } - - @Override - public String getSystemCaptionsServicePackageName() throws RemoteException { - return null; - } - - @Override - public String getAttentionServicePackageName() throws RemoteException { - return null; - } - - public String getIncidentReportApproverPackageName() throws RemoteException { - return null; - } - - @Override - public String getAppPredictionServicePackageName() { - return null; - } - - @Override - public boolean isPackageStateProtected(String packageName, int userId) throws RemoteException { - return false; - } - - @Override - public void sendDeviceCustomizationReadyBroadcast() throws RemoteException { - - } - - @Override - public List<ModuleInfo> getInstalledModules(int flags) throws RemoteException { - return null; - } - - @Override - public ModuleInfo getModuleInfo(String packageName, int flags) throws RemoteException { - return null; - } - - @Override - public int getRuntimePermissionsVersion(int userId) throws RemoteException { - return 0; - } - - @Override - public void setRuntimePermissionsVersion(int version, int userId) throws RemoteException { - - } - - @Override - public IBinder asBinder() { - return null; - } -} diff --git a/services/tests/servicestests/src/com/android/server/backup/utils/AppBackupUtilsTest.java b/services/tests/servicestests/src/com/android/server/backup/utils/AppBackupUtilsTest.java index a92b576e5d0f..a9011756240d 100644 --- a/services/tests/servicestests/src/com/android/server/backup/utils/AppBackupUtilsTest.java +++ b/services/tests/servicestests/src/com/android/server/backup/utils/AppBackupUtilsTest.java @@ -20,6 +20,7 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; @@ -36,7 +37,6 @@ import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; import com.android.server.backup.UserBackupManagerService; -import com.android.server.backup.testutils.IPackageManagerStub; import org.junit.Before; import org.junit.Test; @@ -54,14 +54,12 @@ public class AppBackupUtilsTest { private static final Signature SIGNATURE_3 = generateSignature((byte) 3); private static final Signature SIGNATURE_4 = generateSignature((byte) 4); - private IPackageManagerStub mPackageManagerStub; private PackageManagerInternal mMockPackageManagerInternal; private int mUserId; @Before public void setUp() throws Exception { - mPackageManagerStub = new IPackageManagerStub(); mMockPackageManagerInternal = mock(PackageManagerInternal.class); mUserId = UserHandle.USER_SYSTEM; @@ -76,7 +74,7 @@ public class AppBackupUtilsTest { applicationInfo.packageName = TEST_PACKAGE_NAME; boolean isEligible = AppBackupUtils.appIsEligibleForBackup(applicationInfo, - mPackageManagerStub, mUserId); + mMockPackageManagerInternal, mUserId); assertThat(isEligible).isFalse(); } @@ -91,7 +89,7 @@ public class AppBackupUtilsTest { applicationInfo.packageName = TEST_PACKAGE_NAME; boolean isEligible = AppBackupUtils.appIsEligibleForBackup(applicationInfo, - mPackageManagerStub, mUserId); + mMockPackageManagerInternal, mUserId); assertThat(isEligible).isFalse(); } @@ -105,7 +103,7 @@ public class AppBackupUtilsTest { applicationInfo.packageName = UserBackupManagerService.SHARED_BACKUP_AGENT_PACKAGE; boolean isEligible = AppBackupUtils.appIsEligibleForBackup(applicationInfo, - mPackageManagerStub, mUserId); + mMockPackageManagerInternal, mUserId); assertThat(isEligible).isFalse(); } @@ -118,12 +116,11 @@ public class AppBackupUtilsTest { applicationInfo.uid = Process.SYSTEM_UID; applicationInfo.backupAgentName = CUSTOM_BACKUP_AGENT_NAME; applicationInfo.packageName = TEST_PACKAGE_NAME; - - IPackageManagerStub.sApplicationEnabledSetting = - PackageManager.COMPONENT_ENABLED_STATE_ENABLED; + when(mMockPackageManagerInternal.getApplicationEnabledState(TEST_PACKAGE_NAME, mUserId)) + .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_ENABLED); boolean isEligible = AppBackupUtils.appIsEligibleForBackup(applicationInfo, - mPackageManagerStub, mUserId); + mMockPackageManagerInternal, mUserId); assertThat(isEligible).isTrue(); } @@ -136,12 +133,11 @@ public class AppBackupUtilsTest { applicationInfo.uid = Process.FIRST_APPLICATION_UID; applicationInfo.backupAgentName = null; applicationInfo.packageName = TEST_PACKAGE_NAME; - - IPackageManagerStub.sApplicationEnabledSetting = - PackageManager.COMPONENT_ENABLED_STATE_ENABLED; + when(mMockPackageManagerInternal.getApplicationEnabledState(TEST_PACKAGE_NAME, mUserId)) + .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_ENABLED); boolean isEligible = AppBackupUtils.appIsEligibleForBackup(applicationInfo, - mPackageManagerStub, mUserId); + mMockPackageManagerInternal, mUserId); assertThat(isEligible).isTrue(); } @@ -154,12 +150,11 @@ public class AppBackupUtilsTest { applicationInfo.uid = Process.FIRST_APPLICATION_UID; applicationInfo.backupAgentName = CUSTOM_BACKUP_AGENT_NAME; applicationInfo.packageName = TEST_PACKAGE_NAME; - - IPackageManagerStub.sApplicationEnabledSetting = - PackageManager.COMPONENT_ENABLED_STATE_ENABLED; + when(mMockPackageManagerInternal.getApplicationEnabledState(TEST_PACKAGE_NAME, mUserId)) + .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_ENABLED); boolean isEligible = AppBackupUtils.appIsEligibleForBackup(applicationInfo, - mPackageManagerStub, mUserId); + mMockPackageManagerInternal, mUserId); assertThat(isEligible).isTrue(); } @@ -172,12 +167,11 @@ public class AppBackupUtilsTest { applicationInfo.uid = Process.SYSTEM_UID; applicationInfo.backupAgentName = CUSTOM_BACKUP_AGENT_NAME; applicationInfo.packageName = TEST_PACKAGE_NAME; - - IPackageManagerStub.sApplicationEnabledSetting = - PackageManager.COMPONENT_ENABLED_STATE_DISABLED; + when(mMockPackageManagerInternal.getApplicationEnabledState(TEST_PACKAGE_NAME, mUserId)) + .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DISABLED); boolean isEligible = AppBackupUtils.appIsEligibleForBackup(applicationInfo, - mPackageManagerStub, mUserId); + mMockPackageManagerInternal, mUserId); assertThat(isEligible).isFalse(); } @@ -190,12 +184,11 @@ public class AppBackupUtilsTest { applicationInfo.uid = Process.FIRST_APPLICATION_UID; applicationInfo.backupAgentName = null; applicationInfo.packageName = TEST_PACKAGE_NAME; - - IPackageManagerStub.sApplicationEnabledSetting = - PackageManager.COMPONENT_ENABLED_STATE_DISABLED; + when(mMockPackageManagerInternal.getApplicationEnabledState(TEST_PACKAGE_NAME, mUserId)) + .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DISABLED); boolean isEligible = AppBackupUtils.appIsEligibleForBackup(applicationInfo, - mPackageManagerStub, mUserId); + mMockPackageManagerInternal, mUserId); assertThat(isEligible).isFalse(); } @@ -208,12 +201,11 @@ public class AppBackupUtilsTest { applicationInfo.uid = Process.FIRST_APPLICATION_UID; applicationInfo.backupAgentName = CUSTOM_BACKUP_AGENT_NAME; applicationInfo.packageName = TEST_PACKAGE_NAME; - - IPackageManagerStub.sApplicationEnabledSetting = - PackageManager.COMPONENT_ENABLED_STATE_DISABLED; + when(mMockPackageManagerInternal.getApplicationEnabledState(TEST_PACKAGE_NAME, mUserId)) + .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DISABLED); boolean isEligible = AppBackupUtils.appIsEligibleForBackup(applicationInfo, - mPackageManagerStub, mUserId); + mMockPackageManagerInternal, mUserId); assertThat(isEligible).isFalse(); } @@ -226,12 +218,11 @@ public class AppBackupUtilsTest { applicationInfo.backupAgentName = CUSTOM_BACKUP_AGENT_NAME; applicationInfo.packageName = TEST_PACKAGE_NAME; applicationInfo.enabled = true; + when(mMockPackageManagerInternal.getApplicationEnabledState(TEST_PACKAGE_NAME, mUserId)) + .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DEFAULT); - IPackageManagerStub.sApplicationEnabledSetting = - PackageManager.COMPONENT_ENABLED_STATE_DEFAULT; - - boolean isDisabled = AppBackupUtils.appIsDisabled(applicationInfo, mPackageManagerStub, - mUserId); + boolean isDisabled = + AppBackupUtils.appIsDisabled(applicationInfo, mMockPackageManagerInternal, mUserId); assertThat(isDisabled).isFalse(); } @@ -244,12 +235,12 @@ public class AppBackupUtilsTest { applicationInfo.backupAgentName = CUSTOM_BACKUP_AGENT_NAME; applicationInfo.packageName = TEST_PACKAGE_NAME; applicationInfo.enabled = false; + when(mMockPackageManagerInternal.getApplicationEnabledState(TEST_PACKAGE_NAME, mUserId)) + .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DEFAULT); - IPackageManagerStub.sApplicationEnabledSetting = - PackageManager.COMPONENT_ENABLED_STATE_DEFAULT; - boolean isDisabled = AppBackupUtils.appIsDisabled(applicationInfo, mPackageManagerStub, - mUserId); + boolean isDisabled = + AppBackupUtils.appIsDisabled(applicationInfo, mMockPackageManagerInternal, mUserId); assertThat(isDisabled).isTrue(); } @@ -261,12 +252,12 @@ public class AppBackupUtilsTest { applicationInfo.uid = Process.FIRST_APPLICATION_UID; applicationInfo.backupAgentName = CUSTOM_BACKUP_AGENT_NAME; applicationInfo.packageName = TEST_PACKAGE_NAME; + when(mMockPackageManagerInternal.getApplicationEnabledState(TEST_PACKAGE_NAME, mUserId)) + .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_ENABLED); - IPackageManagerStub.sApplicationEnabledSetting = - PackageManager.COMPONENT_ENABLED_STATE_ENABLED; - boolean isDisabled = AppBackupUtils.appIsDisabled(applicationInfo, mPackageManagerStub, - mUserId); + boolean isDisabled = + AppBackupUtils.appIsDisabled(applicationInfo, mMockPackageManagerInternal, mUserId); assertThat(isDisabled).isFalse(); } @@ -278,12 +269,12 @@ public class AppBackupUtilsTest { applicationInfo.uid = Process.FIRST_APPLICATION_UID; applicationInfo.backupAgentName = CUSTOM_BACKUP_AGENT_NAME; applicationInfo.packageName = TEST_PACKAGE_NAME; + when(mMockPackageManagerInternal.getApplicationEnabledState(TEST_PACKAGE_NAME, mUserId)) + .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DISABLED); - IPackageManagerStub.sApplicationEnabledSetting = - PackageManager.COMPONENT_ENABLED_STATE_DISABLED; - boolean isDisabled = AppBackupUtils.appIsDisabled(applicationInfo, mPackageManagerStub, - mUserId); + boolean isDisabled = + AppBackupUtils.appIsDisabled(applicationInfo, mMockPackageManagerInternal, mUserId); assertThat(isDisabled).isTrue(); } @@ -295,12 +286,11 @@ public class AppBackupUtilsTest { applicationInfo.uid = Process.FIRST_APPLICATION_UID; applicationInfo.backupAgentName = CUSTOM_BACKUP_AGENT_NAME; applicationInfo.packageName = TEST_PACKAGE_NAME; + when(mMockPackageManagerInternal.getApplicationEnabledState(TEST_PACKAGE_NAME, mUserId)) + .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER); - IPackageManagerStub.sApplicationEnabledSetting = - PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER; - - boolean isDisabled = AppBackupUtils.appIsDisabled(applicationInfo, mPackageManagerStub, - mUserId); + boolean isDisabled = + AppBackupUtils.appIsDisabled(applicationInfo, mMockPackageManagerInternal, mUserId); assertThat(isDisabled).isTrue(); } @@ -312,12 +302,11 @@ public class AppBackupUtilsTest { applicationInfo.uid = Process.FIRST_APPLICATION_UID; applicationInfo.backupAgentName = CUSTOM_BACKUP_AGENT_NAME; applicationInfo.packageName = TEST_PACKAGE_NAME; + when(mMockPackageManagerInternal.getApplicationEnabledState(TEST_PACKAGE_NAME, mUserId)) + .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED); - IPackageManagerStub.sApplicationEnabledSetting = - PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED; - - boolean isDisabled = AppBackupUtils.appIsDisabled(applicationInfo, mPackageManagerStub, - mUserId); + boolean isDisabled = + AppBackupUtils.appIsDisabled(applicationInfo, mMockPackageManagerInternal, mUserId); assertThat(isDisabled).isTrue(); } |