summaryrefslogtreecommitdiff
path: root/services/robotests/backup
diff options
context:
space:
mode:
author Ruslan Tkhakokhov <rthakohov@google.com> 2023-01-16 13:42:53 +0000
committer Ruslan Tkhakokhov <rthakohov@google.com> 2023-01-17 12:32:48 +0000
commit8094d4da907d8e2eac09c76e18063f98e0bfa288 (patch)
tree626fce76fdf34cead3461cc7c4aa666a456b88f8 /services/robotests/backup
parent8d22a5fa95d0ff92803471a47deb1195757e420e (diff)
Allow disabling framework Backup scheduling
This remerges ag/20838898 that was reverted due to breaking a robolectric test in BackupFrameworksServicesRoboTests. Test: 1. atest BackupFrameworksServicesRoboTests 2. atest CtsBackupHostTestCases Bug: 259953764 Change-Id: I11c7dbe9959f5b5d1acf53e7830b7256357768e2
Diffstat (limited to 'services/robotests/backup')
-rw-r--r--services/robotests/backup/src/com/android/server/backup/FullBackupJobTest.java40
-rw-r--r--services/robotests/backup/src/com/android/server/backup/KeyValueBackupJobTest.java40
-rw-r--r--services/robotests/backup/src/com/android/server/backup/UserBackupManagerServiceTest.java4
3 files changed, 68 insertions, 16 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();
diff --git a/services/robotests/backup/src/com/android/server/backup/UserBackupManagerServiceTest.java b/services/robotests/backup/src/com/android/server/backup/UserBackupManagerServiceTest.java
index 2878743d8a5f..02e0bbfd3519 100644
--- a/services/robotests/backup/src/com/android/server/backup/UserBackupManagerServiceTest.java
+++ b/services/robotests/backup/src/com/android/server/backup/UserBackupManagerServiceTest.java
@@ -1381,8 +1381,8 @@ public class UserBackupManagerServiceTest {
* BackupManagerConstants)} that throws an {@link IllegalArgumentException}.
*/
public static void schedule(int userId, Context ctx, long delay,
- BackupManagerConstants constants) {
- ShadowKeyValueBackupJob.schedule(userId, ctx, delay, constants);
+ UserBackupManagerService userBackupManagerService) {
+ ShadowKeyValueBackupJob.schedule(userId, ctx, delay, userBackupManagerService);
throw new IllegalArgumentException();
}
}