diff --git a/F-Droid/test/src/mock/MockApplicationInfo.java b/F-Droid/test/src/mock/MockApplicationInfo.java new file mode 100644 index 000000000..abd6c2e22 --- /dev/null +++ b/F-Droid/test/src/mock/MockApplicationInfo.java @@ -0,0 +1,19 @@ +package mock; + +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; + +public class MockApplicationInfo extends ApplicationInfo { + + private final PackageInfo info; + + public MockApplicationInfo(PackageInfo info) { + this.info = info; + } + + @Override + public CharSequence loadLabel(PackageManager pm) { + return "Mock app: " + info.packageName; + } +} diff --git a/F-Droid/test/src/mock/MockInstallablePackageManager.java b/F-Droid/test/src/mock/MockInstallablePackageManager.java index f291c1517..7fc1a0758 100644 --- a/F-Droid/test/src/mock/MockInstallablePackageManager.java +++ b/F-Droid/test/src/mock/MockInstallablePackageManager.java @@ -1,5 +1,6 @@ package mock; +import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.test.mock.MockPackageManager; @@ -9,7 +10,7 @@ import java.util.List; public class MockInstallablePackageManager extends MockPackageManager { - private List info = new ArrayList(); + private List info = new ArrayList<>(); @Override public List getInstalledPackages(int flags) { @@ -30,6 +31,11 @@ public class MockInstallablePackageManager extends MockPackageManager { } } + @Override + public ApplicationInfo getApplicationInfo(String packageName, int flags) throws NameNotFoundException { + return new MockApplicationInfo(getPackageInfo(packageName)); + } + public PackageInfo getPackageInfo(String id) { for (PackageInfo i : info) { if (i.packageName.equals(id)) { diff --git a/F-Droid/test/src/org/fdroid/fdroid/AppProviderTest.java b/F-Droid/test/src/org/fdroid/fdroid/AppProviderTest.java index 644dbca7d..a769d5c83 100644 --- a/F-Droid/test/src/org/fdroid/fdroid/AppProviderTest.java +++ b/F-Droid/test/src/org/fdroid/fdroid/AppProviderTest.java @@ -1,14 +1,18 @@ package org.fdroid.fdroid; +import android.content.ContentResolver; import android.content.ContentValues; import android.content.res.Resources; import android.database.Cursor; import mock.MockCategoryResources; +import mock.MockContextSwappableComponents; +import mock.MockInstallablePackageManager; import org.fdroid.fdroid.data.ApkProvider; import org.fdroid.fdroid.data.App; import org.fdroid.fdroid.data.AppProvider; +import org.fdroid.fdroid.data.InstalledAppCacheUpdater; import java.util.ArrayList; import java.util.List; @@ -43,7 +47,6 @@ public class AppProviderTest extends FDroidProviderTest { * the AppProvider used to stumble across this bug when asking for installed apps, * and the device had over 1000 apps installed. */ -/* TODO fix me public void testMaxSqliteParams() { MockInstallablePackageManager pm = new MockInstallablePackageManager(); @@ -74,7 +77,7 @@ public class AppProviderTest extends FDroidProviderTest { assertResultCount(3, AppProvider.getInstalledUri()); } -*/ + public void testCantFindApp() { assertNull(AppProvider.Helper.findById(getMockContentResolver(), "com.example.doesnt-exist")); } @@ -92,7 +95,7 @@ public class AppProviderTest extends FDroidProviderTest { App app = new App(); app.id = "org.fdroid.fdroid"; - List apps = new ArrayList(1); + List apps = new ArrayList<>(1); apps.add(app); assertValidUri(AppProvider.getContentUri(app)); @@ -105,7 +108,6 @@ public class AppProviderTest extends FDroidProviderTest { assertNotNull(cursor); } -/* TODO fix me private void insertApps(int count) { for (int i = 0; i < count; i ++) { insertApp("com.example.test." + i, "Test app " + i); @@ -122,7 +124,7 @@ public class AppProviderTest extends FDroidProviderTest { values.put(AppProvider.DataColumns.IGNORE_THISUPDATE, ignoreVercode); insertApp(id, "App: " + id, values); - TestUtils.installAndBroadcast(getMockContext(), packageManager, id, installedVercode, "v" + installedVercode); + TestUtils.installAndBroadcast(getSwappableContext(), packageManager, id, installedVercode, "v" + installedVercode); } public void testCanUpdate() { @@ -173,7 +175,7 @@ public class AppProviderTest extends FDroidProviderTest { Cursor canUpdateCursor = r.query(AppProvider.getCanUpdateUri(), AppProvider.DataColumns.ALL, null, null, null); canUpdateCursor.moveToFirst(); - List canUpdateIds = new ArrayList(canUpdateCursor.getCount()); + List canUpdateIds = new ArrayList<>(canUpdateCursor.getCount()); while (!canUpdateCursor.isAfterLast()) { canUpdateIds.add(new App(canUpdateCursor).id); canUpdateCursor.moveToNext(); @@ -224,7 +226,7 @@ public class AppProviderTest extends FDroidProviderTest { } private void assertContainsOnlyIds(List actualApps, String[] expectedIds) { - List actualIds = new ArrayList(actualApps.size()); + List actualIds = new ArrayList<>(actualApps.size()); for (App app : actualApps) { actualIds.add(app.id); } @@ -241,12 +243,11 @@ public class AppProviderTest extends FDroidProviderTest { assertResultCount(0, AppProvider.getInstalledUri()); for (int i = 10; i < 20; i ++) { - TestUtils.installAndBroadcast(getMockContext(), pm, "com.example.test." + i, i, "v1"); + TestUtils.installAndBroadcast(getSwappableContext(), pm, "com.example.test." + i, i, "v1"); } assertResultCount(10, AppProvider.getInstalledUri()); } -*/ public void testInsert() { diff --git a/F-Droid/test/src/org/fdroid/fdroid/InstalledAppProviderTest.java b/F-Droid/test/src/org/fdroid/fdroid/InstalledAppProviderTest.java index e266d303d..bc1a176ce 100644 --- a/F-Droid/test/src/org/fdroid/fdroid/InstalledAppProviderTest.java +++ b/F-Droid/test/src/org/fdroid/fdroid/InstalledAppProviderTest.java @@ -37,7 +37,6 @@ public class InstalledAppProviderTest extends FDroidProviderTest