summaryrefslogtreecommitdiffstats
path: root/tests/permission
diff options
context:
space:
mode:
authorSteve Howard <showard@google.com>2010-07-22 11:33:50 -0700
committerSteve Howard <showard@google.com>2010-07-22 18:38:51 -0700
commitb06b739b078ce4b00600487cfec31659647bf31f (patch)
tree9cfe924b01710eb1c7a6ad7b553fdabb05106843 /tests/permission
parent0d8d89105c00edbad95a268aaae65f2ff94ed5a1 (diff)
downloadandroid_packages_providers_DownloadProvider-b06b739b078ce4b00600487cfec31659647bf31f.zip
android_packages_providers_DownloadProvider-b06b739b078ce4b00600487cfec31659647bf31f.tar.gz
android_packages_providers_DownloadProvider-b06b739b078ce4b00600487cfec31659647bf31f.tar.bz2
Make DownloadProvider accessible for public API usage.
This change removes the requirement that apps have the ACCESS_DOWNLOAD_MANAGER permission in order to access DownloadProvider. This enables the public API to work. Instead, DownloadProvider enforces the new permissions model for the public API: * insert() requires INTERNET permission * insert() checks that input fits within the restricted input allowed for the public API * insert() also strictly checks the file URI provided with DESTINATION_FILE_URI (and still requires WRITE_EXTERNAL_STORAGE permission if that is supplied) Note that if an app has the ACCESS_DOWNLOAD_MANAGER permission, legacy behavior is retained. I've added a test to cover this new access, and updated the existing permissions tests. I also fixed a bug in WHERE clause construction in update() and delete(), and refactored the code to eliminate duplication. Change-Id: I53a08df137b35c2788c36350276c9dff24858af1
Diffstat (limited to 'tests/permission')
-rw-r--r--tests/permission/src/com/android/providers/downloads/permission/tests/DownloadProviderPermissionsTest.java23
1 files changed, 5 insertions, 18 deletions
diff --git a/tests/permission/src/com/android/providers/downloads/permission/tests/DownloadProviderPermissionsTest.java b/tests/permission/src/com/android/providers/downloads/permission/tests/DownloadProviderPermissionsTest.java
index ecdce93..4c6717c 100644
--- a/tests/permission/src/com/android/providers/downloads/permission/tests/DownloadProviderPermissionsTest.java
+++ b/tests/permission/src/com/android/providers/downloads/permission/tests/DownloadProviderPermissionsTest.java
@@ -46,7 +46,7 @@ public class DownloadProviderPermissionsTest extends AndroidTestCase {
/**
* Test that an app cannot access the /cache filesystem
* <p>Tests Permission:
- * {@link com.android.providers.downloads.Manifest.permission#ACCESS_CACHE_FILESYSTEM}
+ * {@link android.Manifest.permission#ACCESS_CACHE_FILESYSTEM}
*/
@MediumTest
public void testAccessCacheFilesystem() throws IOException {
@@ -65,27 +65,14 @@ public class DownloadProviderPermissionsTest extends AndroidTestCase {
}
/**
- * Test that an untrusted app cannot read from the download provider
- * <p>Tests Permission:
- * {@link com.android.providers.downloads.Manifest.permission#ACCESS_DOWNLOAD_MANAGER}
- */
- @MediumTest
- public void testReadDownloadProvider() throws IOException {
- try {
- mContentResolver.query(Downloads.Impl.CONTENT_URI, null, null, null, null);
- fail("read from provider did not throw SecurityException as expected.");
- } catch (SecurityException e) {
- // expected
- }
- }
-
- /**
* Test that an untrusted app cannot write to the download provider
* <p>Tests Permission:
* {@link com.android.providers.downloads.Manifest.permission#ACCESS_DOWNLOAD_MANAGER}
+ * and
+ * {@link android.Manifest.permission#INTERNET}
*/
@MediumTest
- public void testWriteDownloadProvider() throws IOException {
+ public void testWriteDownloadProvider() {
try {
ContentValues values = new ContentValues();
values.put(Downloads.Impl.COLUMN_URI, "foo");
@@ -102,7 +89,7 @@ public class DownloadProviderPermissionsTest extends AndroidTestCase {
* {@link com.android.providers.downloads.Manifest.permission#ACCESS_DOWNLOAD_MANAGER}
*/
@MediumTest
- public void testStartDownloadService() throws IOException {
+ public void testStartDownloadService() {
try {
Intent downloadServiceIntent = new Intent();
downloadServiceIntent.setClassName("com.android.providers.downloads",