Fix KeyValueBackupTaskTest shadow errors
Replace IPackageManager with PackageManagerInternal to avoid shadowing ActivityThread. This shadow is prone to unrelated framework changes breaking our tests. Bug: 130540953 Test: 1) atest RunBackupFrameworksServicesRoboTests 2) atest AppBackupUtilsTest Change-Id: Iea95a37da3df9d3f0887ed5ab30c7007306415a1
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user