diff options
author | 2023-01-03 18:48:43 +0000 | |
---|---|---|
committer | 2023-01-13 12:06:48 +0000 | |
commit | 748c64d9dd728cdbaf8004c8be1b4f372c4cd624 (patch) | |
tree | 2f68915689428bfdd3c45ea23f88c6491ee06da5 /services/robotests/backup | |
parent | f3506e6c51bdc99cf5ff61b3aeb47f1072477721 (diff) |
- Allow disabling framework Backup scheduling
Test: atest implemented and passing, to be sent in separate commit
Bug: 259953764
Change-Id: I33be1b5907a6c2a0dd08c31ba3401d28fac02b35
Diffstat (limited to 'services/robotests/backup')
-rw-r--r-- | services/robotests/backup/src/com/android/server/backup/FullBackupJobTest.java | 40 | ||||
-rw-r--r-- | services/robotests/backup/src/com/android/server/backup/KeyValueBackupJobTest.java | 40 |
2 files changed, 66 insertions, 14 deletions
diff --git a/services/robotests/backup/src/com/android/server/backup/FullBackupJobTest.java b/services/robotests/backup/src/com/android/server/backup/FullBackupJobTest.java index dbc0da707477..c8797e25b740 100644 --- a/services/robotests/backup/src/com/android/server/backup/FullBackupJobTest.java +++ b/services/robotests/backup/src/com/android/server/backup/FullBackupJobTest.java @@ -18,6 +18,8 @@ package com.android.server.backup; import static com.google.common.truth.Truth.assertThat; +import static org.mockito.Mockito.when; + import android.annotation.UserIdInt; import android.app.job.JobScheduler; import android.content.Context; @@ -31,6 +33,8 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.Shadows; @@ -45,14 +49,20 @@ public class FullBackupJobTest { private BackupManagerConstants mConstants; private ShadowJobScheduler mShadowJobScheduler; + @Mock + private UserBackupManagerService mUserBackupManagerService; + @UserIdInt private int mUserOneId; @UserIdInt private int mUserTwoId; @Before public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); mContext = RuntimeEnvironment.application; mConstants = new BackupManagerConstants(Handler.getMain(), mContext.getContentResolver()); mConstants.start(); + when(mUserBackupManagerService.getConstants()).thenReturn(mConstants); + when(mUserBackupManagerService.isFrameworkSchedulingEnabled()).thenReturn(true); mShadowJobScheduler = Shadows.shadowOf(mContext.getSystemService(JobScheduler.class)); @@ -69,8 +79,8 @@ public class FullBackupJobTest { @Test public void testSchedule_afterScheduling_jobExists() { - FullBackupJob.schedule(mUserOneId, mContext, 0, mConstants); - FullBackupJob.schedule(mUserTwoId, mContext, 0, mConstants); + FullBackupJob.schedule(mUserOneId, mContext, 0, mUserBackupManagerService); + FullBackupJob.schedule(mUserTwoId, mContext, 0, mUserBackupManagerService); assertThat(mShadowJobScheduler.getPendingJob(getJobIdForUserId(mUserOneId))).isNotNull(); assertThat(mShadowJobScheduler.getPendingJob(getJobIdForUserId(mUserTwoId))).isNotNull(); @@ -78,18 +88,34 @@ public class FullBackupJobTest { @Test public void testCancel_afterCancelling_jobDoesntExist() { - FullBackupJob.schedule(mUserOneId, mContext, 0, mConstants); - FullBackupJob.schedule(mUserTwoId, mContext, 0, mConstants); + FullBackupJob.schedule(mUserOneId, mContext, 0, mUserBackupManagerService); + FullBackupJob.schedule(mUserTwoId, mContext, 0, mUserBackupManagerService); FullBackupJob.cancel(mUserOneId, mContext); FullBackupJob.cancel(mUserTwoId, mContext); assertThat(mShadowJobScheduler.getPendingJob(getJobIdForUserId(mUserOneId))).isNull(); assertThat(mShadowJobScheduler.getPendingJob(getJobIdForUserId(mUserTwoId))).isNull(); } + + @Test + public void testSchedule_isNoopIfDisabled() { + when(mUserBackupManagerService.isFrameworkSchedulingEnabled()).thenReturn(false); + FullBackupJob.schedule(mUserOneId, mContext, 0, mUserBackupManagerService); + + assertThat(mShadowJobScheduler.getPendingJob(getJobIdForUserId(mUserOneId))).isNull(); + } + + @Test + public void testSchedule_schedulesJobIfEnabled() { + when(mUserBackupManagerService.isFrameworkSchedulingEnabled()).thenReturn(true); + FullBackupJob.schedule(mUserOneId, mContext, 0, mUserBackupManagerService); + + assertThat(mShadowJobScheduler.getPendingJob(getJobIdForUserId(mUserOneId))).isNotNull(); + } // @Test public void testSchedule_onlySchedulesForRequestedUser() { - FullBackupJob.schedule(mUserOneId, mContext, 0, mConstants); + FullBackupJob.schedule(mUserOneId, mContext, 0, mUserBackupManagerService); assertThat(mShadowJobScheduler.getPendingJob(getJobIdForUserId(mUserOneId))).isNotNull(); assertThat(mShadowJobScheduler.getPendingJob(getJobIdForUserId(mUserTwoId))).isNull(); @@ -97,8 +123,8 @@ public class FullBackupJobTest { // @Test public void testCancel_onlyCancelsForRequestedUser() { - FullBackupJob.schedule(mUserOneId, mContext, 0, mConstants); - FullBackupJob.schedule(mUserTwoId, mContext, 0, mConstants); + FullBackupJob.schedule(mUserOneId, mContext, 0, mUserBackupManagerService); + FullBackupJob.schedule(mUserTwoId, mContext, 0, mUserBackupManagerService); FullBackupJob.cancel(mUserOneId, mContext); assertThat(mShadowJobScheduler.getPendingJob(getJobIdForUserId(mUserOneId))).isNull(); diff --git a/services/robotests/backup/src/com/android/server/backup/KeyValueBackupJobTest.java b/services/robotests/backup/src/com/android/server/backup/KeyValueBackupJobTest.java index 1c5fac28de3c..712ac55d2ff5 100644 --- a/services/robotests/backup/src/com/android/server/backup/KeyValueBackupJobTest.java +++ b/services/robotests/backup/src/com/android/server/backup/KeyValueBackupJobTest.java @@ -18,6 +18,8 @@ package com.android.server.backup; import static com.google.common.truth.Truth.assertThat; +import static org.mockito.Mockito.when; + import android.annotation.UserIdInt; import android.content.Context; import android.os.Handler; @@ -30,6 +32,8 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; @@ -41,14 +45,20 @@ public class KeyValueBackupJobTest { private Context mContext; private BackupManagerConstants mConstants; + @Mock + private UserBackupManagerService mUserBackupManagerService; + @UserIdInt private int mUserOneId; @UserIdInt private int mUserTwoId; @Before public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); mContext = RuntimeEnvironment.application; mConstants = new BackupManagerConstants(Handler.getMain(), mContext.getContentResolver()); mConstants.start(); + when(mUserBackupManagerService.getConstants()).thenReturn(mConstants); + when(mUserBackupManagerService.isFrameworkSchedulingEnabled()).thenReturn(true); mUserOneId = UserHandle.USER_SYSTEM; mUserTwoId = mUserOneId + 1; @@ -62,6 +72,22 @@ public class KeyValueBackupJobTest { } @Test + public void testSchedule_isNoopIfDisabled() { + when(mUserBackupManagerService.isFrameworkSchedulingEnabled()).thenReturn(false); + KeyValueBackupJob.schedule(mUserOneId, mContext, mUserBackupManagerService); + + assertThat(KeyValueBackupJob.isScheduled(mUserOneId)).isFalse(); + } + + @Test + public void testSchedule_schedulesJobIfEnabled() { + when(mUserBackupManagerService.isFrameworkSchedulingEnabled()).thenReturn(true); + KeyValueBackupJob.schedule(mUserOneId, mContext, mUserBackupManagerService); + + assertThat(KeyValueBackupJob.isScheduled(mUserOneId)).isTrue(); + } + + @Test public void testIsScheduled_beforeScheduling_returnsFalse() { assertThat(KeyValueBackupJob.isScheduled(mUserOneId)).isFalse(); assertThat(KeyValueBackupJob.isScheduled(mUserTwoId)).isFalse(); @@ -69,8 +95,8 @@ public class KeyValueBackupJobTest { @Test public void testIsScheduled_afterScheduling_returnsTrue() { - KeyValueBackupJob.schedule(mUserOneId, mContext, mConstants); - KeyValueBackupJob.schedule(mUserTwoId, mContext, mConstants); + KeyValueBackupJob.schedule(mUserOneId, mContext, mUserBackupManagerService); + KeyValueBackupJob.schedule(mUserTwoId, mContext, mUserBackupManagerService); assertThat(KeyValueBackupJob.isScheduled(mUserOneId)).isTrue(); assertThat(KeyValueBackupJob.isScheduled(mUserTwoId)).isTrue(); @@ -78,8 +104,8 @@ public class KeyValueBackupJobTest { @Test public void testIsScheduled_afterCancelling_returnsFalse() { - KeyValueBackupJob.schedule(mUserOneId, mContext, mConstants); - KeyValueBackupJob.schedule(mUserTwoId, mContext, mConstants); + KeyValueBackupJob.schedule(mUserOneId, mContext, mUserBackupManagerService); + KeyValueBackupJob.schedule(mUserTwoId, mContext, mUserBackupManagerService); KeyValueBackupJob.cancel(mUserOneId, mContext); KeyValueBackupJob.cancel(mUserTwoId, mContext); @@ -89,7 +115,7 @@ public class KeyValueBackupJobTest { @Test public void testIsScheduled_afterScheduling_returnsTrueOnlyForScheduledUser() { - KeyValueBackupJob.schedule(mUserOneId, mContext, mConstants); + KeyValueBackupJob.schedule(mUserOneId, mContext, mUserBackupManagerService); assertThat(KeyValueBackupJob.isScheduled(mUserOneId)).isTrue(); assertThat(KeyValueBackupJob.isScheduled(mUserTwoId)).isFalse(); @@ -97,8 +123,8 @@ public class KeyValueBackupJobTest { @Test public void testIsScheduled_afterCancelling_returnsFalseOnlyForCancelledUser() { - KeyValueBackupJob.schedule(mUserOneId, mContext, mConstants); - KeyValueBackupJob.schedule(mUserTwoId, mContext, mConstants); + KeyValueBackupJob.schedule(mUserOneId, mContext, mUserBackupManagerService); + KeyValueBackupJob.schedule(mUserTwoId, mContext, mUserBackupManagerService); KeyValueBackupJob.cancel(mUserOneId, mContext); assertThat(KeyValueBackupJob.isScheduled(mUserOneId)).isFalse(); |