From 8c6ce67100fdcbce4f9a6162f2b08737c7fa52ba Mon Sep 17 00:00:00 2001 From: Peter Serwylo Date: Sat, 12 Apr 2014 09:25:26 +0000 Subject: [PATCH] Added test for "ApkProvider.delete(..., List)" This was explicitly not-allowed previously, and so there was a test that ensured it threw an exception when attempted on the ApkProvider. However I implemented it for another feature, but forgot to change the tests. Now the test no longer tests for an exception. Rather, it properly tests for the correct execution of the method. --- .../org/fdroid/fdroid/ApkProviderTest.java | 56 +++++++++++++++++-- .../fdroid/fdroid/BaseApkProviderTest.java | 6 +- 2 files changed, 56 insertions(+), 6 deletions(-) diff --git a/test/src/org/fdroid/fdroid/ApkProviderTest.java b/test/src/org/fdroid/fdroid/ApkProviderTest.java index 221d60aa1..e77ef41bc 100644 --- a/test/src/org/fdroid/fdroid/ApkProviderTest.java +++ b/test/src/org/fdroid/fdroid/ApkProviderTest.java @@ -6,6 +6,7 @@ import android.net.Uri; import org.fdroid.fdroid.data.Apk; import org.fdroid.fdroid.data.ApkProvider; +import org.fdroid.fdroid.data.AppProvider; import org.fdroid.fdroid.data.RepoProvider; import org.fdroid.fdroid.mock.MockApk; import org.fdroid.fdroid.mock.MockApp; @@ -102,14 +103,61 @@ public class ApkProviderTest extends BaseApkProviderTest { // which are tested elsewhere. } + public void testDeleteArbitraryApks() { + Apk one = insertApkForRepo("com.example.one", 1, 10); + Apk two = insertApkForRepo("com.example.two", 1, 10); + Apk three = insertApkForRepo("com.example.three", 1, 10); + Apk four = insertApkForRepo("com.example.four", 1, 10); + Apk five = insertApkForRepo("com.example.five", 1, 10); + + assertTotalApkCount(5); + + assertEquals("com.example.one", one.id); + assertEquals("com.example.two", two.id); + assertEquals("com.example.five", five.id); + + String[] expectedIds = { + "com.example.one", + "com.example.two", + "com.example.three", + "com.example.four", + "com.example.five", + }; + + List all = ApkProvider.Helper.findByRepo(getSwappableContext(), new MockRepo(10), ApkProvider.DataColumns.ALL); + List actualIds = new ArrayList(); + for (Apk apk : all) { + actualIds.add(apk.id); + } + + TestUtils.assertContainsOnly(actualIds, expectedIds); + + List toDelete = new ArrayList(3); + toDelete.add(two); + toDelete.add(three); + toDelete.add(four); + ApkProvider.Helper.deleteApks(getSwappableContext(), toDelete); + + assertTotalApkCount(2); + + List allRemaining = ApkProvider.Helper.findByRepo(getSwappableContext(), new MockRepo(10), ApkProvider.DataColumns.ALL); + List actualRemainingIds = new ArrayList(); + for (Apk apk : allRemaining) { + actualRemainingIds.add(apk.id); + } + + String[] expectedRemainingIds = { + "com.example.one", + "com.example.five", + }; + + TestUtils.assertContainsOnly(actualRemainingIds, expectedRemainingIds); + } + public void testInvalidDeleteUris() { Apk apk = new MockApk("org.fdroid.fdroid", 10); - List apks = new ArrayList(); - apks.add(apk); - assertCantDelete(ApkProvider.getContentUri()); - assertCantDelete(ApkProvider.getContentUri(apks)); assertCantDelete(ApkProvider.getContentUri("org.fdroid.fdroid", 10)); assertCantDelete(ApkProvider.getContentUri(apk)); assertCantDelete(Uri.withAppendedPath(ApkProvider.getContentUri(), "some-random-path")); diff --git a/test/src/org/fdroid/fdroid/BaseApkProviderTest.java b/test/src/org/fdroid/fdroid/BaseApkProviderTest.java index e42818232..7c2e42bc4 100644 --- a/test/src/org/fdroid/fdroid/BaseApkProviderTest.java +++ b/test/src/org/fdroid/fdroid/BaseApkProviderTest.java @@ -2,6 +2,7 @@ package org.fdroid.fdroid; import android.content.ContentValues; import android.database.Cursor; +import android.net.Uri; import org.fdroid.fdroid.data.Apk; import org.fdroid.fdroid.data.ApkProvider; @@ -68,9 +69,10 @@ abstract class BaseApkProviderTest extends FDroidProviderTest { } } - protected void insertApkForRepo(String id, int versionCode, long repoId) { + protected Apk insertApkForRepo(String id, int versionCode, long repoId) { ContentValues additionalValues = new ContentValues(); additionalValues.put(ApkProvider.DataColumns.REPO_ID, repoId); - TestUtils.insertApk(this, id, versionCode, additionalValues); + Uri uri = TestUtils.insertApk(this, id, versionCode, additionalValues); + return ApkProvider.Helper.get(getSwappableContext(), uri); } }