Automated Robolectric migration as in http://robolectric.org/automated-migration/

This commit is contained in:
Dominik Schürmann 2020-07-01 19:44:25 +02:00
parent f9663a5ac6
commit c784274b98
4 changed files with 58 additions and 56 deletions

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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<String> 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);
}
}

View File

@ -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();