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

Commit 997c6f75 authored by Songchun Fan's avatar Songchun Fan
Browse files

[pm] small refactor for InstallLocationUtils

+ Renaming to reflect the actual functionality of the class.

+ Move freeStorage related code to PackageManagerService, we will want
to clean that up later.

BUG: 198177734
Test: atest InstallLocationUtilsTest
Change-Id: I951129ffb5e53df548ef78fcd9de79c0ef994914
parent 92a9e6a0
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@ import android.os.Build;
import android.os.Parcel;
import android.os.Parcelable;

import com.android.internal.content.PackageHelper;
import com.android.internal.content.InstallLocationUtils;

/**
 * Basic information about a package as specified in its manifest.
@@ -80,10 +80,10 @@ public class PackageInfoLite implements Parcelable {

    /**
     * Specifies the recommended install location. Can be one of
     * {@link PackageHelper#RECOMMEND_INSTALL_INTERNAL} to install on internal storage,
     * {@link PackageHelper#RECOMMEND_INSTALL_EXTERNAL} to install on external media,
     * {@link PackageHelper#RECOMMEND_FAILED_INSUFFICIENT_STORAGE} for storage errors,
     * or {@link PackageHelper#RECOMMEND_FAILED_INVALID_APK} for parse errors.
     * {@link InstallLocationUtils#RECOMMEND_INSTALL_INTERNAL} to install on internal storage,
     * {@link InstallLocationUtils#RECOMMEND_INSTALL_EXTERNAL} to install on external media,
     * {@link InstallLocationUtils#RECOMMEND_FAILED_INSUFFICIENT_STORAGE} for storage errors,
     * or {@link InstallLocationUtils#RECOMMEND_FAILED_INVALID_APK} for parse errors.
     */
    public int recommendedInstallLocation;
    public int installLocation;
+58 −24
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.internal.content;

import static android.content.pm.PackageManager.INSTALL_SUCCEEDED;
import static android.os.storage.VolumeInfo.ID_PRIVATE_INTERNAL;

import android.content.Context;
@@ -53,7 +54,7 @@ import java.util.UUID;
 * and media container service transports.
 * Some utility methods to invoke StorageManagerService api.
 */
public class PackageHelper {
public class InstallLocationUtils {
    public static final int RECOMMEND_INSTALL_INTERNAL = 1;
    public static final int RECOMMEND_INSTALL_EXTERNAL = 2;
    public static final int RECOMMEND_INSTALL_EPHEMERAL = 3;
@@ -89,9 +90,13 @@ public class PackageHelper {
     */
    public static abstract class TestableInterface {
        abstract public StorageManager getStorageManager(Context context);

        abstract public boolean getForceAllowOnExternalSetting(Context context);

        abstract public boolean getAllow3rdPartyOnInternalConfig(Context context);

        abstract public ApplicationInfo getExistingAppInfo(Context context, String packageName);

        abstract public File getDataDirectory();
    }

@@ -150,7 +155,7 @@ public class PackageHelper {
    /**
     * Given a requested {@link PackageInfo#installLocation} and calculated
     * install size, pick the actual volume to install the app. Only considers
     * internal and private volumes, and prefers to keep an existing package on
     * internal and private volumes, and prefers to keep an existing package onocation
     * its current volume.
     *
     * @return the {@link VolumeInfo#fsUuid} to install onto, or {@code null}
@@ -316,21 +321,6 @@ public class PackageHelper {
                && params.sizeBytes <= storage.getStorageBytesUntilLow(primary.getPathFile());
    }

    @Deprecated
    public static int resolveInstallLocation(Context context, String packageName,
            int installLocation, long sizeBytes, int installFlags) {
        final SessionParams params = new SessionParams(SessionParams.MODE_INVALID);
        params.appPackageName = packageName;
        params.installLocation = installLocation;
        params.sizeBytes = sizeBytes;
        params.installFlags = installFlags;
        try {
            return resolveInstallLocation(context, params);
        } catch (IOException e) {
            throw new IllegalStateException(e);
        }
    }

    /**
     * Given a requested {@link PackageInfo#installLocation} and calculated
     * install size, pick the actual location to install the app.
@@ -393,24 +383,24 @@ public class PackageHelper {
            // and will fall through to return INSUFFICIENT_STORAGE
            if (fitsOnInternal) {
                return (ephemeral)
                        ? PackageHelper.RECOMMEND_INSTALL_EPHEMERAL
                        : PackageHelper.RECOMMEND_INSTALL_INTERNAL;
                        ? InstallLocationUtils.RECOMMEND_INSTALL_EPHEMERAL
                        : InstallLocationUtils.RECOMMEND_INSTALL_INTERNAL;
            }
        } else if (prefer == RECOMMEND_INSTALL_EXTERNAL) {
            if (fitsOnExternal) {
                return PackageHelper.RECOMMEND_INSTALL_EXTERNAL;
                return InstallLocationUtils.RECOMMEND_INSTALL_EXTERNAL;
            }
        }

        if (checkBoth) {
            if (fitsOnInternal) {
                return PackageHelper.RECOMMEND_INSTALL_INTERNAL;
                return InstallLocationUtils.RECOMMEND_INSTALL_INTERNAL;
            } else if (fitsOnExternal) {
                return PackageHelper.RECOMMEND_INSTALL_EXTERNAL;
                return InstallLocationUtils.RECOMMEND_INSTALL_EXTERNAL;
            }
        }

        return PackageHelper.RECOMMEND_FAILED_INSUFFICIENT_STORAGE;
        return InstallLocationUtils.RECOMMEND_FAILED_INSUFFICIENT_STORAGE;
    }

    @Deprecated
@@ -476,4 +466,48 @@ public class PackageHelper {
            return 0;
        }
    }

    public static int installLocationPolicy(int installLocation, int recommendedInstallLocation,
            int installFlags, boolean installedPkgIsSystem, boolean installedPackageOnExternal) {
        if ((installFlags & PackageManager.INSTALL_REPLACE_EXISTING) == 0) {
            // Invalid install. Return error code
            return RECOMMEND_FAILED_ALREADY_EXISTS;
        }
        // Check for updated system application.
        if (installedPkgIsSystem) {
            return RECOMMEND_INSTALL_INTERNAL;
        }
        // If current upgrade specifies particular preference
        if (installLocation == PackageInfo.INSTALL_LOCATION_INTERNAL_ONLY) {
            // Application explicitly specified internal.
            return RECOMMEND_INSTALL_INTERNAL;
        } else if (installLocation == PackageInfo.INSTALL_LOCATION_PREFER_EXTERNAL) {
            // App explicitly prefers external. Let policy decide
            return recommendedInstallLocation;
        } else {
            // Prefer previous location
            if (installedPackageOnExternal) {
                return RECOMMEND_INSTALL_EXTERNAL;
            }
            return RECOMMEND_INSTALL_INTERNAL;
        }
    }

    public static int getInstallationErrorCode(int loc) {
        if (loc == RECOMMEND_FAILED_INVALID_LOCATION) {
            return PackageManager.INSTALL_FAILED_INVALID_INSTALL_LOCATION;
        } else if (loc == RECOMMEND_FAILED_ALREADY_EXISTS) {
            return PackageManager.INSTALL_FAILED_ALREADY_EXISTS;
        } else if (loc == RECOMMEND_FAILED_INSUFFICIENT_STORAGE) {
            return PackageManager.INSTALL_FAILED_INSUFFICIENT_STORAGE;
        } else if (loc == RECOMMEND_FAILED_INVALID_APK) {
            return PackageManager.INSTALL_FAILED_INVALID_APK;
        } else if (loc == RECOMMEND_FAILED_INVALID_URI) {
            return PackageManager.INSTALL_FAILED_INVALID_URI;
        } else if (loc == RECOMMEND_MEDIA_UNAVAILABLE) {
            return PackageManager.INSTALL_FAILED_MEDIA_UNAVAILABLE;
        } else {
            return INSTALL_SUCCEEDED;
        }
    }
}
+41 −39
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@ import android.platform.test.annotations.Presubmit;
import android.test.AndroidTestCase;
import android.util.Log;

import com.android.internal.content.PackageHelper;
import com.android.internal.content.InstallLocationUtils;

import org.mockito.Mockito;

@@ -36,10 +36,9 @@ import java.util.List;
import java.util.UUID;

@Presubmit
public class PackageHelperTests extends AndroidTestCase {
public class InstallLocationUtilsTests extends AndroidTestCase {
    private static final boolean localLOGV = true;
    public static final String TAG = "PackageHelperTests";
    protected final String PREFIX = "android.content.pm";

    private static final String sInternalVolPath = "/data";
    private static final String sAdoptedVolPath = "/mnt/expand/123";
@@ -88,11 +87,14 @@ public class PackageHelperTests extends AndroidTestCase {
        UUID internalUuid = UUID.randomUUID();
        UUID adoptedUuid = UUID.randomUUID();
        UUID publicUuid = UUID.randomUUID();
        Mockito.when(storageManager.getStorageBytesUntilLow(internalFile)).thenReturn(sInternalSize);
        Mockito.when(storageManager.getStorageBytesUntilLow(internalFile))
                .thenReturn(sInternalSize);
        Mockito.when(storageManager.getStorageBytesUntilLow(adoptedFile)).thenReturn(sAdoptedSize);
        Mockito.when(storageManager.getStorageBytesUntilLow(publicFile)).thenReturn(sPublicSize);
        Mockito.when(storageManager.getUuidForPath(Mockito.eq(internalFile))).thenReturn(internalUuid);
        Mockito.when(storageManager.getUuidForPath(Mockito.eq(adoptedFile))).thenReturn(adoptedUuid);
        Mockito.when(storageManager.getUuidForPath(Mockito.eq(internalFile)))
                .thenReturn(internalUuid);
        Mockito.when(storageManager.getUuidForPath(Mockito.eq(adoptedFile)))
                .thenReturn(adoptedUuid);
        Mockito.when(storageManager.getUuidForPath(Mockito.eq(publicFile))).thenReturn(publicUuid);
        Mockito.when(storageManager.getAllocatableBytes(Mockito.eq(internalUuid), Mockito.anyInt()))
                .thenReturn(sInternalSize);
@@ -103,7 +105,7 @@ public class PackageHelperTests extends AndroidTestCase {
        return storageManager;
    }

    private static final class MockedInterface extends PackageHelper.TestableInterface {
    private static final class MockedInterface extends InstallLocationUtils.TestableInterface {
        private boolean mForceAllowOnExternal = false;
        private boolean mAllow3rdPartyOnInternal = true;
        private ApplicationInfo mApplicationInfo = null;
@@ -164,25 +166,25 @@ public class PackageHelperTests extends AndroidTestCase {
        mockedInterface.setMockValues(systemAppInfo, false /*force allow on external*/,
                true /*allow 3rd party on internal*/);
        String volume = null;
        volume = PackageHelper.resolveInstallVolume(getContext(), "package.name",
        volume = InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
            1 /*install location*/, 1000 /*size bytes*/, mockedInterface);
        assertEquals(StorageManager.UUID_PRIVATE_INTERNAL, volume);

        mockedInterface.setMockValues(systemAppInfo, true /*force allow on external*/,
                true /*allow 3rd party on internal*/);
        volume = PackageHelper.resolveInstallVolume(getContext(), "package.name",
        volume = InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
                1 /*install location*/, 1000 /*size bytes*/, mockedInterface);
        assertEquals(StorageManager.UUID_PRIVATE_INTERNAL, volume);

        mockedInterface.setMockValues(systemAppInfo, false /*force allow on external*/,
                false /*allow 3rd party on internal*/);
        volume = PackageHelper.resolveInstallVolume(getContext(), "package.name",
        volume = InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
                1 /*install location*/, 1000 /*size bytes*/, mockedInterface);
        assertEquals(StorageManager.UUID_PRIVATE_INTERNAL, volume);

        mockedInterface.setMockValues(systemAppInfo, true /*force allow on external*/,
                false /*allow 3rd party on internal*/);
        volume = PackageHelper.resolveInstallVolume(getContext(), "package.name",
        volume = InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
                1 /*install location*/, 1000 /*size bytes*/, mockedInterface);
        assertEquals(StorageManager.UUID_PRIVATE_INTERNAL, volume);

@@ -192,7 +194,7 @@ public class PackageHelperTests extends AndroidTestCase {
        mockedInterface.setMockValues(systemAppInfo, true /*force allow on external*/,
                true /*allow 3rd party on internal*/);
        try {
            PackageHelper.resolveInstallVolume(getContext(), "package.name",
            InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
                    1 /*install location*/, 1000000 /*size bytes*/, mockedInterface);
            fail("Expected exception in resolveInstallVolume was not thrown");
        } catch(IOException e) {
@@ -202,7 +204,7 @@ public class PackageHelperTests extends AndroidTestCase {
        mockedInterface.setMockValues(systemAppInfo, false /*force allow on external*/,
                true /*allow 3rd party on internal*/);
        try {
            PackageHelper.resolveInstallVolume(getContext(), "package.name",
            InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
                    1 /*install location*/, 1000000 /*size bytes*/, mockedInterface);
            fail("Expected exception in resolveInstallVolume was not thrown");
        } catch(IOException e) {
@@ -212,7 +214,7 @@ public class PackageHelperTests extends AndroidTestCase {
        mockedInterface.setMockValues(systemAppInfo, false /*force allow on external*/,
                false /*allow 3rd party on internal*/);
        try {
            PackageHelper.resolveInstallVolume(getContext(), "package.name",
            InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
                    1 /*install location*/, 1000000 /*size bytes*/, mockedInterface);
            fail("Expected exception in resolveInstallVolume was not thrown");
        } catch(IOException e) {
@@ -222,7 +224,7 @@ public class PackageHelperTests extends AndroidTestCase {
        mockedInterface.setMockValues(systemAppInfo, true /*force allow on external*/,
                false /*allow 3rd party on internal*/);
        try {
            PackageHelper.resolveInstallVolume(getContext(), "package.name",
            InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
                    1 /*install location*/, 1000000 /*size bytes*/, mockedInterface);
            fail("Expected exception in resolveInstallVolume was not thrown");
        } catch(IOException e) {
@@ -240,13 +242,13 @@ public class PackageHelperTests extends AndroidTestCase {
        mockedInterface.setMockValues(appInfo, false /*force allow on external*/,
                true /*allow 3rd party on internal*/);
        String volume = null;
        volume = PackageHelper.resolveInstallVolume(getContext(), "package.name",
        volume = InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
                0 /*install location*/, 1000 /*size bytes*/, mockedInterface);
        assertEquals(sInternalVolUuid, volume);

        mockedInterface.setMockValues(appInfo, true /*force allow on external*/,
                true /*allow 3rd party on internal*/);
        volume = PackageHelper.resolveInstallVolume(getContext(), "package.name",
        volume = InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
                0 /*install location*/, 1000 /*size bytes*/, mockedInterface);
        assertEquals(sInternalVolUuid, volume);
    }
@@ -260,25 +262,25 @@ public class PackageHelperTests extends AndroidTestCase {
        appInfo.volumeUuid = sAdoptedVolUuid;
        mockedInterface.setMockValues(appInfo, false /*force allow on external*/,
                true /*allow 3rd party on internal*/);
        volume = PackageHelper.resolveInstallVolume(getContext(), "package.name",
        volume = InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
            0 /*install location*/, 1000 /*size bytes*/, mockedInterface);
        assertEquals(sAdoptedVolUuid, volume);

        mockedInterface.setMockValues(appInfo, true /*force allow on external*/,
                true /*allow 3rd party on internal*/);
        volume = PackageHelper.resolveInstallVolume(getContext(), "package.name",
        volume = InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
                0 /*install location*/, 1000 /*size bytes*/, mockedInterface);
        assertEquals(sAdoptedVolUuid, volume);

        mockedInterface.setMockValues(appInfo, false /*force allow on external*/,
                false /*allow 3rd party on internal*/);
        volume = PackageHelper.resolveInstallVolume(getContext(), "package.name",
        volume = InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
                0 /*install location*/, 1000 /*size bytes*/, mockedInterface);
        assertEquals(sAdoptedVolUuid, volume);

        mockedInterface.setMockValues(appInfo, true /*force allow on external*/,
                false /*allow 3rd party on internal*/);
        volume = PackageHelper.resolveInstallVolume(getContext(), "package.name",
        volume = InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
                0 /*install location*/, 1000 /*size bytes*/, mockedInterface);
        assertEquals(sAdoptedVolUuid, volume);
    }
@@ -292,7 +294,7 @@ public class PackageHelperTests extends AndroidTestCase {
        mockedInterface.setMockValues(appInfo, false /*force allow on external*/,
                true /*allow 3rd party on internal*/);
        try {
            PackageHelper.resolveInstallVolume(getContext(), "package.name",
            InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
                    0 /*install location*/, 10000001 /*BIG size, won't fit*/, mockedInterface);
            fail("Expected exception was not thrown " + appInfo.volumeUuid);
        } catch (IOException e) {
@@ -302,7 +304,7 @@ public class PackageHelperTests extends AndroidTestCase {
        mockedInterface.setMockValues(appInfo, false /*force allow on external*/,
                false /*allow 3rd party on internal*/);
        try {
            PackageHelper.resolveInstallVolume(getContext(), "package.name",
            InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
                    0 /*install location*/, 10000001 /*BIG size, won't fit*/, mockedInterface);
            fail("Expected exception was not thrown " + appInfo.volumeUuid);
        } catch (IOException e) {
@@ -312,7 +314,7 @@ public class PackageHelperTests extends AndroidTestCase {
        mockedInterface.setMockValues(appInfo, true /*force allow on external*/,
                false /*allow 3rd party on internal*/);
        try {
            PackageHelper.resolveInstallVolume(getContext(), "package.name",
            InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
                    0 /*install location*/, 10000001 /*BIG size, won't fit*/, mockedInterface);
            fail("Expected exception was not thrown " + appInfo.volumeUuid);
        } catch (IOException e) {
@@ -322,7 +324,7 @@ public class PackageHelperTests extends AndroidTestCase {
        mockedInterface.setMockValues(appInfo, true /*force allow on external*/,
                true /*allow 3rd party on internal*/);
        try {
            PackageHelper.resolveInstallVolume(getContext(), "package.name",
            InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
                    0 /*install location*/, 10000001 /*BIG size, won't fit*/, mockedInterface);
            fail("Expected exception was not thrown " + appInfo.volumeUuid);
        } catch (IOException e) {
@@ -336,28 +338,28 @@ public class PackageHelperTests extends AndroidTestCase {
        mockedInterface.setMockValues(appInfo, false /*force allow on external*/,
                true /*allow 3rd party on internal*/);
        String volume = null;
        volume = PackageHelper.resolveInstallVolume(getContext(), "package.name",
        volume = InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
            0 /*install location auto*/, 1000 /*size bytes*/, mockedInterface);
        // Should return the volume with bigger available space.
        assertEquals(sInternalVolUuid, volume);

        mockedInterface.setMockValues(appInfo, true /*force allow on external*/,
                true /*allow 3rd party on internal*/);
        volume = PackageHelper.resolveInstallVolume(getContext(), "package.name",
        volume = InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
                0 /*install location auto*/, 1000 /*size bytes*/, mockedInterface);
        // Should return the volume with bigger available space.
        assertEquals(sInternalVolUuid, volume);

        mockedInterface.setMockValues(appInfo, true /*force allow on external*/,
                false /*allow 3rd party on internal*/);
        volume = PackageHelper.resolveInstallVolume(getContext(), "package.name",
        volume = InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
                0 /*install location auto*/, 1000 /*size bytes*/, mockedInterface);
        // Should return the volume with bigger available space.
        assertEquals(sAdoptedVolUuid, volume);

        mockedInterface.setMockValues(appInfo, false /*force allow on external*/,
                false /*allow 3rd party on internal*/);
        volume = PackageHelper.resolveInstallVolume(getContext(), "package.name",
        volume = InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
                0 /*install location auto*/, 1000 /*size bytes*/, mockedInterface);
        // Should return the volume with bigger available space.
        assertEquals(sAdoptedVolUuid, volume);
@@ -371,20 +373,20 @@ public class PackageHelperTests extends AndroidTestCase {
        mockedInterface.setMockValues(appInfo, false /*force allow on external*/,
                true /*allow 3rd party on internal*/);
        String volume = null;
        volume = PackageHelper.resolveInstallVolume(getContext(), "package.name",
        volume = InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
            1 /*install location internal ONLY*/, 1000 /*size bytes*/, mockedInterface);
        assertEquals(sInternalVolUuid, volume);

        mockedInterface.setMockValues(appInfo, true /*force allow on external*/,
                true /*allow 3rd party on internal*/);
        volume = PackageHelper.resolveInstallVolume(getContext(), "package.name",
        volume = InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
                1 /*install location internal ONLY*/, 1000 /*size bytes*/, mockedInterface);
        assertEquals(sInternalVolUuid, volume);

        mockedInterface.setMockValues(appInfo, false /*force allow on external*/,
                false /*allow 3rd party on internal*/);
        try {
            volume = PackageHelper.resolveInstallVolume(getContext(), "package.name",
            volume = InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
                    1 /*install location internal only*/, 1000 /*size bytes*/, mockedInterface);
            fail("Expected exception in resolveInstallVolume was not thrown");
        } catch (IOException e) {
@@ -395,7 +397,7 @@ public class PackageHelperTests extends AndroidTestCase {
        mockedInterface.setMockValues(appInfo, true /*force allow on external*/,
                false /*allow 3rd party on internal*/);
        volume = null;
        volume = PackageHelper.resolveInstallVolume(getContext(), "package.name",
        volume = InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
                1 /*install location internal only*/, 1000 /*size bytes*/, mockedInterface);
        assertEquals(sAdoptedVolUuid, volume);
    }
@@ -407,7 +409,7 @@ public class PackageHelperTests extends AndroidTestCase {
        mockedInterface.setMockValues(appInfo, false /*force allow on external*/,
                false /*allow 3rd party on internal*/);
        String volume = null;
        volume = PackageHelper.resolveInstallVolume(getContext(), "package.name",
        volume = InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
            0 /*install location auto*/, 1000 /*size bytes*/, mockedInterface);
        // Should return the non-internal volume.
        assertEquals(sAdoptedVolUuid, volume);
@@ -415,7 +417,7 @@ public class PackageHelperTests extends AndroidTestCase {
        appInfo = null;
        mockedInterface.setMockValues(appInfo, true /*force allow on external*/,
                false /*allow 3rd party on internal*/);
        volume = PackageHelper.resolveInstallVolume(getContext(), "package.name",
        volume = InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
                0 /*install location auto*/, 1000 /*size bytes*/, mockedInterface);
        // Should return the non-internal volume.
        assertEquals(sAdoptedVolUuid, volume);
@@ -428,7 +430,7 @@ public class PackageHelperTests extends AndroidTestCase {
                true /*allow 3rd party on internal*/);
        String volume = null;
        try {
            volume = PackageHelper.resolveInstallVolume(getContext(), "package.name",
            volume = InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
                    1 /*install location internal ONLY*/,
                    1000000 /*size too big*/, mockedInterface);
            fail("Expected exception in resolveInstallVolume was not thrown");
@@ -445,7 +447,7 @@ public class PackageHelperTests extends AndroidTestCase {
                false /*allow 3rd party on internal*/);
        String volume = null;
        try {
            volume = PackageHelper.resolveInstallVolume(getContext(), "package.name",
            volume = InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
                    1 /*install location internal only*/, 1000 /*size bytes*/, mockedInterface);
            fail("Expected exception in resolveInstallVolume was not thrown");
        } catch (IOException e) {
@@ -456,7 +458,7 @@ public class PackageHelperTests extends AndroidTestCase {
        mockedInterface.setMockValues(appInfo, true /*force allow on external*/,
                false /*allow 3rd party on internal*/);
        volume = null;
        volume = PackageHelper.resolveInstallVolume(getContext(), "package.name",
        volume = InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
            1 /*install location internal only*/, 1000 /*size bytes*/, mockedInterface);
        assertEquals(sAdoptedVolUuid, volume);

@@ -474,7 +476,7 @@ public class PackageHelperTests extends AndroidTestCase {
        mockedInterface.setMockValues(appInfo, true /*force allow on external*/,
                false /*allow 3rd party on internal*/);
        String volume = null;
        volume = PackageHelper.resolveInstallVolume(getContext(), "package.name",
        volume = InstallLocationUtils.resolveInstallVolume(getContext(), "package.name",
            1 /*install location internal only*/, 1000 /*size bytes*/, mockedInterface);
        assertEquals(sAdoptedVolUuid, volume);
    }
+3 −3

File changed.

Preview size limit exceeded, changes collapsed.

+3 −3

File changed.

Preview size limit exceeded, changes collapsed.

Loading