Adaptations to Robolectric 4.3

- Update gradle plugin to 3.6.4, the minimal version without updating to SDK 29. This is necessary for fixing some classloader issues with BouncyCastle when running tests
- Update to Robolectric 4.3; also added AndroidX test packages as required
- As first step to Robolectric adaptation, removed no longer valid `constants = BuildConfig.class` in tests
This commit is contained in:
TranceLove
2020-07-19 11:20:39 +08:00
parent 999f6b17e5
commit f7d3f2a072
21 changed files with 12 additions and 41 deletions
+9 -2
View File
@@ -113,11 +113,18 @@ dependencies {
annotationProcessor 'androidx.annotation:annotation:1.1.0'
//For tests
androidTestImplementation 'junit:junit:4.13'//tests the app logic
testImplementation 'junit:junit:4.13'//tests the app logic
androidTestImplementation 'junit:junit:4.12'//tests the app logic
testImplementation 'junit:junit:4.12'//tests the app logic
testImplementation "org.robolectric:robolectric:$robolectricVersion"//tests android interaction
testImplementation "org.robolectric:shadows-httpclient:$robolectricVersion"//tests android interaction
testImplementation 'androidx.test:core:1.2.0'
testImplementation 'androidx.test:runner:1.2.0'
testImplementation 'androidx.test:rules:1.2.0'
testImplementation 'androidx.test.ext:junit:1.1.1'
testImplementation "org.mockito:mockito-core:$mockitoVersion"
// testImplementation 'androidx.test.ext:truth:1.2.0'
// testImplementation 'com.google.truth:truth:0.42'
testImplementation "org.apache.sshd:sshd-core:1.7.0"
testImplementation "org.awaitility:awaitility:$awaitilityVersion"
@@ -36,7 +36,6 @@ import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowEnvironment;
import com.amaze.filemanager.BuildConfig;
import com.amaze.filemanager.adapters.data.CompressedObjectParcelable;
import com.amaze.filemanager.asynchronous.asynctasks.AsyncTaskResult;
import com.amaze.filemanager.shadows.ShadowMultiDex;
@@ -45,7 +44,6 @@ import android.os.Environment;
@RunWith(RobolectricTestRunner.class)
@Config(
constants = BuildConfig.class,
shadows = {ShadowMultiDex.class},
minSdk = 27,
maxSdk = 27)
@@ -42,7 +42,6 @@ import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowEnvironment;
import org.robolectric.shadows.ShadowToast;
import com.amaze.filemanager.BuildConfig;
import com.amaze.filemanager.R;
import com.amaze.filemanager.shadows.ShadowMultiDex;
@@ -53,7 +52,6 @@ import androidx.annotation.NonNull;
@RunWith(RobolectricTestRunner.class)
@Config(
constants = BuildConfig.class,
shadows = {ShadowMultiDex.class},
maxSdk = 27)
public class ExtractServiceTest {
@@ -33,7 +33,6 @@ import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import com.amaze.filemanager.BuildConfig;
import com.amaze.filemanager.shadows.ShadowMultiDex;
import com.amaze.filemanager.utils.OpenMode;
@@ -42,7 +41,6 @@ import android.os.Environment;
@RunWith(RobolectricTestRunner.class)
@Config(
maxSdk = 27,
constants = BuildConfig.class,
shadows = {ShadowMultiDex.class})
public class OperationsTest {
@@ -38,7 +38,6 @@ import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import com.amaze.filemanager.BuildConfig;
import com.amaze.filemanager.shadows.ShadowMultiDex;
import com.amaze.filemanager.test.ShadowShellInteractive;
import com.amaze.filemanager.ui.activities.MainActivity;
@@ -49,7 +48,6 @@ import eu.chainfire.libsuperuser.Shell;
@RunWith(RobolectricTestRunner.class)
@Config(
constants = BuildConfig.class,
shadows = {ShadowMultiDex.class, ShadowShellInteractive.class},
maxSdk = 27)
public class RootHelperTest {
@@ -39,7 +39,6 @@ import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import com.amaze.filemanager.BuildConfig;
import com.amaze.filemanager.shadows.ShadowMultiDex;
import android.os.Environment;
@@ -47,7 +46,6 @@ import android.os.Environment;
/** Created by Rustam Khadipash on 31/3/2018. */
@RunWith(RobolectricTestRunner.class)
@Config(
constants = BuildConfig.class,
shadows = {ShadowMultiDex.class},
maxSdk = 27)
public class CloudStreamSourceTest {
@@ -36,7 +36,6 @@ import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowToast;
import com.amaze.filemanager.BuildConfig;
import com.amaze.filemanager.R;
import com.amaze.filemanager.adapters.data.CompressedObjectParcelable;
import com.amaze.filemanager.asynchronous.asynctasks.compress.ZipHelperTask;
@@ -48,7 +47,6 @@ import android.os.Environment;
@RunWith(RobolectricTestRunner.class)
@Config(
constants = BuildConfig.class,
shadows = {ShadowMultiDex.class},
maxSdk = 27)
public class B0rkenZipTest {
@@ -33,7 +33,6 @@ import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import com.amaze.filemanager.BuildConfig;
import com.amaze.filemanager.filesystem.compressed.extractcontents.Extractor;
import com.amaze.filemanager.filesystem.compressed.extractcontents.helpers.Bzip2Extractor;
import com.amaze.filemanager.filesystem.compressed.extractcontents.helpers.GzipExtractor;
@@ -58,7 +57,6 @@ import android.content.Context;
@RunWith(RobolectricTestRunner.class)
@Config(
constants = BuildConfig.class,
shadows = {ShadowMultiDex.class},
maxSdk = 27)
public class CompressedHelperTest {
@@ -43,7 +43,6 @@ import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowEnvironment;
import com.amaze.filemanager.BuildConfig;
import com.amaze.filemanager.filesystem.compressed.ArchivePasswordCache;
import com.amaze.filemanager.shadows.ShadowMultiDex;
@@ -52,7 +51,6 @@ import android.os.Environment;
@RunWith(RobolectricTestRunner.class)
@Config(
constants = BuildConfig.class,
shadows = {ShadowMultiDex.class},
minSdk = 14,
maxSdk = 27)
@@ -32,7 +32,6 @@ import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowDateFormat;
import com.amaze.filemanager.BuildConfig;
import com.amaze.filemanager.adapters.data.LayoutElementParcelable;
import com.amaze.filemanager.shadows.ShadowMultiDex;
import com.amaze.filemanager.utils.OpenMode;
@@ -43,7 +42,6 @@ import com.amaze.filemanager.utils.OpenMode;
*/
@RunWith(RobolectricTestRunner.class)
@Config(
constants = BuildConfig.class,
shadows = {ShadowMultiDex.class, ShadowDateFormat.class},
maxSdk = 27)
public class FileListSorterTest {
@@ -37,7 +37,6 @@ import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import org.robolectric.shadow.api.Shadow;
import com.amaze.filemanager.BuildConfig;
import com.amaze.filemanager.shadows.ShadowMultiDex;
import com.amaze.filemanager.shadows.jcifs.smb.ShadowSmbFile;
@@ -48,7 +47,6 @@ import jcifs.smb.SmbFile;
/** Created by Rustam Khadipash on 30/3/2018. */
@RunWith(RobolectricTestRunner.class)
@Config(
constants = BuildConfig.class,
shadows = {ShadowMultiDex.class, ShadowSmbFile.class},
maxSdk = 27)
public class StreamSourceTest {
@@ -39,7 +39,6 @@ import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import com.amaze.filemanager.BuildConfig;
import com.amaze.filemanager.filesystem.ssh.test.TestKeyProvider;
import com.amaze.filemanager.shadows.ShadowMultiDex;
@@ -47,7 +46,6 @@ import android.os.Environment;
@RunWith(RobolectricTestRunner.class)
@Config(
constants = BuildConfig.class,
shadows = {ShadowMultiDex.class},
maxSdk = 27)
public abstract class AbstractSftpServerTest {
@@ -38,7 +38,6 @@ import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import com.amaze.filemanager.BuildConfig;
import com.amaze.filemanager.database.UtilitiesDatabase;
import com.amaze.filemanager.database.UtilsHandler;
import com.amaze.filemanager.database.models.OperationData;
@@ -54,7 +53,6 @@ import net.schmizz.sshj.common.SecurityUtils;
@RunWith(RobolectricTestRunner.class)
@Config(
constants = BuildConfig.class,
shadows = {ShadowMultiDex.class, ShadowCryptUtil.class},
maxSdk = 27)
public class SshConnectionPoolTest {
@@ -31,7 +31,6 @@ import org.robolectric.RobolectricTestRunner;
import org.robolectric.android.controller.ActivityController;
import org.robolectric.annotation.Config;
import com.amaze.filemanager.BuildConfig;
import com.amaze.filemanager.shadows.ShadowMultiDex;
import com.amaze.filemanager.ui.activities.MainActivity;
@@ -40,7 +39,6 @@ import android.net.Uri;
@Ignore("Test skipped due to Robolectric unable to inflate SpeedDialView")
@RunWith(RobolectricTestRunner.class)
@Config(
constants = BuildConfig.class,
shadows = {ShadowMultiDex.class},
minSdk = 24,
maxSdk = 27)
@@ -33,7 +33,6 @@ import org.robolectric.RobolectricTestRunner;
import org.robolectric.android.controller.ActivityController;
import org.robolectric.annotation.Config;
import com.amaze.filemanager.BuildConfig;
import com.amaze.filemanager.adapters.data.StorageDirectoryParcelable;
import com.amaze.filemanager.shadows.ShadowMultiDex;
import com.amaze.filemanager.ui.activities.MainActivity;
@@ -44,7 +43,6 @@ import android.text.TextUtils;
@Ignore("Test skipped due to Robolectric unable to inflate SpeedDialView")
@RunWith(RobolectricTestRunner.class)
@Config(
constants = BuildConfig.class,
shadows = {ShadowMultiDex.class},
minSdk = 24,
maxSdk = 27)
@@ -31,7 +31,6 @@ import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import com.amaze.filemanager.BuildConfig;
import com.amaze.filemanager.database.UtilitiesDatabase;
import com.amaze.filemanager.database.UtilsHandler;
import com.amaze.filemanager.database.models.OperationData;
@@ -41,7 +40,6 @@ import com.amaze.filemanager.shadows.ShadowMultiDex;
@RunWith(RobolectricTestRunner.class)
@Config(
constants = BuildConfig.class,
shadows = {ShadowMultiDex.class, ShadowCryptUtil.class},
maxSdk = 27)
public class ShadowCryptUtilTest {
@@ -28,12 +28,10 @@ import org.robolectric.RobolectricTestRunner;
import org.robolectric.android.controller.ActivityController;
import org.robolectric.annotation.Config;
import com.amaze.filemanager.BuildConfig;
import com.amaze.filemanager.shadows.ShadowMultiDex;
@RunWith(RobolectricTestRunner.class)
@Config(
constants = BuildConfig.class,
shadows = {ShadowMultiDex.class},
maxSdk = 27)
public class MainActivityTest {
@@ -42,7 +42,6 @@ import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowContentResolver;
import org.robolectric.shadows.ShadowEnvironment;
import com.amaze.filemanager.BuildConfig;
import com.amaze.filemanager.R;
import com.amaze.filemanager.application.AppConfig;
import com.amaze.filemanager.shadows.ShadowMultiDex;
@@ -56,7 +55,6 @@ import android.widget.TextView;
@RunWith(RobolectricTestRunner.class)
@Config(
constants = BuildConfig.class,
shadows = {ShadowMultiDex.class},
minSdk = 24,
maxSdk = 27)
@@ -30,14 +30,12 @@ import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowMimeTypeMap;
import com.amaze.filemanager.BuildConfig;
import com.amaze.filemanager.shadows.ShadowMultiDex;
import android.webkit.MimeTypeMap;
@RunWith(RobolectricTestRunner.class)
@Config(
constants = BuildConfig.class,
shadows = {ShadowMultiDex.class},
maxSdk = 27)
public class IconsTest {
+1 -1
View File
@@ -6,7 +6,7 @@ buildscript {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath 'com.android.tools.build:gradle:3.6.4'
classpath 'com.dicedmelon.gradle:jacoco-android:0.1.4'
// NOTE: Do not place your application dependencies here; they belong
+2 -2
View File
@@ -1,6 +1,6 @@
#Tue Sep 24 12:34:34 ART 2019
#Sun Jul 19 11:09:24 HKT 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip