diff --git a/src/androidTest/java/de/dennisguse/opentracks/BootReceiverTest.java b/src/androidTest/java/de/dennisguse/opentracks/BootReceiverTest.java index e64c857e9..1ef234a22 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/BootReceiverTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/BootReceiverTest.java @@ -24,14 +24,14 @@ import android.content.Intent; import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.platform.app.InstrumentationRegistry; -import de.dennisguse.opentracks.services.TrackRecordingService; - import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import java.util.List; +import de.dennisguse.opentracks.services.TrackRecordingService; + /** * Tests for the BootReceiver. * @@ -41,22 +41,24 @@ import java.util.List; public class BootReceiverTest { private static final String SERVICE_NAME = "de.dennisguse.opentracks.services.TrackRecordingService"; + private Context context = InstrumentationRegistry.getInstrumentation().getContext(); + /** * Tests the behavior when receive notification which is the phone boot. */ @Test public void testOnReceive_startService() { // Make sure no TrackRecordingService - Intent stopIntent = new Intent(InstrumentationRegistry.getInstrumentation().getContext(), TrackRecordingService.class); - InstrumentationRegistry.getInstrumentation().getContext().stopService(stopIntent); - Assert.assertFalse(isServiceExisted(InstrumentationRegistry.getInstrumentation().getContext(), SERVICE_NAME)); + Intent stopIntent = new Intent(context, TrackRecordingService.class); + context.stopService(stopIntent); + Assert.assertFalse(isServiceExisted(context)); BootReceiver bootReceiver = new BootReceiver(); Intent intent = new Intent(); intent.setAction(Intent.ACTION_BOOT_COMPLETED); - bootReceiver.onReceive(InstrumentationRegistry.getInstrumentation().getContext(), intent); + bootReceiver.onReceive(context, intent); // Check if the service is started - Assert.assertFalse(isServiceExisted(InstrumentationRegistry.getInstrumentation().getContext(), SERVICE_NAME)); + Assert.assertFalse(isServiceExisted(context)); } /** @@ -65,33 +67,32 @@ public class BootReceiverTest { @Test public void testOnReceive_noStartService() { // Make sure no TrackRecordingService - Intent stopIntent = new Intent(InstrumentationRegistry.getInstrumentation().getContext(), TrackRecordingService.class); - InstrumentationRegistry.getInstrumentation().getContext().stopService(stopIntent); - Assert.assertFalse(isServiceExisted(InstrumentationRegistry.getInstrumentation().getContext(), SERVICE_NAME)); + Intent stopIntent = new Intent(context, TrackRecordingService.class); + context.stopService(stopIntent); + Assert.assertFalse(isServiceExisted(context)); BootReceiver bootReceiver = new BootReceiver(); Intent intent = new Intent(); intent.setAction(Intent.ACTION_BUG_REPORT); - bootReceiver.onReceive(InstrumentationRegistry.getInstrumentation().getContext(), intent); + bootReceiver.onReceive(context, intent); // Check if the service is not started - Assert.assertFalse(isServiceExisted(InstrumentationRegistry.getInstrumentation().getContext(), SERVICE_NAME)); + Assert.assertFalse(isServiceExisted(context)); } /** * Checks if a service is started in a context. * - * @param context the context for checking a service - * @param serviceName the service name to find if existed + * @param context the context for checking a service */ - private boolean isServiceExisted(Context context, String serviceName) { + private boolean isServiceExisted(Context context) { ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List serviceList = activityManager.getRunningServices(Integer.MAX_VALUE); for (int i = 0; i < serviceList.size(); i++) { RunningServiceInfo serviceInfo = serviceList.get(i); ComponentName componentName = serviceInfo.service; - if (componentName.getClassName().equals(serviceName)) { + if (componentName.getClassName().equals(SERVICE_NAME)) { return true; } } diff --git a/src/androidTest/java/de/dennisguse/opentracks/ChartValueSeriesTest.java b/src/androidTest/java/de/dennisguse/opentracks/ChartValueSeriesTest.java index 36f39507b..d3065ad0f 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/ChartValueSeriesTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/ChartValueSeriesTest.java @@ -15,8 +15,8 @@ */ package de.dennisguse.opentracks; +import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; -import androidx.test.platform.app.InstrumentationRegistry; import org.junit.Assert; import org.junit.Before; @@ -35,7 +35,7 @@ public class ChartValueSeriesTest { @Before public void setUp() { series = new ChartValueSeries( - InstrumentationRegistry.getInstrumentation().getContext(), + ApplicationProvider.getApplicationContext(), Integer.MIN_VALUE, Integer.MAX_VALUE, new int[]{100, 1000}, diff --git a/src/androidTest/java/de/dennisguse/opentracks/content/CustomContentProviderTest.java b/src/androidTest/java/de/dennisguse/opentracks/content/CustomContentProviderTest.java index 6a05e9ba6..18efe9b70 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/content/CustomContentProviderTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/content/CustomContentProviderTest.java @@ -16,10 +16,11 @@ package de.dennisguse.opentracks.content; +import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.net.Uri; -import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.core.app.ApplicationProvider; import org.junit.Assert; import org.junit.Before; @@ -38,11 +39,12 @@ public class CustomContentProviderTest { private SQLiteDatabase db; private CustomContentProvider customContentProvider; + private Context context = ApplicationProvider.getApplicationContext(); @Before public void setUp() { - InstrumentationRegistry.getInstrumentation().getContext().deleteDatabase(DATABASE_NAME); - db = (new DatabaseHelper(InstrumentationRegistry.getInstrumentation().getContext(), DATABASE_NAME)).getWritableDatabase(); + context.deleteDatabase(DATABASE_NAME); + db = (new DatabaseHelper(context, DATABASE_NAME)).getWritableDatabase(); customContentProvider = new CustomContentProvider(); } @@ -61,7 +63,7 @@ public class CustomContentProviderTest { */ @Test public void testOnCreate() { - Assert.assertTrue(customContentProvider.onCreate(InstrumentationRegistry.getInstrumentation().getContext())); + Assert.assertTrue(customContentProvider.onCreate(context)); } /** @@ -116,7 +118,7 @@ public class CustomContentProviderTest { try { db.execSQL("SElECT count(*) from " + table + " order by " + column); } catch (Exception e) { - if (e.getMessage().indexOf("no such column") > -1) { + if (e.getMessage().contains("no such column")) { return false; } } @@ -136,7 +138,7 @@ public class CustomContentProviderTest { createTable(TrackPointsColumns.TABLE_NAME); createTable(WaypointsColumns.TABLE_NAME); - DatabaseHelper databaseHelper = new DatabaseHelper(InstrumentationRegistry.getInstrumentation().getContext()); + DatabaseHelper databaseHelper = new DatabaseHelper(context); databaseHelper.onUpgrade(db, oldVersion, CustomContentProvider.DATABASE_VERSION); } } \ No newline at end of file diff --git a/src/androidTest/java/de/dennisguse/opentracks/content/DescriptionGeneratorImplTest.java b/src/androidTest/java/de/dennisguse/opentracks/content/DescriptionGeneratorImplTest.java index cd498d082..1f4172168 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/content/DescriptionGeneratorImplTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/content/DescriptionGeneratorImplTest.java @@ -16,8 +16,10 @@ package de.dennisguse.opentracks.content; +import android.content.Context; + +import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; -import androidx.test.platform.app.InstrumentationRegistry; import org.junit.Assert; import org.junit.Before; @@ -39,9 +41,11 @@ public class DescriptionGeneratorImplTest { private static final long START_TIME = 1288721514000L; private DescriptionGeneratorImpl descriptionGenerator; + private Context context = ApplicationProvider.getApplicationContext(); + @Before - public void setUp() throws Exception { - descriptionGenerator = new DescriptionGeneratorImpl(InstrumentationRegistry.getInstrumentation().getContext()); + public void setUp() { + descriptionGenerator = new DescriptionGeneratorImpl(ApplicationProvider.getApplicationContext()); } /** @@ -82,7 +86,7 @@ public class DescriptionGeneratorImplTest { + "Elevation gain: 6000 m (19685 ft)
" + "Max grade: 42 %
" + "Min grade: 11 %
" - + "Recorded: " + StringUtils.formatDateTime(InstrumentationRegistry.getInstrumentation().getContext(), START_TIME) + "
"; + + "Recorded: " + StringUtils.formatDateTime(context, START_TIME) + "
"; Assert.assertEquals(expected, descriptionGenerator.generateTrackDescription(track, null, null, true)); } @@ -118,7 +122,7 @@ public class DescriptionGeneratorImplTest { + "Elevation gain: 6000 m (19685 ft)\n" + "Max grade: 42 %\n" + "Min grade: 11 %\n" - + "Recorded: " + StringUtils.formatDateTime(InstrumentationRegistry.getInstrumentation().getContext(), START_TIME) + "\n"; + + "Recorded: " + StringUtils.formatDateTime(context, START_TIME) + "\n"; Assert.assertEquals(expected, descriptionGenerator.generateWaypointDescription(waypoint.getTripStatistics())); } @@ -206,8 +210,7 @@ public class DescriptionGeneratorImplTest { @Test public void testWriteGrade_infinite() { StringBuilder builder = new StringBuilder(); - descriptionGenerator.writeGrade( - Double.POSITIVE_INFINITY, builder, R.string.description_max_grade, "
"); + descriptionGenerator.writeGrade(Double.POSITIVE_INFINITY, builder, R.string.description_max_grade, "
"); Assert.assertEquals("Max grade: 0 %
", builder.toString()); } } diff --git a/src/androidTest/java/de/dennisguse/opentracks/fragments/ChartFragmentTest.java b/src/androidTest/java/de/dennisguse/opentracks/fragments/ChartFragmentTest.java index 03614f864..51324ff29 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/fragments/ChartFragmentTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/fragments/ChartFragmentTest.java @@ -18,8 +18,8 @@ package de.dennisguse.opentracks.fragments; import android.location.Location; +import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; -import androidx.test.platform.app.InstrumentationRegistry; import org.junit.Assert; import org.junit.Before; @@ -47,7 +47,7 @@ public class ChartFragmentTest { @Before public void setUp() { chartFragment = new ChartFragment(); - chartFragment.setChartView(new ChartView(InstrumentationRegistry.getInstrumentation().getContext())); + chartFragment.setChartView(new ChartView(ApplicationProvider.getApplicationContext())); chartFragment.setTripStatisticsUpdater(TrackStubUtils.INITIAL_TIME); } @@ -109,12 +109,12 @@ public class ChartFragmentTest { // Resets last location and writes first location. SensorDataSetLocation sensorDataSetLocation1 = TrackStubUtils.createSensorDataSetLocation(); double[] point = fillDataPointTestHelper(sensorDataSetLocation1); - Assert.assertEquals(0.0, point[0]); + Assert.assertEquals(0.0, point[0], 0.01); // The second is a same location, just different time. SensorDataSetLocation sensorDataSetLocation2 = TrackStubUtils.createSensorDataSetLocation(); point = fillDataPointTestHelper(sensorDataSetLocation2); - Assert.assertEquals(0.0, point[0]); + Assert.assertEquals(0.0, point[0], 0.01); // The third location is a new location, and use metric. SensorDataSetLocation sensorDataSetLocation3 = TrackStubUtils.createSensorDataSetLocation(); @@ -126,7 +126,7 @@ public class ChartFragmentTest { Location.distanceBetween(sensorDataSetLocation2.getLatitude(), sensorDataSetLocation2.getLongitude(), sensorDataSetLocation3.getLatitude(), sensorDataSetLocation3.getLongitude(), results); double distance1 = results[0] * UnitConversions.M_TO_KM; - Assert.assertEquals(distance1, point[0]); + Assert.assertEquals(distance1, point[0], 0.01); // The fourth location is a new location, and use metric. SensorDataSetLocation sensorDataSetLocation4 = TrackStubUtils.createSensorDataSetLocation(); @@ -137,7 +137,7 @@ public class ChartFragmentTest { Location.distanceBetween(sensorDataSetLocation3.getLatitude(), sensorDataSetLocation3.getLongitude(), sensorDataSetLocation4.getLatitude(), sensorDataSetLocation4.getLongitude(), results); double distance2 = results[0] * UnitConversions.M_TO_KM; - Assert.assertEquals((distance1 + distance2), point[0]); + Assert.assertEquals((distance1 + distance2), point[0], 0.01); } /** @@ -153,7 +153,7 @@ public class ChartFragmentTest { // The first is a same location, just different time. SensorDataSetLocation sensorDataSetLocation1 = TrackStubUtils.createSensorDataSetLocation(); double[] point = fillDataPointTestHelper(sensorDataSetLocation1); - Assert.assertEquals(0.0, point[0]); + Assert.assertEquals(0.0, point[0], 0.01); // The second location is a new location, and use imperial. SensorDataSetLocation sensorDataSetLocation2 = TrackStubUtils.createSensorDataSetLocation(); diff --git a/src/androidTest/java/de/dennisguse/opentracks/util/StringUtilsTest.java b/src/androidTest/java/de/dennisguse/opentracks/util/StringUtilsTest.java index 0f6ad3c38..0304f4b88 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/util/StringUtilsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/util/StringUtilsTest.java @@ -16,10 +16,13 @@ package de.dennisguse.opentracks.util; +import android.content.Context; + +import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; -import androidx.test.platform.app.InstrumentationRegistry; import org.junit.Assert; +import org.junit.Test; import org.junit.runner.RunWith; import java.util.GregorianCalendar; @@ -33,9 +36,13 @@ import java.util.TimeZone; @RunWith(AndroidJUnit4.class) public class StringUtilsTest { + private Context context = ApplicationProvider.getApplicationContext(); + + /** * Tests {@link StringUtils#formatDateTimeIso8601(long)}. */ + @Test public void testFormatDateTimeIso8601() { Assert.assertEquals("1970-01-01T00:00:12.345Z", StringUtils.formatDateTimeIso8601(12345)); } @@ -43,6 +50,7 @@ public class StringUtilsTest { /** * Tests {@link StringUtils#formatElapsedTime(long)}. */ + @Test public void testformatElapsedTime() { // 1 second Assert.assertEquals("00:01", StringUtils.formatElapsedTime(1000)); @@ -63,6 +71,7 @@ public class StringUtilsTest { /** * Tests {@link StringUtils#formatElapsedTimeWithHour(long)}. */ + @Test public void testformatElapsedTimeWithHour() { // 1 second Assert.assertEquals("0:00:01", StringUtils.formatElapsedTimeWithHour(1000)); @@ -84,20 +93,22 @@ public class StringUtilsTest { * Tests {@link StringUtils#formatDistance(android.content.Context, double, * boolean)}. */ + @Test public void testFormatDistance() { // A large number in metric - Assert.assertEquals("5.00 km", StringUtils.formatDistance(InstrumentationRegistry.getInstrumentation().getContext(), 5000, true)); + Assert.assertEquals("5.00 km", StringUtils.formatDistance(context, 5000, true)); // A large number in imperial - Assert.assertEquals("3.11 mi", StringUtils.formatDistance(InstrumentationRegistry.getInstrumentation().getContext(), 5000, false)); + Assert.assertEquals("3.11 mi", StringUtils.formatDistance(context, 5000, false)); // A small number in metric - Assert.assertEquals("100.00 m", StringUtils.formatDistance(InstrumentationRegistry.getInstrumentation().getContext(), 100, true)); + Assert.assertEquals("100.00 m", StringUtils.formatDistance(context, 100, true)); // A small number in imperial - Assert.assertEquals("328.08 ft", StringUtils.formatDistance(InstrumentationRegistry.getInstrumentation().getContext(), 100, false)); + Assert.assertEquals("328.08 ft", StringUtils.formatDistance(context, 100, false)); } /** * Tests {@link StringUtils#formatCData(String)}. */ + @Test public void testFormatCData() { Assert.assertEquals("", StringUtils.formatCData("hello")); Assert.assertEquals("there]]>", StringUtils.formatCData("hello]]>there")); @@ -106,6 +117,7 @@ public class StringUtilsTest { /** * Tests {@link StringUtils#getTime(String)}. */ + @Test public void testGetTime() { assertGetTime("2010-05-04T03:02:01", 2010, 5, 4, 3, 2, 1, 0); assertGetTime("2010-05-04T03:02:01Z", 2010, 5, 4, 3, 2, 1, 0); @@ -114,6 +126,7 @@ public class StringUtilsTest { /** * Tests {@link StringUtils#getTime(String)} with fractional seconds. */ + @Test public void testGetTime_fractional() { assertGetTime("2010-05-04T03:02:01.3", 2010, 5, 4, 3, 2, 1, 300); assertGetTime("2010-05-04T03:02:01.35", 2010, 5, 4, 3, 2, 1, 350); @@ -124,6 +137,7 @@ public class StringUtilsTest { /** * Tests {@link StringUtils#getTime(String)} with time zone. */ + @Test public void testGetTime_timezone() { assertGetTime("2010-05-04T03:02:01Z", 2010, 5, 4, 3, 2, 1, 0); assertGetTime("2010-05-04T03:02:01+00:00", 2010, 5, 4, 3, 2, 1, 0); @@ -138,6 +152,7 @@ public class StringUtilsTest { * Tests {@link StringUtils#getTime(String)} with fractional seconds and time * zone. */ + @Test public void testGetTime_fractionalAndTimezone() { assertGetTime("2010-05-04T03:02:01.352Z", 2010, 5, 4, 3, 2, 1, 352); assertGetTime("2010-05-04T03:02:01.47+00:00", 2010, 5, 4, 3, 2, 1, 470); @@ -169,6 +184,7 @@ public class StringUtilsTest { /** * Tests {@link StringUtils#getTimeParts(long)} with a positive number. */ + @Test public void testGetTimeParts_postive() { int[] parts = StringUtils.getTimeParts(61000); Assert.assertEquals(1, parts[0]); @@ -179,6 +195,7 @@ public class StringUtilsTest { /** * Tests {@link StringUtils#getTimeParts(long)} with a negative number. */ + @Test public void testGetTimeParts_negative() { int[] parts = StringUtils.getTimeParts(-61000); Assert.assertEquals(-1, parts[0]); diff --git a/src/androidTest/java/de/dennisguse/opentracks/util/TrackNameUtilsTest.java b/src/androidTest/java/de/dennisguse/opentracks/util/TrackNameUtilsTest.java index 8002841ea..ccb94b160 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/util/TrackNameUtilsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/util/TrackNameUtilsTest.java @@ -18,10 +18,11 @@ package de.dennisguse.opentracks.util; import android.content.Context; +import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; -import androidx.test.platform.app.InstrumentationRegistry; import org.junit.Assert; +import org.junit.Test; import org.junit.runner.RunWith; import java.text.SimpleDateFormat; @@ -41,12 +42,13 @@ public class TrackNameUtilsTest { private static final long TRACK_ID = 1L; private static final long START_TIME = 1288213406000L; - private static final Context CONTEXT = InstrumentationRegistry.getInstrumentation().getContext(); + private static final Context CONTEXT = ApplicationProvider.getApplicationContext(); /** * Tests when the track_name_key is * settings_recording_track_name_date_local_value. */ + @Test public void testTrackName_date_local() { PreferencesUtils.setString(CONTEXT, R.string.track_name_key, CONTEXT.getString(R.string.settings_recording_track_name_date_local_value)); Assert.assertEquals(StringUtils.formatDateTime(CONTEXT, START_TIME), TrackNameUtils.getTrackName(CONTEXT, TRACK_ID, START_TIME)); @@ -56,6 +58,7 @@ public class TrackNameUtilsTest { * Tests when the track_name_key is * settings_recording_track_name_date_iso_8601_value. */ + @Test public void testTrackName_date_iso_8601() { PreferencesUtils.setString(CONTEXT, R.string.track_name_key, CONTEXT.getString(R.string.settings_recording_track_name_date_iso_8601_value)); SimpleDateFormat simpleDateFormat = new SimpleDateFormat(TrackNameUtils.ISO_8601_FORMAT, Locale.US); @@ -66,6 +69,7 @@ public class TrackNameUtilsTest { * Tests when the track_name_key is * settings_recording_track_name_number_value. */ + @Test public void testTrackName_number() { PreferencesUtils.setString(CONTEXT, R.string.track_name_key, CONTEXT.getString(R.string.settings_recording_track_name_number_value)); Assert.assertEquals("Track " + TRACK_ID, TrackNameUtils.getTrackName(CONTEXT, TRACK_ID, START_TIME));