forked from upstream-mirrors/OpenTracks
EspressoCategoryUnitTest needs to set metricUnits.
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package de.dennisguse.opentracks;
|
package de.dennisguse.opentracks;
|
||||||
|
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.view.ViewParent;
|
import android.view.ViewParent;
|
||||||
@@ -12,6 +13,7 @@ import androidx.test.espresso.ViewInteraction;
|
|||||||
import androidx.test.ext.junit.rules.ActivityScenarioRule;
|
import androidx.test.ext.junit.rules.ActivityScenarioRule;
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||||
import androidx.test.filters.LargeTest;
|
import androidx.test.filters.LargeTest;
|
||||||
|
import androidx.test.platform.app.InstrumentationRegistry;
|
||||||
import androidx.test.rule.GrantPermissionRule;
|
import androidx.test.rule.GrantPermissionRule;
|
||||||
|
|
||||||
import org.hamcrest.Description;
|
import org.hamcrest.Description;
|
||||||
@@ -19,6 +21,7 @@ import org.hamcrest.Matcher;
|
|||||||
import org.hamcrest.TypeSafeMatcher;
|
import org.hamcrest.TypeSafeMatcher;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
import org.junit.rules.TestRule;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
import static androidx.test.espresso.Espresso.onData;
|
import static androidx.test.espresso.Espresso.onData;
|
||||||
@@ -47,7 +50,12 @@ public class EspressoCategoryUnitTest {
|
|||||||
public ActivityScenarioRule<TrackListActivity> mActivityTestRule = new ActivityScenarioRule<>(TrackListActivity.class);
|
public ActivityScenarioRule<TrackListActivity> mActivityTestRule = new ActivityScenarioRule<>(TrackListActivity.class);
|
||||||
|
|
||||||
@Rule
|
@Rule
|
||||||
public GrantPermissionRule mRuntimePermissionRule = GrantPermissionRule.grant(android.Manifest.permission.ACCESS_FINE_LOCATION);
|
public TestRule mRuntimePermissionRule = GrantPermissionRule.grant(android.Manifest.permission.ACCESS_FINE_LOCATION);
|
||||||
|
|
||||||
|
private final Context context = InstrumentationRegistry.getInstrumentation().getTargetContext();
|
||||||
|
|
||||||
|
@Rule
|
||||||
|
public TestRule mLocaleRule = new PreferenceMetricUnitRule(context, true);
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void changeBetweenCategoryUpdateProperlyUnitTest() {
|
public void changeBetweenCategoryUpdateProperlyUnitTest() {
|
||||||
|
|||||||
@@ -0,0 +1,40 @@
|
|||||||
|
package de.dennisguse.opentracks;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import org.junit.rules.TestRule;
|
||||||
|
import org.junit.runner.Description;
|
||||||
|
import org.junit.runners.model.Statement;
|
||||||
|
|
||||||
|
import de.dennisguse.opentracks.util.PreferencesUtils;
|
||||||
|
|
||||||
|
public class PreferenceMetricUnitRule implements TestRule {
|
||||||
|
private final Context context;
|
||||||
|
private final boolean metricUnits;
|
||||||
|
|
||||||
|
public PreferenceMetricUnitRule(@NonNull Context context, boolean metricUnits) {
|
||||||
|
this.context = context;
|
||||||
|
this.metricUnits = metricUnits;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Statement apply(final Statement base, final Description description) {
|
||||||
|
return new Statement() {
|
||||||
|
@Override
|
||||||
|
public void evaluate() throws Throwable {
|
||||||
|
SharedPreferences sharedPreferences = PreferencesUtils.getSharedPreferences(context);
|
||||||
|
final boolean previousMetricUnits = PreferencesUtils.isMetricUnits(sharedPreferences, context);
|
||||||
|
|
||||||
|
try {
|
||||||
|
PreferencesUtils.setMetricUnits(sharedPreferences, context, metricUnits);
|
||||||
|
base.evaluate();
|
||||||
|
} finally {
|
||||||
|
PreferencesUtils.setMetricUnits(sharedPreferences, context, previousMetricUnits);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -30,8 +30,7 @@ public class Startup extends Application {
|
|||||||
// Set default values of preferences on first start.
|
// Set default values of preferences on first start.
|
||||||
SharedPreferences sharedPreferences = PreferencesUtils.resetPreferences(this, false);
|
SharedPreferences sharedPreferences = PreferencesUtils.resetPreferences(this, false);
|
||||||
if (PreferencesUtils.getString(sharedPreferences, this, R.string.stats_units_key, "").equals("")) {
|
if (PreferencesUtils.getString(sharedPreferences, this, R.string.stats_units_key, "").equals("")) {
|
||||||
String statsUnits = getString(Locale.US.equals(Locale.getDefault()) ? R.string.stats_units_imperial : R.string.stats_units_metric);
|
PreferencesUtils.setMetricUnits(sharedPreferences, this, !Locale.US.equals(Locale.getDefault()));
|
||||||
PreferencesUtils.setString(sharedPreferences, this, R.string.stats_units_key, statsUnits);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ActivityUtils.applyNightMode(sharedPreferences, this);
|
ActivityUtils.applyNightMode(sharedPreferences, this);
|
||||||
|
|||||||
@@ -112,6 +112,16 @@ public class PreferencesUtils {
|
|||||||
return STATS_UNIT.equals(getString(sharedPreferences, context, R.string.stats_units_key, STATS_UNIT));
|
return STATS_UNIT.equals(getString(sharedPreferences, context, R.string.stats_units_key, STATS_UNIT));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void setMetricUnits(SharedPreferences sharedPreferences, Context context, boolean metricUnits) {
|
||||||
|
String unit;
|
||||||
|
if (metricUnits) {
|
||||||
|
unit = context.getString(R.string.stats_units_metric);
|
||||||
|
} else {
|
||||||
|
unit = context.getString(R.string.stats_units_imperial);
|
||||||
|
}
|
||||||
|
setString(sharedPreferences, context, R.string.stats_units_key, unit);
|
||||||
|
}
|
||||||
|
|
||||||
public static boolean isReportSpeed(SharedPreferences sharedPreferences, Context context, String category) {
|
public static boolean isReportSpeed(SharedPreferences sharedPreferences, Context context, String category) {
|
||||||
final String STATS_RATE_DEFAULT = context.getString(R.string.stats_rate_default);
|
final String STATS_RATE_DEFAULT = context.getString(R.string.stats_rate_default);
|
||||||
String currentStatsRate = getString(sharedPreferences, context, R.string.stats_rate_key, STATS_RATE_DEFAULT);
|
String currentStatsRate = getString(sharedPreferences, context, R.string.stats_rate_key, STATS_RATE_DEFAULT);
|
||||||
|
|||||||
Reference in New Issue
Block a user