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

Commit 8d16e1b7 authored by utzcoz's avatar utzcoz
Browse files

Fix failed tests for ApplicationPackageManagerTest



The getPackageCandidateVolumes of ApplicationPackageManager is protected
and @VisibleForTest, but ApplicationPackageManagerTest uses
MockApplicationPackageManager to extend it, and @VisibleForTest is lost
after extending. So this patch just adds override for this method, and
adds @VisibleForTest back for it.

Also, the Mockito.anyString() for isPackageDeviceAdminOnAnyUser mock
doesn't work correctly, so this patch replace it with real input
parameter - appInfo.packageName.

Test: atest android.app.ApplicationPackageManagerTest

Change-Id: I9261a432911756a48978a7028781e60039cb4c85
Signed-off-by: default avatarutzcoz <utzcoz@gmail.com>
parent e2ddd9d2
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -26,8 +26,11 @@ import android.content.pm.PackageInfo;
import android.os.storage.StorageManager;
import android.os.storage.VolumeInfo;

import androidx.annotation.NonNull;
import androidx.test.filters.LargeTest;

import com.android.internal.annotations.VisibleForTesting;

import junit.framework.TestCase;

import org.mockito.Mockito;
@@ -110,6 +113,13 @@ public class ApplicationPackageManagerTest extends TestCase {
        public boolean isAllow3rdPartyOnInternal(Context context) {
            return mAllow3rdPartyOnInternal;
        }

        @Override
        @VisibleForTesting
        protected @NonNull List<VolumeInfo> getPackageCandidateVolumes(ApplicationInfo app,
                StorageManager storageManager, IPackageManager pm) {
            return super.getPackageCandidateVolumes(app, storageManager, pm);
        }
    }

    private StorageManager getMockedStorageManager() {
@@ -223,7 +233,7 @@ public class ApplicationPackageManagerTest extends TestCase {
            appInfo.flags = 0;

            appInfo.volumeUuid = sInternalVolUuid;
            Mockito.when(pm.isPackageDeviceAdminOnAnyUser(Mockito.anyString())).thenReturn(false);
            Mockito.when(pm.isPackageDeviceAdminOnAnyUser(appInfo.packageName)).thenReturn(false);
            appPkgMgr.setAllow3rdPartyOnInternal(true);
            List<VolumeInfo> candidates = appPkgMgr.getPackageCandidateVolumes(
                    appInfo, storageManager, pm);
@@ -231,7 +241,7 @@ public class ApplicationPackageManagerTest extends TestCase {

            appInfo.volumeUuid = sInternalVolUuid;
            appPkgMgr.setAllow3rdPartyOnInternal(true);
            Mockito.when(pm.isPackageDeviceAdminOnAnyUser(Mockito.anyString())).thenReturn(true);
            Mockito.when(pm.isPackageDeviceAdminOnAnyUser(appInfo.packageName)).thenReturn(true);
            candidates = appPkgMgr.getPackageCandidateVolumes(appInfo, storageManager, pm);
            verifyReturnedVolumes(candidates, sInternalVol);