Use androidx.test artifacts for tests not just androidTests

- this allows replacing deprecated RuntimeEnvironment.application
This commit is contained in:
Dominik Schürmann 2020-07-01 21:29:18 +02:00
parent 360e61118d
commit 8f81bf0cb9
14 changed files with 63 additions and 51 deletions

View File

@ -169,21 +169,18 @@ dependencies {
fullImplementation 'org.nanohttpd:nanohttpd:2.3.1'
testImplementation 'org.robolectric:robolectric:4.3'
testImplementation 'androidx.test:monitor:1.1.1'
testImplementation 'junit:junit:4.12'
testImplementation 'org.bouncycastle:bcprov-jdk15on:1.60'
testImplementation 'junit:junit:4.13'
testImplementation 'org.hamcrest:hamcrest:2.2'
testImplementation 'org.mockito:mockito-core:2.7.22'
androidTestImplementation 'androidx.test:core:1.2.0'
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test:rules:1.2.0'
testImplementation 'androidx.test:core:1.2.0'
testImplementation 'androidx.test:runner:1.2.0'
testImplementation 'androidx.test:rules:1.2.0'
testImplementation 'androidx.test:monitor:1.2.0'
testImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'
androidTestImplementation 'androidx.annotation:annotation:1.1.0'
}
checkstyle {

View File

@ -21,6 +21,8 @@ package org.fdroid.fdroid;
import android.content.Context;
import android.content.SharedPreferences;
import androidx.preference.PreferenceManager;
import androidx.test.core.app.ApplicationProvider;
import android.util.Log;
import org.junit.Before;
import org.junit.Test;
@ -39,7 +41,7 @@ import static org.junit.Assert.assertTrue;
public class PreferencesTest {
private static final String TAG = "PreferencesTest";
private static final Context CONTEXT = RuntimeEnvironment.application;
private static final Context CONTEXT = ApplicationProvider.getApplicationContext();
private SharedPreferences defaults;

View File

@ -8,6 +8,8 @@ import android.content.ContextWrapper;
import android.content.pm.ProviderInfo;
import android.net.Uri;
import androidx.test.core.app.ApplicationProvider;
import org.fdroid.fdroid.data.Apk;
import org.fdroid.fdroid.data.ApkProvider;
import org.fdroid.fdroid.data.App;
@ -158,7 +160,7 @@ public class TestUtils {
*/
public static ContextWrapper createContextWithContentResolver(ContentResolver contentResolver) {
final ContentResolver resolver = mock(ContentResolver.class, AdditionalAnswers.delegatesTo(contentResolver));
return new ContextWrapper(RuntimeEnvironment.application.getApplicationContext()) {
return new ContextWrapper(ApplicationProvider.getApplicationContext()) {
@Override
public ContentResolver getContentResolver() {
return resolver;

View File

@ -2,6 +2,9 @@
package org.fdroid.fdroid;
import android.content.Context;
import androidx.test.core.app.ApplicationProvider;
import org.fdroid.fdroid.views.AppDetailsRecyclerViewAdapter;
import org.junit.Test;
import org.junit.runner.RunWith;
@ -85,7 +88,7 @@ public class UtilsTest {
@Test
public void testFormatFingerprint() {
Context context = RuntimeEnvironment.application;
Context context = ApplicationProvider.getApplicationContext();
String badResult = Utils.formatFingerprint(context, "");
// real fingerprints
String formatted;

View File

@ -1,10 +1,11 @@
package org.fdroid.fdroid.data;
import android.content.Context;
import androidx.test.platform.app.InstrumentationRegistry;
import android.text.TextUtils;
import android.util.Log;
import androidx.test.core.app.ApplicationProvider;
import org.apache.commons.io.IOUtils;
import org.fdroid.fdroid.R;
import org.fdroid.fdroid.TestUtils;
@ -12,7 +13,6 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.xmlpull.v1.XmlPullParserException;
import java.io.File;
@ -47,7 +47,7 @@ public class DBHelperTest {
@Before
public final void setupBase() {
context = RuntimeEnvironment.application.getApplicationContext();
context = ApplicationProvider.getApplicationContext();
}
@Test

View File

@ -7,6 +7,9 @@ import android.content.Context;
import android.content.ContextWrapper;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import androidx.test.core.app.ApplicationProvider;
import org.fdroid.fdroid.BuildConfig;
import org.fdroid.fdroid.Preferences;
import org.fdroid.fdroid.TestUtils;
@ -29,7 +32,7 @@ public class DatabaseMigration {
@Before
public final void setupBase() {
contentResolver = RuntimeEnvironment.application.getContentResolver();
contentResolver = ApplicationProvider.getApplicationContext().getContentResolver();
context = TestUtils.createContextWithContentResolver(contentResolver);
TestUtils.registerContentProvider(AppProvider.getAuthority(), AppProvider.class);
}

View File

@ -3,12 +3,12 @@ package org.fdroid.fdroid.data;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.ContextWrapper;
import androidx.test.core.app.ApplicationProvider;
import org.fdroid.fdroid.TestUtils;
import org.junit.After;
import org.junit.Before;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.Shadows;
import org.robolectric.shadows.ShadowContentResolver;
public abstract class FDroidProviderTest { // NOPMD This abstract class does not have any abstract methods
@ -17,7 +17,7 @@ public abstract class FDroidProviderTest { // NOPMD This abstract class does not
@Before
public final void setupBase() {
contentResolver = RuntimeEnvironment.application.getContentResolver();
contentResolver = ApplicationProvider.getApplicationContext().getContentResolver();
context = TestUtils.createContextWithContentResolver(contentResolver);
TestUtils.registerContentProvider(AppProvider.getAuthority(), AppProvider.class);
}

View File

@ -4,7 +4,9 @@ import android.app.Application;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import org.fdroid.fdroid.BuildConfig;
import androidx.test.core.app.ApplicationProvider;
import org.fdroid.fdroid.Preferences;
import org.fdroid.fdroid.TestUtils;
import org.fdroid.fdroid.data.Schema.InstalledAppTable.Cols;
@ -12,7 +14,6 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import java.util.Map;
@ -36,7 +37,7 @@ public class InstalledAppProviderTest extends FDroidProviderTest {
@Test
public void insertSingleApp() {
Map<String, Long> foundBefore = InstalledAppProvider.Helper.lastUpdateTimes(RuntimeEnvironment.application);
Map<String, Long> foundBefore = InstalledAppProvider.Helper.lastUpdateTimes(ApplicationProvider.getApplicationContext());
assertEquals(foundBefore.size(), 0);
ContentValues values = new ContentValues();
@ -50,7 +51,7 @@ public class InstalledAppProviderTest extends FDroidProviderTest {
values.put(Cols.SIGNATURE, "000111222333444555666777888999aaabbbcccdddeeefff");
contentResolver.insert(InstalledAppProvider.getContentUri(), values);
Map<String, Long> foundAfter = InstalledAppProvider.Helper.lastUpdateTimes(RuntimeEnvironment.application);
Map<String, Long> foundAfter = InstalledAppProvider.Helper.lastUpdateTimes(ApplicationProvider.getApplicationContext());
assertEquals(1, foundAfter.size());
assertEquals(100000000L, foundAfter.get("org.example.test-app").longValue());

View File

@ -1,12 +1,9 @@
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 androidx.test.core.app.ApplicationProvider;
import org.fdroid.fdroid.TestUtils;
import org.fdroid.fdroid.data.Schema.InstalledAppTable;
import org.fdroid.fdroid.mock.MockApk;
@ -15,10 +12,12 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
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;
@RunWith(RobolectricTestRunner.class)
@SuppressWarnings("LineLength")
@ -33,7 +32,7 @@ public class ProviderUriTests {
@Before
public void setup() {
resolver = RuntimeEnvironment.application.getContentResolver();
resolver = ApplicationProvider.getApplicationContext().getContentResolver();
}
@After

View File

@ -8,6 +8,7 @@ import android.view.ViewGroup;
import androidx.appcompat.view.ContextThemeWrapper;
import androidx.recyclerview.widget.RecyclerView;
import androidx.test.core.app.ApplicationProvider;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
@ -27,7 +28,6 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import static org.junit.Assert.assertEquals;
@ -48,7 +48,7 @@ public class AppDetailsAdapterTest extends FDroidProviderTest {
app = AppProviderTest.insertApp(contentResolver, context, "com.example.app", "Test App",
new ContentValues(), repo.getId());
themeContext = new ContextThemeWrapper(RuntimeEnvironment.application, R.style.AppBaseThemeDark);
themeContext = new ContextThemeWrapper(ApplicationProvider.getApplicationContext(), R.style.AppBaseThemeDark);
}
@After

View File

@ -1,12 +1,14 @@
package org.fdroid.fdroid.nearby;
import android.content.Context;
import androidx.test.core.app.ApplicationProvider;
import org.fdroid.fdroid.FDroidApp;
import org.fdroid.fdroid.Utils;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadows.ShadowLog;
import java.util.concurrent.CountDownLatch;
@ -23,7 +25,7 @@ public class LocalHTTPDManagerTest {
@Test
public void testStartStop() throws InterruptedException {
ShadowLog.stream = System.out;
Context context = RuntimeEnvironment.application;
Context context = ApplicationProvider.getApplicationContext();
final String host = "localhost";
final int port = 8888;

View File

@ -35,6 +35,9 @@ package org.fdroid.fdroid.nearby;
import android.content.Context;
import android.text.TextUtils;
import androidx.test.core.app.ApplicationProvider;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.fdroid.fdroid.Utils;
@ -45,7 +48,6 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadows.ShadowLog;
import java.io.File;
@ -88,7 +90,7 @@ public class LocalHTTPDTest {
assertFalse(Utils.isServerSocketInUse(port));
final Context context = RuntimeEnvironment.application.getApplicationContext();
final Context context = ApplicationProvider.getApplicationContext();
webRoot = context.getFilesDir();
FileUtils.deleteDirectory(webRoot);
assertTrue(webRoot.mkdir());
@ -266,7 +268,7 @@ public class LocalHTTPDTest {
@Override
public void run() {
LocalHTTPD localHttpd = new LocalHTTPD(
RuntimeEnvironment.application,
ApplicationProvider.getApplicationContext(),
"localhost",
testPort,
webRoot,

View File

@ -2,13 +2,15 @@ package org.fdroid.fdroid.nearby;
import android.content.Context;
import android.text.TextUtils;
import androidx.test.core.app.ApplicationProvider;
import org.apache.commons.io.IOUtils;
import org.fdroid.fdroid.IndexUpdater;
import org.fdroid.fdroid.Utils;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import java.io.BufferedOutputStream;
import java.io.File;
@ -29,7 +31,7 @@ public class LocalRepoKeyStoreTest {
@Test
public void testSignZip() throws IOException, LocalRepoKeyStore.InitException, IndexUpdater.SigningException {
Context context = RuntimeEnvironment.application;
Context context = ApplicationProvider.getApplicationContext();
File xmlIndexJarUnsigned = File.createTempFile(getClass().getName(), "unsigned.jar");
BufferedOutputStream bo = new BufferedOutputStream(new FileOutputStream(xmlIndexJarUnsigned));

View File

@ -7,6 +7,9 @@ import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.text.TextUtils;
import androidx.test.core.app.ApplicationProvider;
import org.apache.commons.net.util.SubnetUtils;
import org.fdroid.fdroid.FDroidApp;
import org.fdroid.fdroid.Hasher;
@ -23,23 +26,19 @@ import org.fdroid.fdroid.data.RepoProvider;
import org.fdroid.fdroid.data.Schema;
import org.fdroid.fdroid.data.ShadowApp;
import org.fdroid.fdroid.data.TempAppProvider;
import org.fdroid.fdroid.nearby.LocalHTTPD;
import org.fdroid.fdroid.nearby.LocalRepoKeyStore;
import org.fdroid.fdroid.nearby.LocalRepoManager;
import org.fdroid.fdroid.nearby.LocalRepoService;
import org.fdroid.fdroid.nearby.WifiStateChangeService;
import org.fdroid.fdroid.nearby.LocalHTTPD;
import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowContentResolver;
import org.robolectric.shadows.ShadowLog;
import org.robolectric.shadows.ShadowPackageManager;
import java.io.File;
import java.io.IOException;
@ -72,9 +71,9 @@ public class SwapRepoTest {
public void setUp() {
ShadowLog.stream = System.out;
contentResolver = RuntimeEnvironment.application.getContentResolver();
contentResolver = ApplicationProvider.getApplicationContext().getContentResolver();
context = new ContextWrapper(RuntimeEnvironment.application.getApplicationContext()) {
context = new ContextWrapper(ApplicationProvider.getApplicationContext()) {
@Override
public ContentResolver getContentResolver() {
return contentResolver;