Add testTrackColorSettings test case and make some code style change.

This commit is contained in:
youtaol
2012-12-10 18:35:17 +08:00
parent be0a067cf0
commit 89b0402a92
2 changed files with 62 additions and 17 deletions
@@ -971,8 +971,9 @@ public class EndToEndTestUtils {
* Waits a text to disappear. * Waits a text to disappear.
*/ */
public static void waitTextToDisappear(String text) { public static void waitTextToDisappear(String text) {
instrumentation.waitForIdleSync();
// The first wait should longer than following waits. // 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)) {} while (SOLO.waitForText(text, 1, 200)) {}
return; return;
} }
@@ -17,9 +17,11 @@ package com.google.android.apps.mytracks.endtoendtest;
import com.google.android.apps.mytracks.ChartView; import com.google.android.apps.mytracks.ChartView;
import com.google.android.apps.mytracks.TrackListActivity; import com.google.android.apps.mytracks.TrackListActivity;
import com.google.android.apps.mytracks.util.PreferencesUtils;
import com.google.android.maps.mytracks.R; import com.google.android.maps.mytracks.R;
import android.app.Instrumentation; import android.app.Instrumentation;
import android.content.Context;
import android.test.ActivityInstrumentationTestCase2; import android.test.ActivityInstrumentationTestCase2;
import android.widget.CheckBox; import android.widget.CheckBox;
@@ -31,7 +33,7 @@ import java.util.ArrayList;
* @author Youtao Liu * @author Youtao Liu
*/ */
public class SettingTest extends ActivityInstrumentationTestCase2<TrackListActivity> { public class SettingTest extends ActivityInstrumentationTestCase2<TrackListActivity> {
private Instrumentation instrumentation; private Instrumentation instrumentation;
private TrackListActivity activityMyTracks; private TrackListActivity activityMyTracks;
@@ -44,7 +46,7 @@ public class SettingTest extends ActivityInstrumentationTestCase2<TrackListActiv
super.setUp(); super.setUp();
instrumentation = getInstrumentation(); instrumentation = getInstrumentation();
activityMyTracks = getActivity(); activityMyTracks = getActivity();
EndToEndTestUtils.setupForAllTest(instrumentation, activityMyTracks); EndToEndTestUtils.setupForDebug(instrumentation, activityMyTracks);
} }
/** /**
@@ -74,26 +76,30 @@ public class SettingTest extends ActivityInstrumentationTestCase2<TrackListActiv
// Change a setting of sharing. // Change a setting of sharing.
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.settings_sharing)); EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.settings_sharing));
assertTrue(EndToEndTestUtils.SOLO.waitForText( 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));
ArrayList<CheckBox> sharingCheckBoxs = EndToEndTestUtils.SOLO.getCurrentCheckBoxes(); ArrayList<CheckBox> sharingCheckBoxs = EndToEndTestUtils.SOLO.getCurrentCheckBoxes();
boolean newMapsPublic = sharingCheckBoxs.get(0).isChecked(); boolean newMapsPublic = sharingCheckBoxs.get(0).isChecked();
EndToEndTestUtils.SOLO.clickOnCheckBox(0); EndToEndTestUtils.SOLO.clickOnCheckBox(0);
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
assertTrue(EndToEndTestUtils.SOLO.waitForText( 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()); assertEquals(!newMapsPublic, EndToEndTestUtils.SOLO.getCurrentCheckBoxes().get(0).isChecked());
EndToEndTestUtils.SOLO.goBack(); EndToEndTestUtils.SOLO.goBack();
// Reset all settings. // Reset all settings.
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.settings_reset)); 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. // Check settings.
// Add following scroll up for a bug of Robotium. // Add following scroll up for a bug of Robotium.
EndToEndTestUtils.SOLO.scrollUp(); EndToEndTestUtils.SOLO.scrollUp();
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.track_detail_stats_tab)); EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.track_detail_stats_tab));
assertTrue(EndToEndTestUtils.SOLO.waitForText(activityMyTracks assertTrue(EndToEndTestUtils.SOLO.waitForText(
.getString(R.string.settings_stats_units_title), 1, EndToEndTestUtils.LONG_WAIT_TIME)); activityMyTracks.getString(R.string.settings_stats_units_title), 1,
EndToEndTestUtils.LONG_WAIT_TIME));
displayCheckBoxs = EndToEndTestUtils.SOLO.getCurrentCheckBoxes(); displayCheckBoxs = EndToEndTestUtils.SOLO.getCurrentCheckBoxes();
assertEquals(useMetric, displayCheckBoxs.get(0).isChecked()); assertEquals(useMetric, displayCheckBoxs.get(0).isChecked());
@@ -115,7 +121,7 @@ public class SettingTest extends ActivityInstrumentationTestCase2<TrackListActiv
// Change it back and verify it. // Change it back and verify it.
ChangePreferredUnits(); ChangePreferredUnits();
} }
/** /**
* Tests the change of stats settings during recording on chart view. * Tests the change of stats settings during recording on chart view.
*/ */
@@ -129,7 +135,7 @@ public class SettingTest extends ActivityInstrumentationTestCase2<TrackListActiv
EndToEndTestUtils.stopRecording(true); EndToEndTestUtils.stopRecording(true);
} }
/** /**
* Tests the change of stats settings during recording on stats tab. * Tests the change of stats settings during recording on stats tab.
*/ */
@@ -143,9 +149,10 @@ public class SettingTest extends ActivityInstrumentationTestCase2<TrackListActiv
EndToEndTestUtils.stopRecording(true); EndToEndTestUtils.stopRecording(true);
} }
/** /**
* Tests displaying elevation, grade and latitude and longitude information in Stats tab. * Tests displaying elevation, grade and latitude and longitude information in
* Stats tab.
*/ */
public void testChangeStatsSettings_showExtraInfos() { public void testChangeStatsSettings_showExtraInfos() {
EndToEndTestUtils.createTrackIfEmpty(5, false); EndToEndTestUtils.createTrackIfEmpty(5, false);
@@ -161,7 +168,7 @@ public class SettingTest extends ActivityInstrumentationTestCase2<TrackListActiv
assertTrue(EndToEndTestUtils.SOLO.waitForText(activityMyTracks assertTrue(EndToEndTestUtils.SOLO.waitForText(activityMyTracks
.getString(R.string.stats_latitude))); .getString(R.string.stats_latitude)));
} }
/** /**
* Changes settings of preferred units and preferred rate. * Changes settings of preferred units and preferred rate.
* *
@@ -188,12 +195,10 @@ public class SettingTest extends ActivityInstrumentationTestCase2<TrackListActiv
.getString(R.string.settings_stats_rate_title)); .getString(R.string.settings_stats_rate_title));
} }
if (changeElevation) { if (changeElevation) {
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.stats_elevation));
.getString(R.string.stats_elevation));
} }
if (changeGrade) { if (changeGrade) {
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.settings_stats_grade));
.getString(R.string.settings_stats_grade));
} }
if (changeLatLong) { if (changeLatLong) {
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
@@ -297,6 +302,45 @@ public class SettingTest extends ActivityInstrumentationTestCase2<TrackListActiv
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.generic_save)); EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.generic_save));
} }
/**
* Tests the setting of track color settings.
*/
public void testTrackColorSettings() {
Context context = activityMyTracks.getApplicationContext();
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_settings), true);
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.menu_map));
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(R.string.settings_map_track_color_mode));
instrumentation.waitForIdleSync();
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(R.string.settings_map_track_color_mode_fixed));
EndToEndTestUtils.waitTextToDisappear(activityMyTracks
.getString(R.string.settings_map_track_color_mode_dynamic_value));
assertEquals(activityMyTracks.getString(R.string.settings_map_track_color_mode_fixed_value),
PreferencesUtils.getString(context, R.string.track_color_mode_key, "error"));
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(R.string.settings_map_track_color_mode));
instrumentation.waitForIdleSync();
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(R.string.settings_map_track_color_mode_dynamic));
EndToEndTestUtils.waitTextToDisappear(activityMyTracks
.getString(R.string.settings_map_track_color_mode_dynamic_value));
assertEquals(activityMyTracks.getString(R.string.settings_map_track_color_mode_dynamic_value),
PreferencesUtils.getString(context, R.string.track_color_mode_key, "error"));
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(R.string.settings_map_track_color_mode));
instrumentation.waitForIdleSync();
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(R.string.settings_map_track_color_mode_single));
EndToEndTestUtils.waitTextToDisappear(activityMyTracks
.getString(R.string.settings_map_track_color_mode_dynamic_value));
assertEquals(activityMyTracks.getString(R.string.settings_map_track_color_mode_single_value),
PreferencesUtils.getString(context, R.string.track_color_mode_key, "error"));
}
@Override @Override
protected void tearDown() throws Exception { protected void tearDown() throws Exception {
EndToEndTestUtils.SOLO.finishOpenedActivities(); EndToEndTestUtils.SOLO.finishOpenedActivities();