From e89258c173529b90321d36ed4d153b12ad85d5c3 Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Tue, 13 Aug 2019 22:13:55 +0200 Subject: [PATCH] Fixed some tests by using the application context. Fixed some tests by using the application context. Fixed some tests by using the application context. Fixed some tests by using the application context. --- .../opentracks/BootReceiverTest.java | 33 ++++++++++--------- .../opentracks/ChartValueSeriesTest.java | 4 +-- .../content/CustomContentProviderTest.java | 14 ++++---- .../content/DescriptionGeneratorImplTest.java | 17 ++++++---- .../fragments/ChartFragmentTest.java | 14 ++++---- .../opentracks/util/StringUtilsTest.java | 27 ++++++++++++--- .../opentracks/util/TrackNameUtilsTest.java | 8 +++-- 7 files changed, 72 insertions(+), 45 deletions(-) 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));