From c784274b982147b8aa7aa99bc402d09d935713c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Wed, 1 Jul 2020 19:44:25 +0200 Subject: [PATCH] Automated Robolectric migration as in http://robolectric.org/automated-migration/ --- .../fdroid/fdroid/data/DatabaseMigration.java | 7 +- .../fdroid/data/FDroidProviderTest.java | 7 +- .../fdroid/fdroid/data/ProviderUriTests.java | 92 +++++++++---------- .../fdroid/fdroid/updater/SwapRepoTest.java | 8 +- 4 files changed, 58 insertions(+), 56 deletions(-) diff --git a/app/src/test/java/org/fdroid/fdroid/data/DatabaseMigration.java b/app/src/test/java/org/fdroid/fdroid/data/DatabaseMigration.java index edfa31b8b..91e97a582 100644 --- a/app/src/test/java/org/fdroid/fdroid/data/DatabaseMigration.java +++ b/app/src/test/java/org/fdroid/fdroid/data/DatabaseMigration.java @@ -1,6 +1,7 @@ package org.fdroid.fdroid.data; import android.app.Application; +import android.content.ContentResolver; import android.content.ContentValues; import android.content.Context; import android.content.ContextWrapper; @@ -23,13 +24,13 @@ import org.robolectric.shadows.ShadowContentResolver; @RunWith(RobolectricTestRunner.class) public class DatabaseMigration { - protected ShadowContentResolver contentResolver; + protected ContentResolver contentResolver; protected ContextWrapper context; @Before public final void setupBase() { - contentResolver = Shadows.shadowOf(RuntimeEnvironment.application.getContentResolver()); - context = TestUtils.createContextWithContentResolver(contentResolver); + contentResolver = RuntimeEnvironment.application.getContentResolver(); + context = TestUtils.createContextWithContentResolver(Shadows.shadowOf(contentResolver)); TestUtils.registerContentProvider(AppProvider.getAuthority(), AppProvider.class); } diff --git a/app/src/test/java/org/fdroid/fdroid/data/FDroidProviderTest.java b/app/src/test/java/org/fdroid/fdroid/data/FDroidProviderTest.java index d2335811d..181dd8321 100644 --- a/app/src/test/java/org/fdroid/fdroid/data/FDroidProviderTest.java +++ b/app/src/test/java/org/fdroid/fdroid/data/FDroidProviderTest.java @@ -1,5 +1,6 @@ package org.fdroid.fdroid.data; +import android.content.ContentResolver; import android.content.ContentValues; import android.content.ContextWrapper; import org.fdroid.fdroid.TestUtils; @@ -11,13 +12,13 @@ import org.robolectric.shadows.ShadowContentResolver; public abstract class FDroidProviderTest { // NOPMD This abstract class does not have any abstract methods - protected ShadowContentResolver contentResolver; + protected ContentResolver contentResolver; protected ContextWrapper context; @Before public final void setupBase() { - contentResolver = Shadows.shadowOf(RuntimeEnvironment.application.getContentResolver()); - context = TestUtils.createContextWithContentResolver(contentResolver); + contentResolver = RuntimeEnvironment.application.getContentResolver(); + context = TestUtils.createContextWithContentResolver(Shadows.shadowOf(contentResolver)); TestUtils.registerContentProvider(AppProvider.getAuthority(), AppProvider.class); } diff --git a/app/src/test/java/org/fdroid/fdroid/data/ProviderUriTests.java b/app/src/test/java/org/fdroid/fdroid/data/ProviderUriTests.java index 9ffb5c9ad..0af187a75 100644 --- a/app/src/test/java/org/fdroid/fdroid/data/ProviderUriTests.java +++ b/app/src/test/java/org/fdroid/fdroid/data/ProviderUriTests.java @@ -1,5 +1,11 @@ package org.fdroid.fdroid.data; +import static org.fdroid.fdroid.Assert.assertInvalidUri; +import static org.fdroid.fdroid.Assert.assertValidUri; + +import android.content.ContentResolver; +import java.util.ArrayList; +import java.util.List; import org.fdroid.fdroid.BuildConfig; import org.fdroid.fdroid.TestUtils; import org.fdroid.fdroid.data.Schema.InstalledAppTable; @@ -14,12 +20,6 @@ import org.robolectric.Shadows; import org.robolectric.annotation.Config; import org.robolectric.shadows.ShadowContentResolver; -import java.util.ArrayList; -import java.util.List; - -import static org.fdroid.fdroid.Assert.assertInvalidUri; -import static org.fdroid.fdroid.Assert.assertValidUri; - @Config(constants = BuildConfig.class) @RunWith(RobolectricTestRunner.class) @SuppressWarnings("LineLength") @@ -30,11 +30,11 @@ public class ProviderUriTests { private static final String APP_PROVIDER_URI_BASE = CONTENT_URI_BASE + ".AppProvider"; private static final String TEMP_APP_PROVIDER_URI_BASE = CONTENT_URI_BASE + ".TempAppProvider"; - private ShadowContentResolver resolver; + private ContentResolver resolver; @Before public void setup() { - resolver = Shadows.shadowOf(RuntimeEnvironment.application.getContentResolver()); + resolver = RuntimeEnvironment.application.getContentResolver(); } @After @@ -45,67 +45,67 @@ public class ProviderUriTests { @Test public void invalidInstalledAppProviderUris() { TestUtils.registerContentProvider(InstalledAppProvider.getAuthority(), InstalledAppProvider.class); - assertInvalidUri(resolver, InstalledAppProvider.getAuthority()); - assertInvalidUri(resolver, "blah"); + assertInvalidUri(Shadows.shadowOf(resolver), InstalledAppProvider.getAuthority()); + assertInvalidUri(Shadows.shadowOf(resolver), "blah"); } @Test public void validInstalledAppProviderUris() { TestUtils.registerContentProvider(InstalledAppProvider.getAuthority(), InstalledAppProvider.class); String[] projection = new String[]{InstalledAppTable.Cols._ID}; - assertValidUri(resolver, InstalledAppProvider.getContentUri(), projection); - assertValidUri(resolver, InstalledAppProvider.getAppUri("org.example.app"), projection); - assertValidUri(resolver, InstalledAppProvider.getSearchUri("blah"), projection); - assertValidUri(resolver, InstalledAppProvider.getSearchUri("\"blah\""), projection); - assertValidUri(resolver, InstalledAppProvider.getSearchUri("blah & sneh"), projection); - assertValidUri(resolver, InstalledAppProvider.getSearchUri("http://blah.example.com?sneh=\"sneh\""), projection); + assertValidUri(Shadows.shadowOf(resolver), InstalledAppProvider.getContentUri(), projection); + assertValidUri(Shadows.shadowOf(resolver), InstalledAppProvider.getAppUri("org.example.app"), projection); + assertValidUri(Shadows.shadowOf(resolver), InstalledAppProvider.getSearchUri("blah"), projection); + assertValidUri(Shadows.shadowOf(resolver), InstalledAppProvider.getSearchUri("\"blah\""), projection); + assertValidUri(Shadows.shadowOf(resolver), InstalledAppProvider.getSearchUri("blah & sneh"), projection); + assertValidUri(Shadows.shadowOf(resolver), InstalledAppProvider.getSearchUri("http://blah.example.com?sneh=\"sneh\""), projection); } @Test public void invalidRepoProviderUris() { TestUtils.registerContentProvider(RepoProvider.getAuthority(), RepoProvider.class); - assertInvalidUri(resolver, RepoProvider.getAuthority()); - assertInvalidUri(resolver, "blah"); + assertInvalidUri(Shadows.shadowOf(resolver), RepoProvider.getAuthority()); + assertInvalidUri(Shadows.shadowOf(resolver), "blah"); } @Test public void validRepoProviderUris() { TestUtils.registerContentProvider(RepoProvider.getAuthority(), RepoProvider.class); String[] projection = new String[]{Schema.RepoTable.Cols._ID}; - assertValidUri(resolver, RepoProvider.getContentUri(), projection); - assertValidUri(resolver, RepoProvider.getContentUri(10000L), projection); - assertValidUri(resolver, RepoProvider.allExceptSwapUri(), projection); + assertValidUri(Shadows.shadowOf(resolver), RepoProvider.getContentUri(), projection); + assertValidUri(Shadows.shadowOf(resolver), RepoProvider.getContentUri(10000L), projection); + assertValidUri(Shadows.shadowOf(resolver), RepoProvider.allExceptSwapUri(), projection); } @Test public void invalidAppProviderUris() { TestUtils.registerContentProvider(AppProvider.getAuthority(), AppProvider.class); - assertInvalidUri(resolver, AppProvider.getAuthority()); - assertInvalidUri(resolver, "blah"); + assertInvalidUri(Shadows.shadowOf(resolver), AppProvider.getAuthority()); + assertInvalidUri(Shadows.shadowOf(resolver), "blah"); } @Test public void validAppProviderUris() { TestUtils.registerContentProvider(AppProvider.getAuthority(), AppProvider.class); String[] projection = new String[]{Schema.AppMetadataTable.Cols._ID}; - assertValidUri(resolver, AppProvider.getContentUri(), APP_PROVIDER_URI_BASE, projection); - assertValidUri(resolver, AppProvider.getSearchUri("'searching!'", null), APP_PROVIDER_URI_BASE + "/search/'searching!'", projection); - assertValidUri(resolver, AppProvider.getSearchUri("'searching!'", "Games"), APP_PROVIDER_URI_BASE + "/search/'searching!'/Games", projection); - assertValidUri(resolver, AppProvider.getSearchUri("/", null), APP_PROVIDER_URI_BASE + "/search/%2F", projection); - assertValidUri(resolver, AppProvider.getSearchUri("/", "Games"), APP_PROVIDER_URI_BASE + "/search/%2F/Games", projection); - assertValidUri(resolver, AppProvider.getSearchUri("", null), APP_PROVIDER_URI_BASE, projection); - assertValidUri(resolver, AppProvider.getSearchUri("", "Games"), APP_PROVIDER_URI_BASE + "/category/Games", projection); - assertValidUri(resolver, AppProvider.getCategoryUri("Games"), APP_PROVIDER_URI_BASE + "/category/Games", projection); - assertValidUri(resolver, AppProvider.getSearchUri((String) null, null), APP_PROVIDER_URI_BASE, projection); - assertValidUri(resolver, AppProvider.getSearchUri((String) null, "Games"), APP_PROVIDER_URI_BASE + "/category/Games", projection); - assertValidUri(resolver, AppProvider.getInstalledUri(), APP_PROVIDER_URI_BASE + "/installed", projection); - assertValidUri(resolver, AppProvider.getCanUpdateUri(), APP_PROVIDER_URI_BASE + "/canUpdate", projection); + assertValidUri(Shadows.shadowOf(resolver), AppProvider.getContentUri(), APP_PROVIDER_URI_BASE, projection); + assertValidUri(Shadows.shadowOf(resolver), AppProvider.getSearchUri("'searching!'", null), APP_PROVIDER_URI_BASE + "/search/'searching!'", projection); + assertValidUri(Shadows.shadowOf(resolver), AppProvider.getSearchUri("'searching!'", "Games"), APP_PROVIDER_URI_BASE + "/search/'searching!'/Games", projection); + assertValidUri(Shadows.shadowOf(resolver), AppProvider.getSearchUri("/", null), APP_PROVIDER_URI_BASE + "/search/%2F", projection); + assertValidUri(Shadows.shadowOf(resolver), AppProvider.getSearchUri("/", "Games"), APP_PROVIDER_URI_BASE + "/search/%2F/Games", projection); + assertValidUri(Shadows.shadowOf(resolver), AppProvider.getSearchUri("", null), APP_PROVIDER_URI_BASE, projection); + assertValidUri(Shadows.shadowOf(resolver), AppProvider.getSearchUri("", "Games"), APP_PROVIDER_URI_BASE + "/category/Games", projection); + assertValidUri(Shadows.shadowOf(resolver), AppProvider.getCategoryUri("Games"), APP_PROVIDER_URI_BASE + "/category/Games", projection); + assertValidUri(Shadows.shadowOf(resolver), AppProvider.getSearchUri((String) null, null), APP_PROVIDER_URI_BASE, projection); + assertValidUri(Shadows.shadowOf(resolver), AppProvider.getSearchUri((String) null, "Games"), APP_PROVIDER_URI_BASE + "/category/Games", projection); + assertValidUri(Shadows.shadowOf(resolver), AppProvider.getInstalledUri(), APP_PROVIDER_URI_BASE + "/installed", projection); + assertValidUri(Shadows.shadowOf(resolver), AppProvider.getCanUpdateUri(), APP_PROVIDER_URI_BASE + "/canUpdate", projection); App app = new App(); app.repoId = 1; app.packageName = "org.fdroid.fdroid"; - assertValidUri(resolver, AppProvider.getSpecificAppUri(app.packageName, app.repoId), + assertValidUri(Shadows.shadowOf(resolver), AppProvider.getSpecificAppUri(app.packageName, app.repoId), APP_PROVIDER_URI_BASE + "/app/1/org.fdroid.fdroid", projection); } @@ -116,22 +116,22 @@ public class ProviderUriTests { // Required so that the `assertValidUri` calls below will indeed have a real temp_fdroid_app // table to query. - TempAppProvider.Helper.init(TestUtils.createContextWithContentResolver(resolver), 123); + TempAppProvider.Helper.init(TestUtils.createContextWithContentResolver(Shadows.shadowOf(resolver)), 123); List packageNames = new ArrayList<>(2); packageNames.add("org.fdroid.fdroid"); packageNames.add("com.example.com"); - assertValidUri(resolver, TempAppProvider.getAppsUri(packageNames, 1), + assertValidUri(Shadows.shadowOf(resolver), TempAppProvider.getAppsUri(packageNames, 1), TEMP_APP_PROVIDER_URI_BASE + "/apps/1/org.fdroid.fdroid%2Ccom.example.com", projection); - assertValidUri(resolver, TempAppProvider.getContentUri(), TEMP_APP_PROVIDER_URI_BASE, projection); + assertValidUri(Shadows.shadowOf(resolver), TempAppProvider.getContentUri(), TEMP_APP_PROVIDER_URI_BASE, projection); } @Test public void invalidApkProviderUris() { TestUtils.registerContentProvider(ApkProvider.getAuthority(), ApkProvider.class); - assertInvalidUri(resolver, ApkProvider.getAuthority()); - assertInvalidUri(resolver, "blah"); + assertInvalidUri(Shadows.shadowOf(resolver), ApkProvider.getAuthority()); + assertInvalidUri(Shadows.shadowOf(resolver), "blah"); } @Test @@ -144,15 +144,15 @@ public class ProviderUriTests { apks.add(new MockApk("com.example." + i, i)); } - assertValidUri(resolver, ApkProvider.getContentUri(), + assertValidUri(Shadows.shadowOf(resolver), ApkProvider.getContentUri(), APK_PROVIDER_URI_BASE, projection); - assertValidUri(resolver, ApkProvider.getAppUri("org.fdroid.fdroid"), + assertValidUri(Shadows.shadowOf(resolver), ApkProvider.getAppUri("org.fdroid.fdroid"), APK_PROVIDER_URI_BASE + "/app/org.fdroid.fdroid", projection); - assertValidUri(resolver, ApkProvider.getApkFromAnyRepoUri(new MockApk("org.fdroid.fdroid", 100)), + assertValidUri(Shadows.shadowOf(resolver), ApkProvider.getApkFromAnyRepoUri(new MockApk("org.fdroid.fdroid", 100)), APK_PROVIDER_URI_BASE + "/apk-any-repo/100/org.fdroid.fdroid", projection); - assertValidUri(resolver, ApkProvider.getApkFromAnyRepoUri("org.fdroid.fdroid", 100, null), + assertValidUri(Shadows.shadowOf(resolver), ApkProvider.getApkFromAnyRepoUri("org.fdroid.fdroid", 100, null), APK_PROVIDER_URI_BASE + "/apk-any-repo/100/org.fdroid.fdroid", projection); - assertValidUri(resolver, ApkProvider.getRepoUri(1000), + assertValidUri(Shadows.shadowOf(resolver), ApkProvider.getRepoUri(1000), APK_PROVIDER_URI_BASE + "/repo/1000", projection); } } diff --git a/app/src/testFull/java/org/fdroid/fdroid/updater/SwapRepoTest.java b/app/src/testFull/java/org/fdroid/fdroid/updater/SwapRepoTest.java index c0b1eb078..1f6b1518e 100644 --- a/app/src/testFull/java/org/fdroid/fdroid/updater/SwapRepoTest.java +++ b/app/src/testFull/java/org/fdroid/fdroid/updater/SwapRepoTest.java @@ -64,7 +64,7 @@ public class SwapRepoTest { private LocalHTTPD localHttpd; - protected ShadowContentResolver shadowContentResolver; + protected ContentResolver contentResolver; protected ContextWrapper context; @@ -73,7 +73,7 @@ public class SwapRepoTest { ShadowLog.stream = System.out; contentResolver = RuntimeEnvironment.application.getContentResolver(); - shadowContentResolver = Shadows.shadowOf(contentResolver); + context = new ContextWrapper(RuntimeEnvironment.application.getApplicationContext()) { @Override public ContentResolver getContentResolver() { @@ -102,7 +102,7 @@ public class SwapRepoTest { throws IOException, LocalRepoKeyStore.InitException, IndexUpdater.UpdateException, InterruptedException { PackageManager packageManager = context.getPackageManager(); - ShadowPackageManager shadowPackageManager = shadowOf(packageManager); + ApplicationInfo appInfo = new ApplicationInfo(); appInfo.flags = 0; appInfo.packageName = context.getPackageName(); @@ -118,7 +118,7 @@ public class SwapRepoTest { packageInfo.applicationInfo = appInfo; packageInfo.versionCode = 1002001; packageInfo.versionName = "1.2-fake"; - shadowPackageManager.addPackage(packageInfo); + shadowOf(packageManager).addPackage(packageInfo); try { FDroidApp.initWifiSettings();