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

Commit b7043a96 authored by James Lemieux's avatar James Lemieux
Browse files

Fix test cases for impending Robolectric merge

ShadowApplication.sendBroadcast(...) has been removed. Tests must call
Context.sendBroadcast(...) just like normal code.

ShadowInstrumentation now correctly models granted permissions by pid
and uid. Tests must configure them both correctly.

Bug: 121048884
Test: make -j56 RunFrameworksServicesRoboTests
Change-Id: Ib4786ddacdfbe6592d8090331eb58495aebb4b55
parent 7f244606
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -71,7 +71,6 @@ import org.robolectric.annotation.Implements;
import org.robolectric.shadows.ShadowContextWrapper;
import org.robolectric.shadows.ShadowLooper;
import org.robolectric.shadows.ShadowPackageManager;
import org.robolectric.shadows.ShadowSettings;

import java.io.File;
import java.util.List;
@@ -433,7 +432,7 @@ public class UserBackupManagerServiceTest {
    }

    private String getSettingsTransport() {
        return ShadowSettings.ShadowSecure.getString(
        return Settings.Secure.getString(
                mContext.getContentResolver(), Settings.Secure.BACKUP_TRANSPORT);
    }

+1 −4
Original line number Diff line number Diff line
@@ -134,7 +134,6 @@ import org.mockito.stubbing.Answer;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.shadows.ShadowLooper;
import org.robolectric.shadows.ShadowPackageManager;
import org.robolectric.shadows.ShadowQueuedWork;
@@ -188,7 +187,6 @@ public class KeyValueBackupTaskTest {
    private File mBaseStateDir;
    private File mDataDir;
    private Application mApplication;
    private ShadowApplication mShadowApplication;
    private Looper mMainLooper;
    private FrameworkShadowLooper mShadowMainLooper;
    private Context mContext;
@@ -200,7 +198,6 @@ public class KeyValueBackupTaskTest {
        mTransport = backupTransport();

        mApplication = RuntimeEnvironment.application;
        mShadowApplication = shadowOf(mApplication);
        mContext = mApplication;

        mMainLooper = Looper.getMainLooper();
@@ -2439,7 +2436,7 @@ public class KeyValueBackupTaskTest {
                    packageData.packageName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, 0);
            PackageInfo packageInfo = getPackageInfo(packageData);
            mShadowPackageManager.addPackage(packageInfo);
            mShadowApplication.sendBroadcast(getPackageAddedIntent(packageData));
            mContext.sendBroadcast(getPackageAddedIntent(packageData));
            // Run the backup looper because on the receiver we post MSG_SCHEDULE_BACKUP_PACKAGE
            mShadowBackupLooper.runToEndOfTasks();
            BackupAgent backupAgent = spy(BackupAgent.class);
+15 −5
Original line number Diff line number Diff line
@@ -479,8 +479,11 @@ public class ActiveRestoreSessionTest {

    @Test
    public void testRestorePackage_whenCallerIsNotPackageAndPermissionGranted() throws Exception {
        mShadowApplication.grantPermissions(android.Manifest.permission.BACKUP);
        ShadowBinder.setCallingUid(1);
        final int pid = 1211;
        final int uid = 1;
        mShadowApplication.grantPermissions(pid, uid, android.Manifest.permission.BACKUP);
        ShadowBinder.setCallingPid(pid);
        ShadowBinder.setCallingUid(uid);
        setUpPackage(PACKAGE_1, /* uid */ 2);
        when(mBackupManagerService.getAvailableRestoreToken(PACKAGE_1)).thenReturn(TOKEN_1);
        setUpTransport(mTransport);
@@ -494,8 +497,11 @@ public class ActiveRestoreSessionTest {

    @Test
    public void testRestorePackage_whenCallerIsNotPackageAndPermissionDenied() throws Exception {
        mShadowApplication.denyPermissions(android.Manifest.permission.BACKUP);
        ShadowBinder.setCallingUid(1);
        final int pid = 1211;
        final int uid = 1;
        mShadowApplication.denyPermissions(pid, uid, android.Manifest.permission.BACKUP);
        ShadowBinder.setCallingPid(pid);
        ShadowBinder.setCallingUid(uid);
        setUpPackage(PACKAGE_1, /* uid */ 2);
        when(mBackupManagerService.getAvailableRestoreToken(PACKAGE_1)).thenReturn(TOKEN_1);
        setUpTransport(mTransport);
@@ -508,7 +514,11 @@ public class ActiveRestoreSessionTest {

    @Test
    public void testRestorePackage_whenPackageNotFound() throws Exception {
        mShadowApplication.grantPermissions(android.Manifest.permission.BACKUP);
        final int pid = 1211;
        final int uid = 1;
        mShadowApplication.grantPermissions(pid, uid, android.Manifest.permission.BACKUP);
        ShadowBinder.setCallingPid(pid);
        ShadowBinder.setCallingUid(uid);
        setUpPackage(PACKAGE_1, /* uid */ 1);
        setUpTransport(mTransport);
        IRestoreSession restoreSession = createActiveRestoreSession(null, mTransport);
+6 −4
Original line number Diff line number Diff line
@@ -136,11 +136,13 @@ public class BackupManagerServiceTestUtils {
    }

    public static void setUpBinderCallerAndApplicationAsSystem(Application application) {
        ShadowBinder.setCallingUid(Process.SYSTEM_UID);
        ShadowBinder.setCallingPid(1211);
        final int uid = Process.SYSTEM_UID;
        final int pid = 1211;
        ShadowBinder.setCallingUid(uid);
        ShadowBinder.setCallingPid(pid);
        ShadowApplication shadowApplication = shadowOf(application);
        shadowApplication.grantPermissions("android.permission.BACKUP");
        shadowApplication.grantPermissions("android.permission.CONFIRM_FULL_BACKUP");
        shadowApplication.grantPermissions(pid, uid, "android.permission.BACKUP");
        shadowApplication.grantPermissions(pid, uid, "android.permission.CONFIRM_FULL_BACKUP");
    }

    /**