diff --git a/MyTracks/src/com/google/android/apps/mytracks/maps/DynamicSpeedTrackPathDescriptor.java b/MyTracks/src/com/google/android/apps/mytracks/maps/DynamicSpeedTrackPathDescriptor.java index b9dae800b..4f39583c0 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/maps/DynamicSpeedTrackPathDescriptor.java +++ b/MyTracks/src/com/google/android/apps/mytracks/maps/DynamicSpeedTrackPathDescriptor.java @@ -129,6 +129,14 @@ public class DynamicSpeedTrackPathDescriptor implements TrackPathDescriptor { int getSpeedMargin() { return speedMargin; } + + /** + * Sets the speed margin. + */ + @VisibleForTesting + void setSpeedMargin(int value) { + speedMargin = value; + } /** * Gets the average moving speed. diff --git a/MyTracks/src/com/google/android/apps/mytracks/maps/MultiColorTrackPath.java b/MyTracks/src/com/google/android/apps/mytracks/maps/MultiColorTrackPath.java index a16785398..3e2b14743 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/maps/MultiColorTrackPath.java +++ b/MyTracks/src/com/google/android/apps/mytracks/maps/MultiColorTrackPath.java @@ -20,6 +20,7 @@ import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.Polyline; import com.google.android.maps.mytracks.R; +import com.google.common.annotations.VisibleForTesting; import android.content.Context; @@ -102,7 +103,8 @@ public class MultiColorTrackPath implements TrackPath { TrackPathUtils.addPath(googleMap, paths, lastSegmentPoints, lastSegmentColor, useLastPolyline); } - private int getColor(int speed) { + @VisibleForTesting + protected int getColor(int speed) { if (speed <= trackPathDescriptor.getSlowSpeed()) { return slowColor; } else if (speed <= trackPathDescriptor.getNormalSpeed()) { @@ -111,4 +113,16 @@ public class MultiColorTrackPath implements TrackPath { return fastColor; } } + + public int getSlowColor() { + return slowColor; + } + + public int getNormalColor() { + return normalColor; + } + + public int getFastColor() { + return fastColor; + } } \ No newline at end of file diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/EndToEndTestUtils.java b/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/EndToEndTestUtils.java index 8f9d8fa62..6d3f76972 100644 --- a/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/EndToEndTestUtils.java +++ b/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/EndToEndTestUtils.java @@ -971,8 +971,9 @@ public class EndToEndTestUtils { * Waits a text to disappear. */ public static void waitTextToDisappear(String text) { + instrumentation.waitForIdleSync(); // The first wait should longer than following waits. - SOLO.waitForText(text, 1, SHORT_WAIT_TIME); + SOLO.waitForText(text, 1, 500); while (SOLO.waitForText(text, 1, 200)) {} return; } diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/SettingTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/SettingTest.java index 83aa2c999..129196821 100644 --- a/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/SettingTest.java +++ b/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/SettingTest.java @@ -17,9 +17,11 @@ package com.google.android.apps.mytracks.endtoendtest; import com.google.android.apps.mytracks.ChartView; import com.google.android.apps.mytracks.TrackListActivity; +import com.google.android.apps.mytracks.util.PreferencesUtils; import com.google.android.maps.mytracks.R; import android.app.Instrumentation; +import android.content.Context; import android.test.ActivityInstrumentationTestCase2; import android.widget.CheckBox; @@ -31,7 +33,7 @@ import java.util.ArrayList; * @author Youtao Liu */ public class SettingTest extends ActivityInstrumentationTestCase2 { - + private Instrumentation instrumentation; private TrackListActivity activityMyTracks; @@ -44,7 +46,7 @@ public class SettingTest extends ActivityInstrumentationTestCase2 sharingCheckBoxs = EndToEndTestUtils.SOLO.getCurrentCheckBoxes(); boolean newMapsPublic = sharingCheckBoxs.get(0).isChecked(); EndToEndTestUtils.SOLO.clickOnCheckBox(0); instrumentation.waitForIdleSync(); assertTrue(EndToEndTestUtils.SOLO.waitForText( - activityMyTracks.getString(R.string.settings_sharing_allow_access), 1, EndToEndTestUtils.NORMAL_WAIT_TIME)); + activityMyTracks.getString(R.string.settings_sharing_allow_access), 1, + EndToEndTestUtils.NORMAL_WAIT_TIME)); assertEquals(!newMapsPublic, EndToEndTestUtils.SOLO.getCurrentCheckBoxes().get(0).isChecked()); EndToEndTestUtils.SOLO.goBack(); // Reset all settings. EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.settings_reset)); - EndToEndTestUtils.getButtonOnScreen(activityMyTracks.getString(R.string.generic_ok), true, true); + EndToEndTestUtils + .getButtonOnScreen(activityMyTracks.getString(R.string.generic_ok), true, true); // Check settings. // Add following scroll up for a bug of Robotium. EndToEndTestUtils.SOLO.scrollUp(); EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.track_detail_stats_tab)); - assertTrue(EndToEndTestUtils.SOLO.waitForText(activityMyTracks - .getString(R.string.settings_stats_units_title), 1, EndToEndTestUtils.LONG_WAIT_TIME)); + assertTrue(EndToEndTestUtils.SOLO.waitForText( + activityMyTracks.getString(R.string.settings_stats_units_title), 1, + EndToEndTestUtils.LONG_WAIT_TIME)); displayCheckBoxs = EndToEndTestUtils.SOLO.getCurrentCheckBoxes(); assertEquals(useMetric, displayCheckBoxs.get(0).isChecked()); @@ -115,7 +121,7 @@ public class SettingTest extends ActivityInstrumentationTestCase2