diff options
author | Kenny Root <kroot@google.com> | 2011-01-12 15:06:51 -0800 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2011-01-12 15:06:51 -0800 |
commit | 470750793b6e930a323ee63cbed05c43dc435ba1 (patch) | |
tree | 3ff696f1e9022f62934bdc0e256ca123c2028bfb /core/tests | |
parent | 471de1f5b3cc629739d8315ff195d6af928e7ae4 (diff) | |
parent | e8c04db71e347396e9537ead7113ba9f46706e44 (diff) | |
download | frameworks_base-470750793b6e930a323ee63cbed05c43dc435ba1.zip frameworks_base-470750793b6e930a323ee63cbed05c43dc435ba1.tar.gz frameworks_base-470750793b6e930a323ee63cbed05c43dc435ba1.tar.bz2 |
am e8c04db7: Merge "Add the {get,set}PackageObbPaths calls to API" into gingerbread
* commit 'e8c04db71e347396e9537ead7113ba9f46706e44':
Add the {get,set}PackageObbPaths calls to API
Diffstat (limited to 'core/tests')
-rwxr-xr-x | core/tests/coretests/src/android/content/pm/PackageManagerTests.java | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/core/tests/coretests/src/android/content/pm/PackageManagerTests.java b/core/tests/coretests/src/android/content/pm/PackageManagerTests.java index d5f385b..c8a4593 100755 --- a/core/tests/coretests/src/android/content/pm/PackageManagerTests.java +++ b/core/tests/coretests/src/android/content/pm/PackageManagerTests.java @@ -47,6 +47,7 @@ import android.util.Log; import java.io.File; import java.io.IOException; import java.io.InputStream; +import java.util.Arrays; public class PackageManagerTests extends AndroidTestCase { private static final boolean localLOGV = true; @@ -2838,6 +2839,164 @@ public class PackageManagerTests extends AndroidTestCase { installFromRawResource("install.apk", rapk2, PackageManager.INSTALL_REPLACE_EXISTING, true, fail, retCode, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); } + + @LargeTest + public void testPackageObbPaths_Nonexistent() { + try { + final PackageManager pm = getPm(); + + // Invalid Java package name. + pm.getPackageObbPaths("=non-existent"); + + fail("Should not be able to get package OBB paths for non-existent package"); + } catch (IllegalArgumentException e) { + // pass + } + } + + @LargeTest + public void testPackageObbPaths_Initial() { + InstallParams ip = sampleInstallFromRawResource(PackageManager.INSTALL_INTERNAL, false); + + try { + final PackageManager pm = getPm(); + + assertEquals("Initial obb paths should be null", + null, pm.getPackageObbPaths(ip.pkg.packageName)); + } finally { + cleanUpInstall(ip); + } + } + + @LargeTest + public void testPackageObbPaths_Null() { + InstallParams ip = sampleInstallFromRawResource(PackageManager.INSTALL_INTERNAL, false); + + try { + final PackageManager pm = getPm(); + + pm.setPackageObbPaths(ip.pkg.packageName, null); + + assertEquals("Returned paths should be null", + null, pm.getPackageObbPaths(ip.pkg.packageName)); + } finally { + cleanUpInstall(ip); + } + } + + @LargeTest + public void testPackageObbPaths_Empty() { + InstallParams ip = sampleInstallFromRawResource(PackageManager.INSTALL_INTERNAL, false); + + try { + final PackageManager pm = getPm(); + + final String[] paths = new String[0]; + + pm.setPackageObbPaths(ip.pkg.packageName, paths); + + assertEquals("Empty list should be interpreted as null", + null, pm.getPackageObbPaths(ip.pkg.packageName)); + } finally { + cleanUpInstall(ip); + } + } + + @LargeTest + public void testPackageObbPaths_Single() { + InstallParams ip = sampleInstallFromRawResource(PackageManager.INSTALL_INTERNAL, false); + + try { + final PackageManager pm = getPm(); + + final String[] paths = new String[] { + "/example/test", + }; + + pm.setPackageObbPaths(ip.pkg.packageName, paths.clone()); + + assertTrue("Previously set paths should be the same as the returned paths.", + Arrays.equals(paths, pm.getPackageObbPaths(ip.pkg.packageName))); + } finally { + cleanUpInstall(ip); + } + } + + @LargeTest + public void testPackageObbPaths_Multiple() { + InstallParams ip = sampleInstallFromRawResource(PackageManager.INSTALL_INTERNAL, false); + + try { + final PackageManager pm = getPm(); + + final String[] paths = new String[] { + "/example/test1", + "/example/test2", + }; + + pm.setPackageObbPaths(ip.pkg.packageName, paths.clone()); + + assertTrue("Previously set paths should be the same as the returned paths.", + Arrays.equals(paths, pm.getPackageObbPaths(ip.pkg.packageName))); + } finally { + cleanUpInstall(ip); + } + } + + @LargeTest + public void testPackageObbPaths_Twice() { + InstallParams ip = sampleInstallFromRawResource(PackageManager.INSTALL_INTERNAL, false); + + try { + final PackageManager pm = getPm(); + + final String[] paths = new String[] { + "/example/test1", + "/example/test2", + }; + + pm.setPackageObbPaths(ip.pkg.packageName, paths.clone()); + + assertTrue("Previously set paths should be the same as the returned paths.", + Arrays.equals(paths, pm.getPackageObbPaths(ip.pkg.packageName))); + + paths[0] = "/example/test3"; + pm.setPackageObbPaths(ip.pkg.packageName, paths.clone()); + + assertTrue("Previously set paths should be the same as the returned paths.", + Arrays.equals(paths, pm.getPackageObbPaths(ip.pkg.packageName))); + } finally { + cleanUpInstall(ip); + } + } + + @LargeTest + public void testPackageObbPaths_ReplacePackage() { + InstallParams ip = sampleInstallFromRawResource(PackageManager.INSTALL_INTERNAL, false); + + try { + final PackageManager pm = getPm(); + + final String[] paths = new String[] { + "/example/test1", + "/example/test2", + }; + + pm.setPackageObbPaths(ip.pkg.packageName, paths.clone()); + + Log.i(TAG, "Creating replaceReceiver"); + final GenericReceiver receiver = new ReplaceReceiver(ip.pkg.packageName); + + final int flags = PackageManager.INSTALL_REPLACE_EXISTING; + invokeInstallPackage(ip.packageURI, flags, receiver); + assertInstall(ip.pkg, flags, ip.pkg.installLocation); + + assertTrue("Previously set paths should be the same as the returned paths.", + Arrays.equals(paths, pm.getPackageObbPaths(ip.pkg.packageName))); + } finally { + cleanUpInstall(ip); + } + } /*---------- Recommended install location tests ----*/ /* * TODO's |