Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7e5b99b3 authored by Chandan Nath's avatar Chandan Nath Committed by Android (Google) Code Review
Browse files

Merge "isBackupServiceActive should not depend on whether the user is started"

parents d94078e8 4fe554ae
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -395,7 +395,7 @@ public class Trampoline extends IBackupManager.Stub {
    @Override
    public boolean isBackupServiceActive(int userId) {
        synchronized (mStateLock) {
            return isUserReadyForBackup(userId);
            return mService != null && isBackupActivatedForUser(userId);
        }
    }

+36 −10
Original line number Diff line number Diff line
@@ -95,6 +95,7 @@ public class TrampolineTest {
            new ComponentName("package2", "class2")
    };
    private static final int NON_USER_SYSTEM = UserHandle.USER_SYSTEM + 1;
    private static final int UNSTARTED_NON_USER_SYSTEM = UserHandle.USER_SYSTEM + 2;

    @UserIdInt
    private int mUserId;
@@ -126,8 +127,6 @@ public class TrampolineTest {
    private TrampolineTestable mTrampoline;
    private File mTestDir;
    private File mSuppressFile;
    private File mActivatedFile;
    private File mRememberActivatedFile;

    @Before
    public void setUp() throws Exception {
@@ -141,6 +140,7 @@ public class TrampolineTest {

        when(mUserManagerMock.getUserInfo(UserHandle.USER_SYSTEM)).thenReturn(mUserInfoMock);
        when(mUserManagerMock.getUserInfo(NON_USER_SYSTEM)).thenReturn(mUserInfoMock);
        when(mUserManagerMock.getUserInfo(UNSTARTED_NON_USER_SYSTEM)).thenReturn(mUserInfoMock);

        TrampolineTestable.sBackupManagerServiceMock = mBackupManagerServiceMock;
        TrampolineTestable.sCallingUserId = UserHandle.USER_SYSTEM;
@@ -154,18 +154,31 @@ public class TrampolineTest {
        mSuppressFile = new File(mTestDir, "suppress");
        TrampolineTestable.sSuppressFile = mSuppressFile;

        mActivatedFile = new File(mTestDir, "activate-" + NON_USER_SYSTEM);
        TrampolineTestable.sActivatedFiles.append(NON_USER_SYSTEM, mActivatedFile);
        mRememberActivatedFile = new File(mTestDir, "rem-activate-" + NON_USER_SYSTEM);
        TrampolineTestable.sRememberActivatedFiles.append(NON_USER_SYSTEM, mRememberActivatedFile);
        setUpStateFilesForNonSystemUser(NON_USER_SYSTEM);
        setUpStateFilesForNonSystemUser(UNSTARTED_NON_USER_SYSTEM);

        mTrampoline = new TrampolineTestable(mContextMock);
    }

    private void setUpStateFilesForNonSystemUser(int userId) {
        File activatedFile = new File(mTestDir, "activate-" + userId);
        TrampolineTestable.sActivatedFiles.append(userId, activatedFile);
        File rememberActivatedFile = new File(mTestDir, "rem-activate-" + userId);
        TrampolineTestable.sRememberActivatedFiles.append(userId, rememberActivatedFile);
    }

    @After
    public void tearDown() throws Exception {
        mSuppressFile.delete();
        mActivatedFile.delete();
        deleteFiles(TrampolineTestable.sActivatedFiles);
        deleteFiles(TrampolineTestable.sRememberActivatedFiles);
    }

    private void deleteFiles(SparseArray<File> files) {
        int numFiles = files.size();
        for (int i = 0; i < numFiles; i++) {
            files.valueAt(i).delete();
        }
    }

    @Test
@@ -244,6 +257,16 @@ public class TrampolineTest {
        assertTrue(mTrampoline.isBackupServiceActive(NON_USER_SYSTEM));
    }

    @Test
    public void
            isBackupServiceActive_forUnstartedNonSystemUser_returnsTrueWhenSystemAndUserActivated()
            throws Exception {
        mTrampoline.initializeService();
        mTrampoline.setBackupServiceActive(UNSTARTED_NON_USER_SYSTEM, true);

        assertTrue(mTrampoline.isBackupServiceActive(UNSTARTED_NON_USER_SYSTEM));
    }

    @Test
    public void setBackupServiceActive_forSystemUserAndCallerSystemUid_serviceCreated() {
        mTrampoline.initializeService();
@@ -421,7 +444,8 @@ public class TrampolineTest {

        mTrampoline.setBackupServiceActive(NON_USER_SYSTEM, true);

        assertTrue(RandomAccessFileUtils.readBoolean(mRememberActivatedFile, false));
        assertTrue(RandomAccessFileUtils.readBoolean(
                TrampolineTestable.sRememberActivatedFiles.get(NON_USER_SYSTEM), false));
    }

    @Test
@@ -430,7 +454,8 @@ public class TrampolineTest {

        mTrampoline.setBackupServiceActive(NON_USER_SYSTEM, false);

        assertFalse(RandomAccessFileUtils.readBoolean(mRememberActivatedFile, true));
        assertFalse(RandomAccessFileUtils.readBoolean(
                TrampolineTestable.sRememberActivatedFiles.get(NON_USER_SYSTEM), true));
    }

    @Test
@@ -440,7 +465,8 @@ public class TrampolineTest {
        mTrampoline.setBackupServiceActive(NON_USER_SYSTEM, true);
        mTrampoline.setBackupServiceActive(NON_USER_SYSTEM, false);

        assertFalse(RandomAccessFileUtils.readBoolean(mRememberActivatedFile, true));
        assertFalse(RandomAccessFileUtils.readBoolean(
                TrampolineTestable.sRememberActivatedFiles.get(NON_USER_SYSTEM), true));
    }

    @Test