Change some resource Id. Add method createTrackIfEmpty to make the code simpler.

This commit is contained in:
youtaol
2012-05-17 19:45:47 +08:00
parent 164ba7a16b
commit 2be5a6732a
9 changed files with 133 additions and 158 deletions
@@ -53,14 +53,9 @@ public class CreateAndSendTrackTest extends ActivityInstrumentationTestCase2<Tra
* Creates a track with markers and the setting to send to google. * Creates a track with markers and the setting to send to google.
*/ */
public void testCreateAndSendTrack() { public void testCreateAndSendTrack() {
if (EndToEndTestUtils.isTrackListEmpty(true)) { EndToEndTestUtils.createTrackIfEmpty(1, false);
// Create a simple track.
EndToEndTestUtils.createSimpleTrack(1);
assertTrue(EndToEndTestUtils.SOLO.searchText(EndToEndTestUtils.TRACK_NAME));
}
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_send_google), true, EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_send_google), true);
false);
EndToEndTestUtils.SOLO.waitForText(activityMyTracks.getString(R.string.send_google_title)); EndToEndTestUtils.SOLO.waitForText(activityMyTracks.getString(R.string.send_google_title));
EndToEndTestUtils.rotateCurrentActivity(); EndToEndTestUtils.rotateCurrentActivity();
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
@@ -93,12 +88,9 @@ public class CreateAndSendTrackTest extends ActivityInstrumentationTestCase2<Tra
* Tests editing a track. * Tests editing a track.
*/ */
public void testEditTrack() { public void testEditTrack() {
if (EndToEndTestUtils.isTrackListEmpty(true)) { EndToEndTestUtils.createTrackIfEmpty(1, false);
// Create a simple track.
EndToEndTestUtils.createSimpleTrack(0);
}
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_edit), true, false); EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_edit), true);
String newTrackName = EndToEndTestUtils.TRACK_NAME_PREFIX + "_new" + System.currentTimeMillis(); String newTrackName = EndToEndTestUtils.TRACK_NAME_PREFIX + "_new" + System.currentTimeMillis();
String newType = "type" + newTrackName; String newType = "type" + newTrackName;
@@ -130,12 +122,12 @@ public class CreateAndSendTrackTest extends ActivityInstrumentationTestCase2<Tra
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
// Send Gps before send marker. // Send Gps before send marker.
EndToEndTestUtils.sendGps(2); EndToEndTestUtils.sendGps(2);
if (EndToEndTestUtils.HAS_ACTIONBAR) { if (EndToEndTestUtils.hasActionBar) {
// Check the title is Recording. // Check the title is Recording.
assertTrue(EndToEndTestUtils.SOLO.searchText(activityMyTracks assertTrue(EndToEndTestUtils.SOLO.searchText(activityMyTracks
.getString(R.string.icon_recording))); .getString(R.string.icon_recording)));
} }
createWaypointAndSplit(); createWaypoint();
EndToEndTestUtils.sendGps(2); EndToEndTestUtils.sendGps(2);
// Back to tracks list. // Back to tracks list.
EndToEndTestUtils.SOLO.goBack(); EndToEndTestUtils.SOLO.goBack();
@@ -159,8 +151,7 @@ public class CreateAndSendTrackTest extends ActivityInstrumentationTestCase2<Tra
*/ */
public void testTrackStartTime() { public void testTrackStartTime() {
// Delete all track first. // Delete all track first.
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_delete_all), true, EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_delete_all), true);
false);
EndToEndTestUtils.SOLO.clickOnButton(activityMyTracks.getString(R.string.generic_ok)); EndToEndTestUtils.SOLO.clickOnButton(activityMyTracks.getString(R.string.generic_ok));
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
// Test should not show relative time. // Test should not show relative time.
@@ -177,25 +168,22 @@ public class CreateAndSendTrackTest extends ActivityInstrumentationTestCase2<Tra
// Test should show relative time. // Test should show relative time.
EndToEndTestUtils.createSimpleTrack(2); EndToEndTestUtils.createSimpleTrack(2);
EndToEndTestUtils.SOLO.goBack(); EndToEndTestUtils.SOLO.goBack();
assertTrue(EndToEndTestUtils.SOLO.waitForText(RELATIVE_STARTTIME_POSTFIX, 1, 500)); assertTrue(EndToEndTestUtils.SOLO.waitForText(RELATIVE_STARTTIME_POSTFIX, 1, 5000));
} }
/** /**
* Creates a way point and a split maker during track recording. * Creates a way point and a split maker during track recording.
*/ */
private void createWaypointAndSplit() { private void createWaypoint() {
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_markers), true, true); EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_markers), true);
EndToEndTestUtils.SOLO.waitForText(activityMyTracks.getString(R.string.marker_list_empty_message)); EndToEndTestUtils.SOLO.waitForText(activityMyTracks.getString(R.string.marker_list_empty_message));
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_insert_marker), true, EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_insert_marker), true);
true);
// Rotate when show insert page. // Rotate when show insert page.
EndToEndTestUtils.rotateAllActivities(); EndToEndTestUtils.rotateAllActivities();
EndToEndTestUtils.SOLO.enterText(0, WAYPOINT_NAME); EndToEndTestUtils.SOLO.enterText(0, WAYPOINT_NAME);
EndToEndTestUtils.SOLO.clickOnButton(activityMyTracks.getString(R.string.generic_add)); EndToEndTestUtils.SOLO.clickOnButton(activityMyTracks.getString(R.string.generic_add));
assertTrue(EndToEndTestUtils.SOLO.searchText(WAYPOINT_NAME)); assertTrue(EndToEndTestUtils.SOLO.searchText(WAYPOINT_NAME));
// TODO Add test when Split maker feature is finished.
EndToEndTestUtils.SOLO.goBack(); EndToEndTestUtils.SOLO.goBack();
} }
@@ -50,19 +50,14 @@ public class DeleteTest extends ActivityInstrumentationTestCase2<TrackListActivi
* Deletes all tracks. * Deletes all tracks.
*/ */
public void testDeleteAllTracks() { public void testDeleteAllTracks() {
if (EndToEndTestUtils.isTrackListEmpty(false)) { EndToEndTestUtils.createTrackIfEmpty(1, true);
// Create a simple track.
EndToEndTestUtils.createSimpleTrack(0);
EndToEndTestUtils.SOLO.goBack();
}
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
// There is at least one track. // There is at least one track.
ArrayList<ListView> trackListView = EndToEndTestUtils.SOLO.getCurrentListViews(); ArrayList<ListView> trackListView = EndToEndTestUtils.SOLO.getCurrentListViews();
assertTrue(trackListView.size() > 0); assertTrue(trackListView.size() > 0);
assertTrue(trackListView.get(0).getCount() > 0); assertTrue(trackListView.get(0).getCount() > 0);
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_delete_all), true, EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_delete_all), true);
false);
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
EndToEndTestUtils.rotateAllActivities(); EndToEndTestUtils.rotateAllActivities();
EndToEndTestUtils.SOLO.clickOnButton(activityMyTracks.getString(R.string.generic_ok)); EndToEndTestUtils.SOLO.clickOnButton(activityMyTracks.getString(R.string.generic_ok));
@@ -76,18 +71,14 @@ public class DeleteTest extends ActivityInstrumentationTestCase2<TrackListActivi
* Deletes only one track. * Deletes only one track.
*/ */
public void testDeleteSingleTrack() { public void testDeleteSingleTrack() {
if (EndToEndTestUtils.isTrackListEmpty(false)) { EndToEndTestUtils.createTrackIfEmpty(1, true);
// Create a simple track.
EndToEndTestUtils.createSimpleTrack(0);
EndToEndTestUtils.SOLO.goBack();
}
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
// Get the number of track( or tracks) // Get the number of track( or tracks)
ArrayList<ListView> trackListView = EndToEndTestUtils.SOLO.getCurrentListViews(); ArrayList<ListView> trackListView = EndToEndTestUtils.SOLO.getCurrentListViews();
int trackNumberOld = trackListView.get(0).getCount(); int trackNumberOld = trackListView.get(0).getCount();
EndToEndTestUtils.SOLO.clickOnView(trackListView.get(0).getChildAt(0)); EndToEndTestUtils.SOLO.clickOnView(trackListView.get(0).getChildAt(0));
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_delete), true, true); EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_delete), true);
EndToEndTestUtils.SOLO.clickLongOnText(activityMyTracks.getString(R.string.generic_ok)); EndToEndTestUtils.SOLO.clickLongOnText(activityMyTracks.getString(R.string.generic_ok));
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
trackListView = EndToEndTestUtils.SOLO.getCurrentListViews(); trackListView = EndToEndTestUtils.SOLO.getCurrentListViews();
@@ -102,17 +93,17 @@ public class DeleteTest extends ActivityInstrumentationTestCase2<TrackListActivi
EndToEndTestUtils.startRecording(); EndToEndTestUtils.startRecording();
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
assertTrue(EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_stop_recording), assertTrue(EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_stop_recording),
false, true)); false));
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_delete), EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_delete),
true, false); true);
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.generic_ok)); EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.generic_ok));
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
assertTrue(EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_record_track), assertTrue(EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_record_track),
false, true)); false));
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
assertTrue(EndToEndTestUtils.findMenuItem( assertTrue(EndToEndTestUtils.findMenuItem(
activityMyTracks.getString(R.string.menu_record_track), false, true)); activityMyTracks.getString(R.string.menu_record_track), false));
} }
@Override @Override
@@ -45,7 +45,7 @@ import java.util.ArrayList;
public class EndToEndTestUtils { public class EndToEndTestUtils {
private static final String ANDROID_LOCAL_IP = "10.0.2.2"; private static final String ANDROID_LOCAL_IP = "10.0.2.2";
// usually 5554. // usually 5554.
private static final int ANDROID_LOCAL_PORT = 5554; private static final int ANDROID_LOCAL_PORT = 5556;
private static final int ORIENTATION_PORTRAIT = 1; private static final int ORIENTATION_PORTRAIT = 1;
private static final int ORIENTATION_LANDSCAPE = 0; private static final int ORIENTATION_LANDSCAPE = 0;
@@ -72,8 +72,8 @@ public class EndToEndTestUtils {
static TrackListActivity ACTIVITYMYTRACKS; static TrackListActivity ACTIVITYMYTRACKS;
// Check whether the UI has an action bar which is related with the version of // Check whether the UI has an action bar which is related with the version of
// Android OS. // Android OS.
static boolean HAS_ACTIONBAR = false; static boolean hasActionBar = false;
static boolean CHECKED_FIRSTLAUNCH = false; static boolean isCheckedFirstLaunch = false;
private EndToEndTestUtils() {} private EndToEndTestUtils() {}
@@ -125,7 +125,7 @@ public class EndToEndTestUtils {
EndToEndTestUtils.ACTIVITYMYTRACKS); EndToEndTestUtils.ACTIVITYMYTRACKS);
// Check if open MyTracks first time after install. If so, there would be a // Check if open MyTracks first time after install. If so, there would be a
// welcome view with accept buttons. And makes sure only check once. // welcome view with accept buttons. And makes sure only check once.
if (!EndToEndTestUtils.CHECKED_FIRSTLAUNCH) { if (!EndToEndTestUtils.isCheckedFirstLaunch) {
if ((EndToEndTestUtils.getButtonOnScreen(EndToEndTestUtils.ACTIVITYMYTRACKS if ((EndToEndTestUtils.getButtonOnScreen(EndToEndTestUtils.ACTIVITYMYTRACKS
.getString(R.string.eula_accept)) != null)) { .getString(R.string.eula_accept)) != null)) {
EndToEndTestUtils.verifyFirstLaunch(); EndToEndTestUtils.verifyFirstLaunch();
@@ -135,7 +135,7 @@ public class EndToEndTestUtils {
resetPreferredUnits(); resetPreferredUnits();
} }
EndToEndTestUtils.CHECKED_FIRSTLAUNCH = true; EndToEndTestUtils.isCheckedFirstLaunch = true;
EndToEndTestUtils.setHasActionBar(); EndToEndTestUtils.setHasActionBar();
} else if (EndToEndTestUtils.SOLO.waitForText( } else if (EndToEndTestUtils.SOLO.waitForText(
// After reset setting, welcome page will show again. // After reset setting, welcome page will show again.
@@ -153,7 +153,7 @@ public class EndToEndTestUtils {
/** /**
* Checks if need reset preferred units. * Checks if need reset preferred units.
*/ */
public static void resetPreferredUnits() { private static void resetPreferredUnits() {
EndToEndTestUtils.SOLO.clickOnText(ACTIVITYMYTRACKS.getString(R.string.generic_ok)); EndToEndTestUtils.SOLO.clickOnText(ACTIVITYMYTRACKS.getString(R.string.generic_ok));
SOLO.waitForText(ACTIVITYMYTRACKS.getString(R.string.settings_stats_units_title)); SOLO.waitForText(ACTIVITYMYTRACKS.getString(R.string.settings_stats_units_title));
EndToEndTestUtils.SOLO.clickOnText(ACTIVITYMYTRACKS.getString(R.string.generic_ok)); EndToEndTestUtils.SOLO.clickOnText(ACTIVITYMYTRACKS.getString(R.string.generic_ok));
@@ -207,13 +207,30 @@ public class EndToEndTestUtils {
int trackNumber = SOLO.getCurrentListViews().get(0).getCount(); int trackNumber = SOLO.getCurrentListViews().get(0).getCount();
if(trackNumber <= 0) { if(trackNumber <= 0) {
return true; return true;
} else { }
View oneTrack = SOLO.getCurrentListViews().get(0).getChildAt(0);
TRACK_NAME = (String) ((TextView) oneTrack.findViewById(R.id.list_item_name)).getText(); View oneTrack = SOLO.getCurrentListViews().get(0).getChildAt(0);
if (isClick) { TRACK_NAME = (String) ((TextView) oneTrack.findViewById(R.id.list_item_name)).getText();
SOLO.clickOnView(oneTrack); if (isClick) {
SOLO.clickOnView(oneTrack);
}
return false;
}
/**
* Create a new track if the track is empty.
*
* @param gpsNumber the number of gps signals
* @param showTrackList whether stay on track list activity or track detail
* activity
*/
static void createTrackIfEmpty(int gpsNumber, boolean showTrackList) {
if (EndToEndTestUtils.isTrackListEmpty(!showTrackList)) {
// Create a simple track.
EndToEndTestUtils.createSimpleTrack(gpsNumber);
if (showTrackList) {
EndToEndTestUtils.SOLO.goBack();
} }
return false;
} }
} }
@@ -221,7 +238,7 @@ public class EndToEndTestUtils {
* Starts recoding track. * Starts recoding track.
*/ */
static void startRecording() { static void startRecording() {
if (HAS_ACTIONBAR) { if (hasActionBar) {
Button startButton = getButtonOnScreen(ACTIVITYMYTRACKS.getString(R.string.menu_record_track)); Button startButton = getButtonOnScreen(ACTIVITYMYTRACKS.getString(R.string.menu_record_track));
// In case a track is recording. // In case a track is recording.
if (startButton == null) { if (startButton == null) {
@@ -252,26 +269,19 @@ public class EndToEndTestUtils {
* @return true if it is under recording. * @return true if it is under recording.
*/ */
static boolean isUnderRecording() { static boolean isUnderRecording() {
if (HAS_ACTIONBAR) { if (hasActionBar) {
Button startButton = getButtonOnScreen(ACTIVITYMYTRACKS.getString(R.string.menu_record_track)); return getButtonOnScreen(ACTIVITYMYTRACKS
// In case a track is recording. .getString(R.string.menu_record_track)) == null;
if (startButton == null) {
return true;
}
} else {
showMoreMenuItem();
if (!SOLO.searchText(ACTIVITYMYTRACKS.getString(R.string.menu_record_track))) {
// Check if in TrackDetailActivity.
if (SOLO.searchText(ACTIVITYMYTRACKS.getString(R.string.menu_play))) {
SOLO.goBack();
} else {
return true;
}
} else {
SOLO.goBack();
}
} }
return false; showMoreMenuItem();
if (SOLO.searchText(ACTIVITYMYTRACKS.getString(R.string.menu_record_track))) {
return false;
}
if (SOLO.searchText(ACTIVITYMYTRACKS.getString(R.string.menu_play))) {
SOLO.goBack();
return false;
}
return true;
} }
/** /**
@@ -280,7 +290,7 @@ public class EndToEndTestUtils {
* @param isSave ture means should save this track * @param isSave ture means should save this track
*/ */
static void stopRecording(boolean isSave) { static void stopRecording(boolean isSave) {
if (HAS_ACTIONBAR) { if (hasActionBar) {
SOLO.clickOnView(getButtonOnScreen(ACTIVITYMYTRACKS.getString(R.string.menu_stop_recording))); SOLO.clickOnView(getButtonOnScreen(ACTIVITYMYTRACKS.getString(R.string.menu_stop_recording)));
} else { } else {
showMoreMenuItem(); showMoreMenuItem();
@@ -338,7 +348,7 @@ public class EndToEndTestUtils {
static void saveTrackToSdCard(String trackKind) { static void saveTrackToSdCard(String trackKind) {
deleteExportedFiles(trackKind); deleteExportedFiles(trackKind);
INSTRUMENTATION.waitForIdleSync(); INSTRUMENTATION.waitForIdleSync();
findMenuItem(ACTIVITYMYTRACKS.getString(R.string.menu_save), true, true); findMenuItem(ACTIVITYMYTRACKS.getString(R.string.menu_save), true);
INSTRUMENTATION.waitForIdleSync(); INSTRUMENTATION.waitForIdleSync();
SOLO.clickOnText(trackKind.toUpperCase()); SOLO.clickOnText(trackKind.toUpperCase());
rotateAllActivities(); rotateAllActivities();
@@ -374,12 +384,12 @@ public class EndToEndTestUtils {
Button startButton = getButtonOnScreen(ACTIVITYMYTRACKS.getString(R.string.menu_record_track)); Button startButton = getButtonOnScreen(ACTIVITYMYTRACKS.getString(R.string.menu_record_track));
Button stopButton = getButtonOnScreen(ACTIVITYMYTRACKS.getString(R.string.menu_stop_recording)); Button stopButton = getButtonOnScreen(ACTIVITYMYTRACKS.getString(R.string.menu_stop_recording));
if (startButton != null || stopButton != null) { if (startButton != null || stopButton != null) {
HAS_ACTIONBAR = true; hasActionBar = true;
} else { } else {
showMoreMenuItem(); showMoreMenuItem();
if (SOLO.searchText(ACTIVITYMYTRACKS.getString(R.string.menu_record_track)) if (SOLO.searchText(ACTIVITYMYTRACKS.getString(R.string.menu_record_track))
|| SOLO.searchText(ACTIVITYMYTRACKS.getString(R.string.menu_stop_recording))) { || SOLO.searchText(ACTIVITYMYTRACKS.getString(R.string.menu_stop_recording))) {
HAS_ACTIONBAR = false; hasActionBar = false;
} else { } else {
return false; return false;
} }
@@ -413,22 +423,19 @@ public class EndToEndTestUtils {
* *
* @param menuName the name of item * @param menuName the name of item
* @param click true means need click this menu * @param click true means need click this menu
* @param checkActionBar whether this item may on the action bar
* @return true if find this menu * @return true if find this menu
*/ */
static boolean findMenuItem(String menuName, boolean click, boolean checkActionBar) { static boolean findMenuItem(String menuName, boolean click) {
boolean findResult = false; boolean findResult = false;
// Firstly find in action bar. // Firstly find in action bar.
if (checkActionBar) { Button button = getButtonOnScreen(menuName);
Button button = getButtonOnScreen(menuName); if (button != null) {
if (button != null) { findResult = true;
findResult = true; if (click) {
if (click) { SOLO.clickOnView(button);
SOLO.clickOnView(button);
}
return findResult;
} }
return findResult;
} }
showMoreMenuItem(); showMoreMenuItem();
@@ -451,17 +458,14 @@ public class EndToEndTestUtils {
* Get more menu items operation is different for different Android OS. * Get more menu items operation is different for different Android OS.
*/ */
public static void showMoreMenuItem() { public static void showMoreMenuItem() {
if (HAS_ACTIONBAR) { if (hasActionBar) {
View moreButton = getMoreOptionView(); View moreButton = getMoreOptionView();
if (moreButton == null) { if (moreButton != null) {
SOLO.sendKey(KeyEvent.KEYCODE_MENU);
} else {
SOLO.clickOnView(moreButton); SOLO.clickOnView(moreButton);
return;
} }
} else {
SOLO.sendKey(KeyEvent.KEYCODE_MENU);
} }
SOLO.sendKey(KeyEvent.KEYCODE_MENU);
} }
/** /**
@@ -475,7 +479,9 @@ public class EndToEndTestUtils {
private static View getMoreOptionView() { private static View getMoreOptionView() {
ArrayList<View> allViews = SOLO.getViews(); ArrayList<View> allViews = SOLO.getViews();
for (View view : allViews) { for (View view : allViews) {
if (view instanceof ImageButton && view.getClass().getName().equals(MOREOPTION_CLASSNAME)) { return view; } if (view instanceof ImageButton && view.getClass().getName().equals(MOREOPTION_CLASSNAME)) {
return view;
}
} }
return null; return null;
} }
@@ -58,14 +58,11 @@ public class ExportAndImportTest extends ActivityInstrumentationTestCase2<TrackL
*/ */
public void testExportAndImportTracks() { public void testExportAndImportTracks() {
// Create a new track with 3 gps data. // Create a new track with 3 gps data.
if (EndToEndTestUtils.isTrackListEmpty(false)) { EndToEndTestUtils.createTrackIfEmpty(3, true);
// Create a simple track.
EndToEndTestUtils.createSimpleTrack(3);
EndToEndTestUtils.SOLO.goBack();
}
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
// Create a empty track. // Create a empty track.
EndToEndTestUtils.createSimpleTrack(0); EndToEndTestUtils.createSimpleTrack(0);
instrumentation.waitForIdleSync();
EndToEndTestUtils.SOLO.goBack(); EndToEndTestUtils.SOLO.goBack();
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
// Delete all exported gpx and kml tracks. // Delete all exported gpx and kml tracks.
@@ -82,18 +79,19 @@ public class ExportAndImportTest extends ActivityInstrumentationTestCase2<TrackL
int trackNumber = EndToEndTestUtils.SOLO.getCurrentListViews().get(0).getCount(); int trackNumber = EndToEndTestUtils.SOLO.getCurrentListViews().get(0).getCount();
// No file to imported. // No file to imported.
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_import), true, false); EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_import), true);
EndToEndTestUtils.SOLO.waitForText(activityMyTracks.getString(R.string.import_no_file, EndToEndTestUtils.SOLO.waitForText(activityMyTracks.getString(R.string.sd_card_import_error_no_file,
FileUtils.buildExternalDirectoryPath(EndToEndTestUtils.GPX))); FileUtils.buildExternalDirectoryPath(EndToEndTestUtils.GPX)));
EndToEndTestUtils.SOLO.clickOnButton(activityMyTracks.getString(R.string.generic_ok)); EndToEndTestUtils.SOLO.clickOnButton(activityMyTracks.getString(R.string.generic_ok));
// Click to export tracks(At least one track) to Gpx files. // Click to export tracks(At least one track) to Gpx files.
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_save_all), true, false); EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_save_all), true);
EndToEndTestUtils.SOLO EndToEndTestUtils.SOLO
.clickOnText(String.format(activityMyTracks.getString(R.string.menu_save_format), .clickOnText(String.format(activityMyTracks.getString(R.string.menu_save_format),
EndToEndTestUtils.GPX.toUpperCase())); EndToEndTestUtils.GPX.toUpperCase()));
EndToEndTestUtils.rotateAllActivities(); EndToEndTestUtils.rotateAllActivities();
EndToEndTestUtils.SOLO.waitForText(activityMyTracks.getString(R.string.save_all_success)); EndToEndTestUtils.SOLO.waitForText(activityMyTracks.getString(R.string.sd_card_save_success));
EndToEndTestUtils.SOLO.clickLongOnText(activityMyTracks.getString(R.string.generic_ok));
// Check export file. // Check export file.
assertEquals(gpxFilesNumber + trackNumber, assertEquals(gpxFilesNumber + trackNumber,
EndToEndTestUtils.getExportedFiles(EndToEndTestUtils.GPX).length); EndToEndTestUtils.getExportedFiles(EndToEndTestUtils.GPX).length);
@@ -103,11 +101,11 @@ public class ExportAndImportTest extends ActivityInstrumentationTestCase2<TrackL
gpxFilesNumber = EndToEndTestUtils.getExportedFiles(EndToEndTestUtils.GPX).length; gpxFilesNumber = EndToEndTestUtils.getExportedFiles(EndToEndTestUtils.GPX).length;
trackNumber = EndToEndTestUtils.SOLO.getCurrentListViews().get(0).getCount(); trackNumber = EndToEndTestUtils.SOLO.getCurrentListViews().get(0).getCount();
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_import), true, false); EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_import), true);
EndToEndTestUtils.rotateAllActivities(); EndToEndTestUtils.rotateAllActivities();
// Wait for the prefix of import success string is much faster than wait // Wait for the prefix of import success string is much faster than wait
// the whole string. // the whole string.
EndToEndTestUtils.SOLO.waitForText(activityMyTracks.getString(R.string.import_success).split( EndToEndTestUtils.SOLO.waitForText(activityMyTracks.getString(R.string.sd_card_import_success_count).split(
"%")[0]); "%")[0]);
// Check import tracks should be equal with the sum of trackNumber and // Check import tracks should be equal with the sum of trackNumber and
// gpxFilesNumber; // gpxFilesNumber;
@@ -119,11 +117,12 @@ public class ExportAndImportTest extends ActivityInstrumentationTestCase2<TrackL
// Click to export tracks(At least two tracks) to KML files. // Click to export tracks(At least two tracks) to KML files.
gpxFilesNumber = EndToEndTestUtils.getExportedFiles(EndToEndTestUtils.GPX).length; gpxFilesNumber = EndToEndTestUtils.getExportedFiles(EndToEndTestUtils.GPX).length;
trackNumber = EndToEndTestUtils.SOLO.getCurrentListViews().get(0).getCount(); trackNumber = EndToEndTestUtils.SOLO.getCurrentListViews().get(0).getCount();
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_save_all), true, false); EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_save_all), true);
EndToEndTestUtils.SOLO EndToEndTestUtils.SOLO
.clickOnText(String.format(activityMyTracks.getString(R.string.menu_save_format), .clickOnText(String.format(activityMyTracks.getString(R.string.menu_save_format),
EndToEndTestUtils.KML.toUpperCase())); EndToEndTestUtils.KML.toUpperCase()));
EndToEndTestUtils.SOLO.waitForText(activityMyTracks.getString(R.string.save_all_success)); EndToEndTestUtils.SOLO.waitForText(activityMyTracks.getString(R.string.sd_card_save_success));
EndToEndTestUtils.SOLO.clickLongOnText(activityMyTracks.getString(R.string.generic_ok));
// Check export files. // Check export files.
assertEquals(gpxFilesNumber, EndToEndTestUtils.getExportedFiles(EndToEndTestUtils.GPX).length); assertEquals(gpxFilesNumber, EndToEndTestUtils.getExportedFiles(EndToEndTestUtils.GPX).length);
assertEquals(trackNumber, EndToEndTestUtils.getExportedFiles(EndToEndTestUtils.KML).length); assertEquals(trackNumber, EndToEndTestUtils.getExportedFiles(EndToEndTestUtils.KML).length);
@@ -16,9 +16,11 @@
package com.google.android.apps.mytracks.endtoendtest; package com.google.android.apps.mytracks.endtoendtest;
import com.google.android.apps.mytracks.TrackListActivity; import com.google.android.apps.mytracks.TrackListActivity;
import com.google.android.maps.mytracks.R;
import android.app.Instrumentation; import android.app.Instrumentation;
import android.test.ActivityInstrumentationTestCase2; import android.test.ActivityInstrumentationTestCase2;
import android.view.View;
/** /**
* Tests the function of go to my location. * Tests the function of go to my location.
@@ -46,12 +48,16 @@ public class GoToMyLocationTest extends ActivityInstrumentationTestCase2<TrackLi
* Tests the menu My Location. * Tests the menu My Location.
*/ */
public void testGotoMyLocation() { public void testGotoMyLocation() {
if (EndToEndTestUtils.isTrackListEmpty(true)) { EndToEndTestUtils.createTrackIfEmpty(1, false);
// Create a simple track. EndToEndTestUtils.sendGps(30);
EndToEndTestUtils.createSimpleTrack(2); View myLocation = EndToEndTestUtils.SOLO.getCurrentActivity()
.findViewById(R.id.map_my_location);
EndToEndTestUtils.SOLO.clickOnView(myLocation);
if (!EndToEndTestUtils.SOLO.waitForText(
activityMyTracks.getString(R.string.my_location_no_location), 1, 1000)) {
// TODO How to verify the location is shown on the map.
} }
// TODO How to verify the location is shown on the map.
} }
@Override @Override
@@ -54,22 +54,19 @@ public class MenuItemsTest extends ActivityInstrumentationTestCase2<TrackListAct
public void testSomeMenuItems() { public void testSomeMenuItems() {
// Menu in TrackListActivity. // Menu in TrackListActivity.
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_aggregated_statistics), EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_aggregated_statistics),
true, false); true);
EndToEndTestUtils.SOLO.waitForText(activityMyTracks.getString(R.string.stats_total_distance)); EndToEndTestUtils.SOLO.waitForText(activityMyTracks.getString(R.string.stats_total_distance));
EndToEndTestUtils.SOLO.goBack(); EndToEndTestUtils.SOLO.goBack();
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
if(EndToEndTestUtils.isTrackListEmpty(true)) { EndToEndTestUtils.createTrackIfEmpty(1, false);
EndToEndTestUtils.createSimpleTrack(1);
}
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
// Menu in TrackDetailActivity. // Menu in TrackDetailActivity.
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_sensor_state), true, EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_sensor_state), true);
false);
EndToEndTestUtils.SOLO.waitForText(activityMyTracks EndToEndTestUtils.SOLO.waitForText(activityMyTracks
.getString(R.string.sensor_state_last_sensor_time)); .getString(R.string.sensor_state_last_sensor_time));
EndToEndTestUtils.SOLO.goBack(); EndToEndTestUtils.SOLO.goBack();
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_help), true, false); EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_help), true);
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.help_about)); EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.help_about));
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.generic_ok)); EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.generic_ok));
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.generic_ok)); EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.generic_ok));
@@ -40,10 +40,7 @@ public class SaveToSdCardTest extends ActivityInstrumentationTestCase2<TrackList
instrumentation = getInstrumentation(); instrumentation = getInstrumentation();
activityMyTracks = getActivity(); activityMyTracks = getActivity();
EndToEndTestUtils.setupForAllTest(instrumentation, activityMyTracks); EndToEndTestUtils.setupForAllTest(instrumentation, activityMyTracks);
if (EndToEndTestUtils.isTrackListEmpty(true)) { EndToEndTestUtils.createTrackIfEmpty(1, false);
// Create a simple track.
EndToEndTestUtils.createSimpleTrack(1);
}
} }
/** /**
@@ -58,7 +58,7 @@ public class SettingTest extends ActivityInstrumentationTestCase2<TrackListActiv
* </ul> * </ul>
*/ */
public void testSetting() { public void testSetting() {
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_settings), true, false); EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_settings), true);
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
// Rotate on the settings page. // Rotate on the settings page.
EndToEndTestUtils.rotateAllActivities(); EndToEndTestUtils.rotateAllActivities();
@@ -111,43 +111,39 @@ public class SettingTest extends ActivityInstrumentationTestCase2<TrackListActiv
} }
/** /**
* Tests reseting all settings. * Tests the backup.
*/ */
public void testBackup() { public void testBackup() {
// Delete all backup at first. // Delete all backup at first.
EndToEndTestUtils.deleteExportedFiles(EndToEndTestUtils.BACKUPS); EndToEndTestUtils.deleteExportedFiles(EndToEndTestUtils.BACKUPS);
if (EndToEndTestUtils.isTrackListEmpty(false)) { EndToEndTestUtils.createTrackIfEmpty(3, true);
// Create a simple track.
EndToEndTestUtils.createSimpleTrack(3);
EndToEndTestUtils.SOLO.goBack();
}
assertTrue(EndToEndTestUtils.SOLO.searchText(EndToEndTestUtils.TRACK_NAME)); assertTrue(EndToEndTestUtils.SOLO.searchText(EndToEndTestUtils.TRACK_NAME));
// Write to SD card. // Write to SD card.
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_settings), true, false); EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_settings), true);
EndToEndTestUtils.SOLO.clickLongOnText(activityMyTracks.getString(R.string.settings_backup)); EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.settings_backup));
EndToEndTestUtils.SOLO EndToEndTestUtils.SOLO
.clickLongOnText(activityMyTracks.getString(R.string.settings_backup_now)); .clickOnText(activityMyTracks.getString(R.string.settings_backup_now));
assertTrue(EndToEndTestUtils.SOLO.waitForText( assertTrue(EndToEndTestUtils.SOLO.waitForText(
activityMyTracks.getString(R.string.sd_card_success_write_file), 0, 10000)); activityMyTracks.getString(R.string.sd_card_save_success), 0, 100000));
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
// Delete all tracks. // Delete all tracks.
EndToEndTestUtils.SOLO.goBack(); EndToEndTestUtils.SOLO.goBack();
EndToEndTestUtils.SOLO.goBack(); EndToEndTestUtils.SOLO.goBack();
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_delete_all), true, EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_delete_all), true);
false); EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.generic_ok));
EndToEndTestUtils.SOLO.clickLongOnText(activityMyTracks.getString(R.string.generic_ok)); instrumentation.waitForIdleSync();
// Read from SD card. // Read from SD card.
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_settings), true, false); EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_settings), true);
EndToEndTestUtils.SOLO.clickLongOnText(activityMyTracks.getString(R.string.settings_backup)); EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.settings_backup));
EndToEndTestUtils.SOLO.clickLongOnText(activityMyTracks EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(R.string.settings_backup_restore)); .getString(R.string.settings_backup_restore));
EndToEndTestUtils.SOLO.clickLongOnText(activityMyTracks.getString(R.string.generic_ok)); EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.generic_ok));
assertTrue(EndToEndTestUtils.SOLO.waitForText( assertTrue(EndToEndTestUtils.SOLO.waitForText(
activityMyTracks.getString(R.string.sd_card_success_read_file), 0, 10000)); activityMyTracks.getString(R.string.sd_card_import_success), 0, 10000));
// Check restore track. // Check restore track.
assertTrue(EndToEndTestUtils.SOLO.searchText(EndToEndTestUtils.TRACK_NAME)); assertTrue(EndToEndTestUtils.SOLO.searchText(EndToEndTestUtils.TRACK_NAME));
} }
@@ -157,18 +153,18 @@ public class SettingTest extends ActivityInstrumentationTestCase2<TrackListActiv
* activity of tracks, and the creates a new track to check it. * activity of tracks, and the creates a new track to check it.
*/ */
public void testRecording() { public void testRecording() {
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_settings), true, false); EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_settings), true);
EndToEndTestUtils.SOLO.clickLongOnText(activityMyTracks.getString(R.string.settings_recording)); EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.settings_recording));
// Changes the setting of recording name. // Changes the setting of recording name.
EndToEndTestUtils.SOLO.clickLongOnText(activityMyTracks EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(R.string.settings_recording_track_name)); .getString(R.string.settings_recording_track_name));
EndToEndTestUtils.SOLO.clickLongOnText(activityMyTracks EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(R.string.settings_recording_track_name_number_option)); .getString(R.string.settings_recording_track_name_number_option));
// Changes the setting of default activity. // Changes the setting of default activity.
EndToEndTestUtils.SOLO.clickLongOnText(activityMyTracks EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(R.string.settings_recording_default_activity)); .getString(R.string.settings_recording_default_activity));
EndToEndTestUtils.SOLO.enterText(0, DEFAULTACTIVITY); EndToEndTestUtils.SOLO.enterText(0, DEFAULTACTIVITY);
EndToEndTestUtils.SOLO.clickLongOnText(activityMyTracks.getString(R.string.generic_ok)); EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.generic_ok));
EndToEndTestUtils.SOLO.goBack(); EndToEndTestUtils.SOLO.goBack();
EndToEndTestUtils.SOLO.goBack(); EndToEndTestUtils.SOLO.goBack();
@@ -55,10 +55,7 @@ public class ViewsTest extends ActivityInstrumentationTestCase2<TrackListActivit
* menus in these views. * menus in these views.
*/ */
public void testSwitchViewsAndMenusOfView() { public void testSwitchViewsAndMenusOfView() {
if (EndToEndTestUtils.isTrackListEmpty(true)) { EndToEndTestUtils.createTrackIfEmpty(3, false);
// Create a simple track.
EndToEndTestUtils.createSimpleTrack(3);
}
EndToEndTestUtils.SOLO.goBack(); EndToEndTestUtils.SOLO.goBack();
EndToEndTestUtils.SOLO.clickOnText(EndToEndTestUtils.TRACK_NAME); EndToEndTestUtils.SOLO.clickOnText(EndToEndTestUtils.TRACK_NAME);
@@ -100,15 +97,13 @@ public class ViewsTest extends ActivityInstrumentationTestCase2<TrackListActivit
*/ */
public void testSatelliteAndMapView() { public void testSatelliteAndMapView() {
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
if(EndToEndTestUtils.isTrackListEmpty(true)) { EndToEndTestUtils.createTrackIfEmpty(1, false);
EndToEndTestUtils.createSimpleTrack(1);
}
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
// Check current mode. // Check current mode.
boolean isMapMode = true; boolean isMapMode = true;
// If can not find switch menu in top menu, click More menu. // If can not find switch menu in top menu, click More menu.
if (!EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_satellite_mode), if (!EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_satellite_mode),
false, false)) { false)) {
isMapMode = false; isMapMode = false;
} }
EndToEndTestUtils.showMoreMenuItem(); EndToEndTestUtils.showMoreMenuItem();
@@ -126,7 +121,7 @@ public class ViewsTest extends ActivityInstrumentationTestCase2<TrackListActivit
} }
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_help), false, false); EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_help), false);
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
EndToEndTestUtils.rotateAllActivities(); EndToEndTestUtils.rotateAllActivities();