diff --git a/app/build.gradle b/app/build.gradle index 4ac7af80b..6712b923b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -53,7 +53,7 @@ dependencies { compile 'com.github.apl-devs:appintro:v4.2.0' compile "com.vanniktech:vntnumberpickerpreference:1.0.0" testCompile 'junit:junit:4.12' - testCompile "org.robolectric:robolectric:3.3.2" + testCompile "org.robolectric:robolectric:4.0.2" } task findbugs(type: FindBugs, dependsOn: 'assembleDebug') { @@ -73,4 +73,4 @@ task findbugs(type: FindBugs, dependsOn: 'assembleDebug') { xml.enabled = false html.enabled = true } -} +} \ No newline at end of file diff --git a/app/src/test/java/protect/card_locker/BarcodeSelectorActivityTest.java b/app/src/test/java/protect/card_locker/BarcodeSelectorActivityTest.java index a4e8f05ef..0d53e506f 100644 --- a/app/src/test/java/protect/card_locker/BarcodeSelectorActivityTest.java +++ b/app/src/test/java/protect/card_locker/BarcodeSelectorActivityTest.java @@ -18,7 +18,7 @@ import static org.junit.Assert.assertEquals; import static org.robolectric.Shadows.shadowOf; @RunWith(RobolectricTestRunner.class) -@Config(constants = BuildConfig.class, sdk = 23) +@Config(sdk = 23) public class BarcodeSelectorActivityTest { @Test public void emptyStateTest() diff --git a/app/src/test/java/protect/card_locker/DatabaseTest.java b/app/src/test/java/protect/card_locker/DatabaseTest.java index a19771dd2..7bcaaa442 100644 --- a/app/src/test/java/protect/card_locker/DatabaseTest.java +++ b/app/src/test/java/protect/card_locker/DatabaseTest.java @@ -21,7 +21,7 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; @RunWith(RobolectricTestRunner.class) -@Config(constants = BuildConfig.class, sdk = 23) +@Config(sdk = 23) public class DatabaseTest { private DBHelper db; diff --git a/app/src/test/java/protect/card_locker/ImportExportActivityTest.java b/app/src/test/java/protect/card_locker/ImportExportActivityTest.java index 8c096110e..8da091476 100644 --- a/app/src/test/java/protect/card_locker/ImportExportActivityTest.java +++ b/app/src/test/java/protect/card_locker/ImportExportActivityTest.java @@ -1,33 +1,32 @@ package protect.card_locker; +import static org.junit.Assert.assertEquals; +import static org.robolectric.Shadows.shadowOf; + import android.app.Activity; import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.pm.ApplicationInfo; +import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.net.Uri; import android.view.View; - import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; -import org.robolectric.res.builder.RobolectricPackageManager; - -import static org.robolectric.Shadows.shadowOf; - -import static org.junit.Assert.assertEquals; +import org.robolectric.shadows.ShadowPackageManager; @RunWith(RobolectricTestRunner.class) -@Config(constants = BuildConfig.class, sdk = 23) +@Config(sdk = 23) public class ImportExportActivityTest { private void registerIntentHandler(String handler) { // Add something that will 'handle' the given intent type - RobolectricPackageManager packageManager = shadowOf(RuntimeEnvironment.application.getPackageManager()); + PackageManager packageManager = RuntimeEnvironment.application.getPackageManager(); ResolveInfo info = new ResolveInfo(); info.isDefault = true; @@ -47,7 +46,7 @@ public class ImportExportActivityTest intent.setType("*/*"); } - packageManager.addResolveInfoForIntent(intent, info); + shadowOf(packageManager).addResolveInfoForIntent(intent, info); } private void checkVisibility(Activity activity, int state, int divider, int title, int message, int button) diff --git a/app/src/test/java/protect/card_locker/ImportExportTest.java b/app/src/test/java/protect/card_locker/ImportExportTest.java index 9a2b9ca3e..ef97751f0 100644 --- a/app/src/test/java/protect/card_locker/ImportExportTest.java +++ b/app/src/test/java/protect/card_locker/ImportExportTest.java @@ -32,7 +32,7 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; @RunWith(RobolectricTestRunner.class) -@Config(constants = BuildConfig.class, sdk = 23) +@Config(sdk = 23) public class ImportExportTest { private Activity activity; diff --git a/app/src/test/java/protect/card_locker/ImportURITest.java b/app/src/test/java/protect/card_locker/ImportURITest.java index c78f95605..015c43395 100644 --- a/app/src/test/java/protect/card_locker/ImportURITest.java +++ b/app/src/test/java/protect/card_locker/ImportURITest.java @@ -16,7 +16,7 @@ import static org.junit.Assert.assertTrue; import static protect.card_locker.DBHelper.LoyaltyCardDbIds; @RunWith(RobolectricTestRunner.class) -@Config(constants = BuildConfig.class, sdk = 23) +@Config(sdk = 23) public class ImportURITest { private ImportURIHelper importURIHelper; private DBHelper db; diff --git a/app/src/test/java/protect/card_locker/LoyaltyCardCursorAdapterTest.java b/app/src/test/java/protect/card_locker/LoyaltyCardCursorAdapterTest.java index 225dfb369..9b719c895 100644 --- a/app/src/test/java/protect/card_locker/LoyaltyCardCursorAdapterTest.java +++ b/app/src/test/java/protect/card_locker/LoyaltyCardCursorAdapterTest.java @@ -20,7 +20,7 @@ import org.robolectric.annotation.Config; import static org.junit.Assert.assertEquals; @RunWith(RobolectricTestRunner.class) -@Config(constants = BuildConfig.class, sdk = 23) +@Config(sdk = 23) public class LoyaltyCardCursorAdapterTest { private Activity activity; diff --git a/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java b/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java index 5d1f7f6b3..e0b6b7441 100644 --- a/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java +++ b/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java @@ -1,48 +1,46 @@ package protect.card_locker; -import android.app.Activity; -import android.content.Intent; -import android.content.SharedPreferences; -import android.content.pm.ActivityInfo; -import android.content.pm.ApplicationInfo; -import android.content.pm.ResolveInfo; -import android.graphics.Color; -import android.graphics.drawable.ColorDrawable; -import android.net.Uri; -import android.os.Bundle; -import android.preference.PreferenceManager; -import androidx.core.widget.TextViewCompat; -import android.view.Menu; -import android.view.MenuItem; -import android.view.View; -import android.widget.Button; -import android.widget.EditText; -import android.widget.TextView; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.client.android.Intents; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.robolectric.Robolectric; -import org.robolectric.RobolectricTestRunner; -import org.robolectric.RuntimeEnvironment; -import org.robolectric.annotation.Config; -import org.robolectric.res.builder.RobolectricPackageManager; -import org.robolectric.shadows.ShadowActivity; -import org.robolectric.shadows.ShadowLog; -import org.robolectric.android.controller.ActivityController; - -import java.io.IOException; - import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.robolectric.Shadows.shadowOf; +import android.app.Activity; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.pm.ActivityInfo; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.net.Uri; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.TextView; +import androidx.core.widget.TextViewCompat; +import com.google.zxing.BarcodeFormat; +import com.google.zxing.client.android.Intents; +import java.io.IOException; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.robolectric.Robolectric; +import org.robolectric.RobolectricTestRunner; +import org.robolectric.RuntimeEnvironment; +import org.robolectric.android.controller.ActivityController; +import org.robolectric.annotation.Config; +import org.robolectric.shadows.ShadowPackageManager; +import org.robolectric.shadows.ShadowActivity; +import org.robolectric.shadows.ShadowLog; + @RunWith(RobolectricTestRunner.class) -@Config(constants = BuildConfig.class, sdk = 23) +@Config(sdk = 23) public class LoyaltyCardViewActivityTest { private final String BARCODE_DATA = "428311627547"; @@ -72,7 +70,7 @@ public class LoyaltyCardViewActivityTest private void registerMediaStoreIntentHandler() { // Add something that will 'handle' the media capture intent - RobolectricPackageManager packageManager = shadowOf(RuntimeEnvironment.application.getPackageManager()); + PackageManager packageManager = RuntimeEnvironment.application.getPackageManager(); ResolveInfo info = new ResolveInfo(); info.isDefault = true; @@ -85,7 +83,7 @@ public class LoyaltyCardViewActivityTest Intent intent = new Intent(Intents.Scan.ACTION); - packageManager.addResolveInfoForIntent(intent, info); + shadowOf(packageManager).addResolveInfoForIntent(intent, info); } /** @@ -228,7 +226,7 @@ public class LoyaltyCardViewActivityTest activityController.resume(); Activity activity = (Activity)activityController.get(); - ShadowActivity shadowActivity = shadowOf(activity); + DBHelper db = new DBHelper(activity); assertEquals(0, db.getLoyaltyCardCount()); @@ -236,15 +234,15 @@ public class LoyaltyCardViewActivityTest final EditText noteField = activity.findViewById(R.id.noteEdit); final TextView cardIdField = activity.findViewById(R.id.cardIdView); - shadowActivity.clickMenuItem(R.id.action_save); + shadowOf(activity).clickMenuItem(R.id.action_save); assertEquals(0, db.getLoyaltyCardCount()); storeField.setText("store"); - shadowActivity.clickMenuItem(R.id.action_save); + shadowOf(activity).clickMenuItem(R.id.action_save); assertEquals(0, db.getLoyaltyCardCount()); noteField.setText("note"); - shadowActivity.clickMenuItem(R.id.action_save); + shadowOf(activity).clickMenuItem(R.id.action_save); assertEquals(0, db.getLoyaltyCardCount()); } @@ -348,7 +346,7 @@ public class LoyaltyCardViewActivityTest intent.putExtras(bundle); - return Robolectric.buildActivity(clazz).withIntent(intent).create(); + return Robolectric.buildActivity(clazz, intent).create(); } @Test @@ -629,7 +627,7 @@ public class LoyaltyCardViewActivityTest Intent intent = new Intent(); intent.setData(importUri); - ActivityController activityController = Robolectric.buildActivity(LoyaltyCardEditActivity.class).withIntent(intent).create(); + ActivityController activityController = Robolectric.buildActivity(LoyaltyCardEditActivity.class, intent).create(); activityController.start(); activityController.visible(); @@ -638,7 +636,7 @@ public class LoyaltyCardViewActivityTest Activity activity = (Activity)activityController.get(); checkAllFields(activity, ViewMode.ADD_CARD, "Example Store", "", "123456", "AZTEC"); - assertEquals(activity.findViewById(R.id.headingColorSample).getBackground(), new ColorDrawable(-416706)); - assertEquals(activity.findViewById(R.id.headingStoreTextColorSample).getBackground(), new ColorDrawable(-1)); + assertEquals(-416706, ((ColorDrawable) activity.findViewById(R.id.headingColorSample).getBackground()).getColor()); + assertEquals(-1, ((ColorDrawable) activity.findViewById(R.id.headingStoreTextColorSample).getBackground()).getColor()); } } diff --git a/app/src/test/java/protect/card_locker/MainActivityTest.java b/app/src/test/java/protect/card_locker/MainActivityTest.java index 767c10adb..e4cbc69c6 100644 --- a/app/src/test/java/protect/card_locker/MainActivityTest.java +++ b/app/src/test/java/protect/card_locker/MainActivityTest.java @@ -32,7 +32,7 @@ import static org.junit.Assert.assertTrue; import static org.robolectric.Shadows.shadowOf; @RunWith(RobolectricTestRunner.class) -@Config(constants = BuildConfig.class, sdk = 23) +@Config(sdk = 23) public class MainActivityTest { private SharedPreferences prefs; diff --git a/gradle.properties b/gradle.properties index 81c79fe48..a74d1fa9b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -23,3 +23,4 @@ android.enableAapt2=false android.enableJetifier=true android.useAndroidX=true +android.enableUnitTestBinaryResources=true \ No newline at end of file