summaryrefslogtreecommitdiff
path: root/services/robotests/backup
diff options
context:
space:
mode:
author Andrea Zilio <azilio@google.com> 2023-01-03 18:48:43 +0000
committer Andrea Zilio <azilio@google.com> 2023-01-13 12:06:48 +0000
commit748c64d9dd728cdbaf8004c8be1b4f372c4cd624 (patch)
tree2f68915689428bfdd3c45ea23f88c6491ee06da5 /services/robotests/backup
parentf3506e6c51bdc99cf5ff61b3aeb47f1072477721 (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.java40
-rw-r--r--services/robotests/backup/src/com/android/server/backup/KeyValueBackupJobTest.java40
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();