Merge "Make the Factory Reset Protection unit tests work on TV" into udc-dev

This commit is contained in:
Eric Biggers
2023-03-09 23:53:56 +00:00
committed by Android (Google) Code Review
3 changed files with 37 additions and 9 deletions

View File

@@ -39,6 +39,7 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageManager;
import android.content.pm.UserInfo;
import android.content.res.Resources;
import android.hardware.authsecret.IAuthSecret;
import android.hardware.face.FaceManager;
import android.hardware.fingerprint.FingerprintManager;
@@ -97,6 +98,7 @@ public abstract class BaseLockSettingsServiceTests {
MockLockSettingsContext mContext;
LockSettingsStorageTestable mStorage;
Resources mResources;
FakeGateKeeperService mGateKeeperService;
NotificationManager mNotificationManager;
UserManager mUserManager;
@@ -122,6 +124,7 @@ public abstract class BaseLockSettingsServiceTests {
@Before
public void setUp_baseServices() throws Exception {
mResources = createMockResources();
mGateKeeperService = new FakeGateKeeperService();
mNotificationManager = mock(NotificationManager.class);
mUserManager = mock(UserManager.class);
@@ -146,7 +149,7 @@ public abstract class BaseLockSettingsServiceTests {
LocalServices.addService(WindowManagerInternal.class, mMockWindowManager);
final Context origContext = InstrumentationRegistry.getContext();
mContext = new MockLockSettingsContext(origContext,
mContext = new MockLockSettingsContext(origContext, mResources,
mSettingsRule.mockContentResolver(origContext), mUserManager, mNotificationManager,
mDevicePolicyManager, mock(StorageManager.class), mock(TrustManager.class),
mock(KeyguardManager.class), mFingerprintManager, mFaceManager, mPackageManager);
@@ -245,6 +248,22 @@ public abstract class BaseLockSettingsServiceTests {
mLocalService = LocalServices.getService(LockSettingsInternal.class);
}
private Resources createMockResources() {
Resources res = mock(Resources.class);
// Set up some default configs, copied from core/res/res/values/config.xml
when(res.getBoolean(eq(com.android.internal.R.bool.config_disableLockscreenByDefault)))
.thenReturn(false);
when(res.getBoolean(
eq(com.android.internal.R.bool.config_enableCredentialFactoryResetProtection)))
.thenReturn(true);
when(res.getBoolean(eq(com.android.internal.R.bool.config_isMainUserPermanentAdmin)))
.thenReturn(true);
when(res.getBoolean(eq(com.android.internal.R.bool.config_strongAuthRequiredOnBoot)))
.thenReturn(true);
return res;
}
protected void setDeviceProvisioned(boolean provisioned) {
Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.DEVICE_PROVISIONED, provisioned ? 1 : 0);

View File

@@ -34,6 +34,7 @@ import android.app.trust.TrustManager;
import android.content.Context;
import android.content.pm.PackageManager;
import android.content.pm.UserInfo;
import android.content.res.Resources;
import android.database.sqlite.SQLiteDatabase;
import android.hardware.face.FaceManager;
import android.hardware.fingerprint.FingerprintManager;
@@ -106,8 +107,8 @@ public class LockSettingsStorageTests {
when(mockUserManager.getProfileParent(eq(3))).thenReturn(new UserInfo(0, "name", 0));
MockLockSettingsContext context = new MockLockSettingsContext(origContext,
mSettingsRule.mockContentResolver(origContext), mockUserManager,
mock(NotificationManager.class), mock(DevicePolicyManager.class),
mock(Resources.class), mSettingsRule.mockContentResolver(origContext),
mockUserManager, mock(NotificationManager.class), mock(DevicePolicyManager.class),
mock(StorageManager.class), mock(TrustManager.class), mock(KeyguardManager.class),
mock(FingerprintManager.class), mock(FaceManager.class),
mock(PackageManager.class));

View File

@@ -27,6 +27,7 @@ import android.content.ContextWrapper;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.hardware.face.FaceManager;
import android.hardware.fingerprint.FingerprintManager;
import android.os.Handler;
@@ -36,6 +37,7 @@ import android.os.storage.StorageManager;
public class MockLockSettingsContext extends ContextWrapper {
private final Resources mResources;
private final ContentResolver mContentResolver;
private final UserManager mUserManager;
private final NotificationManager mNotificationManager;
@@ -47,13 +49,14 @@ public class MockLockSettingsContext extends ContextWrapper {
private final FaceManager mFaceManager;
private final PackageManager mPackageManager;
public MockLockSettingsContext(Context base, ContentResolver contentResolver,
UserManager userManager, NotificationManager notificationManager,
DevicePolicyManager devicePolicyManager, StorageManager storageManager,
TrustManager trustManager, KeyguardManager keyguardManager,
FingerprintManager fingerprintManager, FaceManager faceManager,
PackageManager packageManager) {
public MockLockSettingsContext(Context base, Resources resources,
ContentResolver contentResolver, UserManager userManager,
NotificationManager notificationManager, DevicePolicyManager devicePolicyManager,
StorageManager storageManager, TrustManager trustManager,
KeyguardManager keyguardManager, FingerprintManager fingerprintManager,
FaceManager faceManager, PackageManager packageManager) {
super(base);
mResources = resources;
mContentResolver = contentResolver;
mUserManager = userManager;
mNotificationManager = notificationManager;
@@ -66,6 +69,11 @@ public class MockLockSettingsContext extends ContextWrapper {
mPackageManager = packageManager;
}
@Override
public Resources getResources() {
return mResources;
}
@Override
public ContentResolver getContentResolver() {
return mContentResolver;