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: utzcoz <utzcoz@gmail.com>
This commit is contained in:
utzcoz
2020-06-26 14:13:07 +08:00
parent e2ddd9d277
commit 8d16e1b7de

View File

@@ -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);