diff options
author | Annie Meng <anniemeng@google.com> | 2018-12-04 19:18:32 +0000 |
---|---|---|
committer | Annie Meng <anniemeng@google.com> | 2018-12-10 12:43:44 +0000 |
commit | 59f6f7fffaca0533dc636e7441ae28fa5aa199bb (patch) | |
tree | 94eaade06fbb83ab1331ba1c103e09f421ffd18b /services/robotests/src | |
parent | 604eb2a83801d4bfd9e83e1561678956fbe7663c (diff) |
[Multi-user] Initialize user state in UserBMS
Move per-user state initialization (directories for bookkeeping data and
transport manager) from BMS to UserBMS.
The UserBMS constructor is now private and callers should use the static
helper to create a new instance. This is primarily for three reasons:
1) Allows for extracting logic out of the constructor into helpers.
2) Allows for performing necessary user-specific setup in the future
such as data migration.
3) Allows for writing unit tests without having setters/getters
exclusively for tests.
Bug: 120212806
Test: 1) atest RunFrameworksServicesRoboTests
2) boot -> unlock user -> service started and verify transports
registered
3) adb shell bmgr backupnow [package] -> writes to /data dir
adb shell bmgr enable false -> writes to /data dir
4) adb shell bmgr backupnow --all -> writes to /cache dir
Change-Id: If88d95059951dbae0abf691629db1a05d27f743d
Diffstat (limited to 'services/robotests/src')
3 files changed, 194 insertions, 69 deletions
diff --git a/services/robotests/src/com/android/server/backup/UserBackupManagerServiceTest.java b/services/robotests/src/com/android/server/backup/UserBackupManagerServiceTest.java index 9d4381914608..efbcb960c1e9 100644 --- a/services/robotests/src/com/android/server/backup/UserBackupManagerServiceTest.java +++ b/services/robotests/src/com/android/server/backup/UserBackupManagerServiceTest.java @@ -148,7 +148,7 @@ public class UserBackupManagerServiceTest { mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); when(mTransportManager.getTransportCurrentDestinationString(eq(mTransportName))) .thenReturn("destinationString"); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); String destination = backupManagerService.getDestinationString(mTransportName); @@ -164,7 +164,7 @@ public class UserBackupManagerServiceTest { mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); when(mTransportManager.getTransportCurrentDestinationString(eq(mTransportName))) .thenThrow(TransportNotRegisteredException.class); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); String destination = backupManagerService.getDestinationString(mTransportName); @@ -180,7 +180,7 @@ public class UserBackupManagerServiceTest { mShadowContext.denyPermissions(android.Manifest.permission.BACKUP); when(mTransportManager.getTransportCurrentDestinationString(eq(mTransportName))) .thenThrow(TransportNotRegisteredException.class); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); expectThrows( SecurityException.class, @@ -195,7 +195,7 @@ public class UserBackupManagerServiceTest { public void testIsAppEligibleForBackup_whenAppNotEligible() throws Exception { mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); setUpCurrentTransport(mTransportManager, mTransport); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); boolean result = backupManagerService.isAppEligibleForBackup(PACKAGE_1); @@ -211,7 +211,7 @@ public class UserBackupManagerServiceTest { mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); TransportMock transportMock = setUpCurrentTransport(mTransportManager, backupTransport()); ShadowAppBackupUtils.setAppRunningAndEligibleForBackupWithTransport(PACKAGE_1); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); boolean result = backupManagerService.isAppEligibleForBackup(PACKAGE_1); @@ -229,7 +229,7 @@ public class UserBackupManagerServiceTest { mShadowContext.denyPermissions(android.Manifest.permission.BACKUP); setUpCurrentTransport(mTransportManager, mTransport); ShadowAppBackupUtils.setAppRunningAndEligibleForBackupWithTransport(PACKAGE_1); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); expectThrows( SecurityException.class, @@ -246,7 +246,7 @@ public class UserBackupManagerServiceTest { mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); TransportMock transportMock = setUpCurrentTransport(mTransportManager, mTransport); ShadowAppBackupUtils.setAppRunningAndEligibleForBackupWithTransport(PACKAGE_1); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); String[] filtered = backupManagerService.filterAppsEligibleForBackup( @@ -264,7 +264,7 @@ public class UserBackupManagerServiceTest { @Test public void testFilterAppsEligibleForBackup_whenNoneIsEligible() throws Exception { mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); String[] filtered = backupManagerService.filterAppsEligibleForBackup( @@ -281,7 +281,7 @@ public class UserBackupManagerServiceTest { public void testFilterAppsEligibleForBackup_withoutPermission() throws Exception { mShadowContext.denyPermissions(android.Manifest.permission.BACKUP); setUpCurrentTransport(mTransportManager, mTransport); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); expectThrows( SecurityException.class, @@ -319,7 +319,7 @@ public class UserBackupManagerServiceTest { public void testSelectBackupTransport() throws Exception { setUpForSelectTransport(); mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); String oldTransport = backupManagerService.selectBackupTransport(mNewTransport.transportName); @@ -338,7 +338,7 @@ public class UserBackupManagerServiceTest { public void testSelectBackupTransport_withoutPermission() throws Exception { setUpForSelectTransport(); mShadowContext.denyPermissions(android.Manifest.permission.BACKUP); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); expectThrows( SecurityException.class, @@ -356,7 +356,7 @@ public class UserBackupManagerServiceTest { mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); when(mTransportManager.registerAndSelectTransport(eq(mNewTransportComponent))) .thenReturn(BackupManager.SUCCESS); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); ISelectBackupTransportCallback callback = mock(ISelectBackupTransportCallback.class); backupManagerService.selectBackupTransportAsync(mNewTransportComponent, callback); @@ -380,7 +380,7 @@ public class UserBackupManagerServiceTest { mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); when(mTransportManager.registerAndSelectTransport(eq(mNewTransportComponent))) .thenReturn(BackupManager.ERROR_TRANSPORT_UNAVAILABLE); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); ISelectBackupTransportCallback callback = mock(ISelectBackupTransportCallback.class); backupManagerService.selectBackupTransportAsync(mNewTransportComponent, callback); @@ -402,7 +402,7 @@ public class UserBackupManagerServiceTest { mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); when(mTransportManager.registerAndSelectTransport(eq(newTransportComponent))) .thenReturn(BackupManager.SUCCESS); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); ISelectBackupTransportCallback callback = mock(ISelectBackupTransportCallback.class); backupManagerService.selectBackupTransportAsync(newTransportComponent, callback); @@ -421,7 +421,7 @@ public class UserBackupManagerServiceTest { public void testSelectBackupTransportAsync_withoutPermission() throws Exception { setUpForSelectTransport(); mShadowContext.denyPermissions(android.Manifest.permission.BACKUP); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); ComponentName newTransportComponent = mNewTransport.getTransportComponent(); expectThrows( @@ -445,7 +445,7 @@ public class UserBackupManagerServiceTest { mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); when(mTransportManager.getCurrentTransportComponent()) .thenReturn(mTransport.getTransportComponent()); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); ComponentName transportComponent = backupManagerService.getCurrentTransportComponent(); @@ -460,7 +460,7 @@ public class UserBackupManagerServiceTest { public void testGetCurrentTransportComponent_whenNoTransportSelected() throws Exception { mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); when(mTransportManager.getCurrentTransportComponent()).thenReturn(null); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); ComponentName transportComponent = backupManagerService.getCurrentTransportComponent(); @@ -476,7 +476,7 @@ public class UserBackupManagerServiceTest { mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); when(mTransportManager.getCurrentTransportComponent()) .thenThrow(TransportNotRegisteredException.class); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); ComponentName transportComponent = backupManagerService.getCurrentTransportComponent(); @@ -490,7 +490,7 @@ public class UserBackupManagerServiceTest { @Test public void testGetCurrentTransportComponent_withoutPermission() throws Exception { mShadowContext.denyPermissions(android.Manifest.permission.BACKUP); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); expectThrows(SecurityException.class, backupManagerService::getCurrentTransportComponent); } @@ -525,7 +525,7 @@ public class UserBackupManagerServiceTest { mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); Intent configurationIntent = new Intent(); Intent dataManagementIntent = new Intent(); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); backupManagerService.updateTransportAttributes( mTransportUid, @@ -556,7 +556,7 @@ public class UserBackupManagerServiceTest { throws Exception { setUpForUpdateTransportAttributes(); mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); expectThrows( SecurityException.class, @@ -581,7 +581,7 @@ public class UserBackupManagerServiceTest { throws Exception { setUpForUpdateTransportAttributes(); mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); expectThrows( RuntimeException.class, @@ -605,7 +605,7 @@ public class UserBackupManagerServiceTest { public void testUpdateTransportAttributes_whenNameNull_throwsException() throws Exception { setUpForUpdateTransportAttributes(); mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); expectThrows( RuntimeException.class, @@ -630,7 +630,7 @@ public class UserBackupManagerServiceTest { throws Exception { setUpForUpdateTransportAttributes(); mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); expectThrows( RuntimeException.class, @@ -657,7 +657,7 @@ public class UserBackupManagerServiceTest { throws Exception { setUpForUpdateTransportAttributes(); mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); expectThrows( RuntimeException.class, @@ -696,7 +696,7 @@ public class UserBackupManagerServiceTest { mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); Intent configurationIntent = new Intent(); Intent dataManagementIntent = new Intent(); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); backupManagerService.updateTransportAttributes( mTransportUid, @@ -727,7 +727,7 @@ public class UserBackupManagerServiceTest { throws Exception { setUpForUpdateTransportAttributes(); mShadowContext.denyPermissions(android.Manifest.permission.BACKUP); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); expectThrows( SecurityException.class, @@ -766,7 +766,7 @@ public class UserBackupManagerServiceTest { @Test public void testRequestBackup_whenPermissionDenied() throws Exception { mShadowContext.denyPermissions(android.Manifest.permission.BACKUP); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); expectThrows( SecurityException.class, @@ -780,7 +780,7 @@ public class UserBackupManagerServiceTest { @Test public void testRequestBackup_whenPackagesNull() throws Exception { mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); expectThrows( IllegalArgumentException.class, @@ -796,7 +796,7 @@ public class UserBackupManagerServiceTest { @Test public void testRequestBackup_whenPackagesEmpty() throws Exception { mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); expectThrows( IllegalArgumentException.class, @@ -811,7 +811,7 @@ public class UserBackupManagerServiceTest { @Test public void testRequestBackup_whenBackupDisabled() throws Exception { mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); backupManagerService.setEnabled(false); int result = backupManagerService.requestBackup(new String[] {PACKAGE_1}, mObserver, 0); @@ -828,7 +828,7 @@ public class UserBackupManagerServiceTest { @Test public void testRequestBackup_whenNotProvisioned() throws Exception { mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); backupManagerService.setProvisioned(false); int result = backupManagerService.requestBackup(new String[] {PACKAGE_1}, mObserver, 0); @@ -846,7 +846,7 @@ public class UserBackupManagerServiceTest { public void testRequestBackup_whenTransportNotRegistered() throws Exception { mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); setUpCurrentTransport(mTransportManager, mTransport.unregistered()); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); backupManagerService.setEnabled(true); backupManagerService.setProvisioned(true); @@ -866,7 +866,7 @@ public class UserBackupManagerServiceTest { mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); mShadowPackageManager.addPackage(PACKAGE_1); setUpCurrentTransport(mTransportManager, mTransport); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); backupManagerService.setEnabled(true); backupManagerService.setProvisioned(true); // Haven't set PACKAGE_1 as eligible @@ -934,7 +934,7 @@ public class UserBackupManagerServiceTest { @Config(shadows = {ShadowBinder.class, ShadowKeyValueBackupJob.class}) public void testBackupNow_clearsCallingIdentityForJobScheduler() { mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); setUpPowerManager(backupManagerService); ShadowBinder.setCallingUid(1); @@ -952,7 +952,7 @@ public class UserBackupManagerServiceTest { @Config(shadows = {ShadowBinder.class, ShadowKeyValueBackupJobException.class}) public void testBackupNow_whenExceptionThrown_restoresCallingIdentity() { mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); setUpPowerManager(backupManagerService); ShadowBinder.setCallingUid(1); @@ -963,54 +963,170 @@ public class UserBackupManagerServiceTest { } private UserBackupManagerService createBackupManagerServiceForRequestBackup() { - UserBackupManagerService backupManagerService = createInitializedBackupManagerService(); + UserBackupManagerService backupManagerService = createUserBackupManagerServiceAndRunTasks(); backupManagerService.setEnabled(true); backupManagerService.setProvisioned(true); return backupManagerService; } /** - * Test verifying that {@link UserBackupManagerService#UserBackupManagerService(Context, + * Test verifying that {@link UserBackupManagerService#createAndInitializeService(Context, * Trampoline, HandlerThread, File, File, TransportManager)} posts a transport registration task - * to the backup handler thread. + * to the backup thread. */ @Test - public void testConstructor_postRegisterTransports() { + public void testCreateAndInitializeService_postRegisterTransports() { mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); - createBackupManagerService(); + UserBackupManagerService.createAndInitializeService( + mContext, + new Trampoline(mContext), + mBackupThread, + mBaseStateDir, + mDataDir, + mTransportManager); mShadowBackupLooper.runToEndOfTasks(); verify(mTransportManager).registerTransports(); } /** - * Test verifying that the {@link UserBackupManagerService#UserBackupManagerService(Context, + * Test verifying that {@link UserBackupManagerService#createAndInitializeService(Context, * Trampoline, HandlerThread, File, File, TransportManager)} does not directly register - * transports in its own thread. + * transports on the main thread. */ @Test - public void testConstructor_doesNotRegisterTransportsSynchronously() { + public void testCreateAndInitializeService_doesNotRegisterTransportsSynchronously() { mShadowContext.grantPermissions(android.Manifest.permission.BACKUP); - createBackupManagerService(); - - // Operations posted to mBackupThread only run with mShadowBackupLooper.runToEndOfTasks() - verify(mTransportManager, never()).registerTransports(); - } - - private UserBackupManagerService createBackupManagerService() { - return new UserBackupManagerService( + UserBackupManagerService.createAndInitializeService( mContext, new Trampoline(mContext), mBackupThread, mBaseStateDir, mDataDir, mTransportManager); + + // Operations posted to mBackupThread only run with mShadowBackupLooper.runToEndOfTasks() + verify(mTransportManager, never()).registerTransports(); + } + + /** + * Test checking non-null argument on {@link + * UserBackupManagerService#createAndInitializeService(Context, Trampoline, HandlerThread, File, + * File, TransportManager)}. + */ + @Test + public void testCreateAndInitializeService_withNullContext_throws() { + expectThrows( + NullPointerException.class, + () -> + UserBackupManagerService.createAndInitializeService( + /* context */ null, + new Trampoline(mContext), + mBackupThread, + mBaseStateDir, + mDataDir, + mTransportManager)); + } + + /** + * Test checking non-null argument on {@link + * UserBackupManagerService#createAndInitializeService(Context, Trampoline, HandlerThread, File, + * File, TransportManager)}. + */ + @Test + public void testCreateAndInitializeService_withNullTrampoline_throws() { + expectThrows( + NullPointerException.class, + () -> + UserBackupManagerService.createAndInitializeService( + mContext, + /* trampoline */ null, + mBackupThread, + mBaseStateDir, + mDataDir, + mTransportManager)); + } + + /** + * Test checking non-null argument on {@link + * UserBackupManagerService#createAndInitializeService(Context, Trampoline, HandlerThread, File, + * File, TransportManager)}. + */ + @Test + public void testCreateAndInitializeService_withNullBackupThread_throws() { + expectThrows( + NullPointerException.class, + () -> + UserBackupManagerService.createAndInitializeService( + mContext, + new Trampoline(mContext), + /* backupThread */ null, + mBaseStateDir, + mDataDir, + mTransportManager)); + } + + /** + * Test checking non-null argument on {@link + * UserBackupManagerService#createAndInitializeService(Context, Trampoline, HandlerThread, File, + * File, TransportManager)}. + */ + @Test + public void testCreateAndInitializeService_withNullStateDir_throws() { + expectThrows( + NullPointerException.class, + () -> + UserBackupManagerService.createAndInitializeService( + mContext, + new Trampoline(mContext), + mBackupThread, + /* baseStateDir */ null, + mDataDir, + mTransportManager)); + } + + /** + * Test checking non-null argument on {@link + * UserBackupManagerService#createAndInitializeService(Context, Trampoline, HandlerThread, File, + * File, TransportManager)}. + */ + @Test + public void testCreateAndInitializeService_withNullDataDir_throws() { + expectThrows( + NullPointerException.class, + () -> + UserBackupManagerService.createAndInitializeService( + mContext, + new Trampoline(mContext), + mBackupThread, + mBaseStateDir, + /* dataDir */ null, + mTransportManager)); + } + + /** + * Test checking non-null argument on {@link + * UserBackupManagerService#createAndInitializeService(Context, Trampoline, HandlerThread, File, + * File, TransportManager)}. + */ + @Test + public void testCreateAndInitializeService_withNullTransportManager_throws() { + expectThrows( + NullPointerException.class, + () -> + UserBackupManagerService.createAndInitializeService( + mContext, + new Trampoline(mContext), + mBackupThread, + mBaseStateDir, + mDataDir, + /* transportManager */ null)); } - private UserBackupManagerService createInitializedBackupManagerService() { - return BackupManagerServiceTestUtils.createInitializedUserBackupManagerService( + private UserBackupManagerService createUserBackupManagerServiceAndRunTasks() { + return BackupManagerServiceTestUtils.createUserBackupManagerServiceAndRunTasks( mContext, mBackupThread, mBaseStateDir, mDataDir, mTransportManager); } diff --git a/services/robotests/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java b/services/robotests/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java index 1aa4999b1d3a..099127cbeb4b 100644 --- a/services/robotests/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java +++ b/services/robotests/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java @@ -25,12 +25,9 @@ import static android.app.backup.BackupManager.SUCCESS; import static android.app.backup.ForwardingBackupAgent.forward; import static com.android.server.backup.testing.BackupManagerServiceTestUtils.createBackupWakeLock; -import static com.android.server.backup.testing.BackupManagerServiceTestUtils - .createInitializedUserBackupManagerService; -import static com.android.server.backup.testing.BackupManagerServiceTestUtils - .setUpBackupManagerServiceBasics; -import static com.android.server.backup.testing.BackupManagerServiceTestUtils - .setUpBinderCallerAndApplicationAsSystem; +import static com.android.server.backup.testing.BackupManagerServiceTestUtils.createUserBackupManagerServiceAndRunTasks; +import static com.android.server.backup.testing.BackupManagerServiceTestUtils.setUpBackupManagerServiceBasics; +import static com.android.server.backup.testing.BackupManagerServiceTestUtils.setUpBinderCallerAndApplicationAsSystem; import static com.android.server.backup.testing.PackageData.PM_PACKAGE; import static com.android.server.backup.testing.PackageData.fullBackupPackage; import static com.android.server.backup.testing.PackageData.keyValuePackage; @@ -226,9 +223,8 @@ public class KeyValueBackupTaskTest { // Needed to be able to use a real BMS instead of a mock setUpBinderCallerAndApplicationAsSystem(mApplication); mBackupManagerService = - spy( - createInitializedUserBackupManagerService( - mContext, mBaseStateDir, mDataDir, mTransportManager)); + spy(createUserBackupManagerServiceAndRunTasks( + mContext, mBaseStateDir, mDataDir, mTransportManager)); setUpBackupManagerServiceBasics( mBackupManagerService, mApplication, diff --git a/services/robotests/src/com/android/server/backup/testing/BackupManagerServiceTestUtils.java b/services/robotests/src/com/android/server/backup/testing/BackupManagerServiceTestUtils.java index bacc44e685f4..06f6d21b9ca9 100644 --- a/services/robotests/src/com/android/server/backup/testing/BackupManagerServiceTestUtils.java +++ b/services/robotests/src/com/android/server/backup/testing/BackupManagerServiceTestUtils.java @@ -52,23 +52,36 @@ import java.util.concurrent.atomic.AtomicReference; /** Test utils for {@link UserBackupManagerService} and friends. */ public class BackupManagerServiceTestUtils { /** - * If the class-under-test is going to execute methods as the system, it's a good idea to also - * call {@link #setUpBinderCallerAndApplicationAsSystem(Application)} before this method. + * Creates an instance of {@link UserBackupManagerService} with a new backup thread and runs + * tasks that were posted to it during instantiation. + * + * <p>If the class-under-test is going to execute methods as the system, it's a good idea to + * also call {@link #setUpBinderCallerAndApplicationAsSystem(Application)} before this method. + * + * @see #createUserBackupManagerServiceAndRunTasks(Context, HandlerThread, File, File, + * TransportManager) */ - public static UserBackupManagerService createInitializedUserBackupManagerService( + public static UserBackupManagerService createUserBackupManagerServiceAndRunTasks( Context context, File baseStateDir, File dataDir, TransportManager transportManager) { - return createInitializedUserBackupManagerService( + return createUserBackupManagerServiceAndRunTasks( context, startBackupThread(null), baseStateDir, dataDir, transportManager); } - public static UserBackupManagerService createInitializedUserBackupManagerService( + /** + * Creates an instance of {@link UserBackupManagerService} with the supplied backup thread + * {@code backupThread} and runs tasks that were posted to it during instantiation. + * + * <p>If the class-under-test is going to execute methods as the system, it's a good idea to + * also call {@link #setUpBinderCallerAndApplicationAsSystem(Application)} before this method. + */ + public static UserBackupManagerService createUserBackupManagerServiceAndRunTasks( Context context, HandlerThread backupThread, File baseStateDir, File dataDir, TransportManager transportManager) { UserBackupManagerService backupManagerService = - new UserBackupManagerService( + UserBackupManagerService.createAndInitializeService( context, new Trampoline(context), backupThread, |