show all installed apps as possibilities for panic uninstall

F-Droid should be able to uninstall any app, in theory, not just the apps
that are listed in the index.

This lays some groundwork for moving swap's SelectAppsView to the standard
AppList elements used everywhere else.  It also does a little bit towards
getting rid of InstalledApp in favor of just reusing App.
This commit is contained in:
Hans-Christoph Steiner
2019-06-11 22:56:04 +02:00
parent 89140d5334
commit bac0ae8f25
5 changed files with 102 additions and 12 deletions

View File

@@ -20,6 +20,7 @@ import java.util.Map;
import static org.fdroid.fdroid.Assert.assertIsInstalledVersionInDb;
import static org.fdroid.fdroid.Assert.assertResultCount;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
@@ -71,6 +72,39 @@ public class InstalledAppProviderTest extends FDroidProviderTest {
cursor.close();
}
@Test
public void testHelperAll() {
final String packageName0 = "com.0";
final String packageName1 = "com.1";
final String packageName2 = "com.2";
App[] apps = InstalledAppProvider.Helper.all(context);
assertEquals(0, apps.length);
insertInstalledApp(packageName0, 0, "v0");
insertInstalledApp(packageName1, 1, "v1");
insertInstalledApp(packageName2, 2, "v2");
assertResultCount(contentResolver, 3, InstalledAppProvider.getContentUri());
assertResultCount(contentResolver, 3, InstalledAppProvider.getAllAppsUri());
assertIsInstalledVersionInDb(contentResolver, packageName0, 0, "v0");
assertIsInstalledVersionInDb(contentResolver, packageName1, 1, "v1");
assertIsInstalledVersionInDb(contentResolver, packageName2, 2, "v2");
apps = InstalledAppProvider.Helper.all(context);
assertEquals(3, apps.length);
assertEquals(packageName0, apps[0].packageName);
assertEquals("v0", apps[0].upstreamVersionName);
assertEquals(0, apps[0].upstreamVersionCode);
assertEquals(packageName1, apps[1].packageName);
assertEquals("v1", apps[1].upstreamVersionName);
assertEquals(1, apps[1].upstreamVersionCode);
assertEquals(packageName2, apps[2].packageName);
assertEquals("v2", apps[2].upstreamVersionName);
assertEquals(2, apps[2].upstreamVersionCode);
assertNotEquals(packageName0, apps[2].packageName);
}
@Test
public void testInsert() {
@@ -84,6 +118,9 @@ public class InstalledAppProviderTest extends FDroidProviderTest {
assertIsInstalledVersionInDb(contentResolver, "com.example.com1", 1, "v1");
assertIsInstalledVersionInDb(contentResolver, "com.example.com2", 2, "v2");
assertIsInstalledVersionInDb(contentResolver, "com.example.com3", 3, "v3");
App[] apps = InstalledAppProvider.Helper.all(context);
assertEquals(3, apps.length);
}
@Test