Change some code style of end-to-end test cases.

This commit is contained in:
youtaol
2012-04-28 18:19:40 +08:00
parent 6848a7a475
commit 4a338da44c
2 changed files with 45 additions and 47 deletions
@@ -70,7 +70,7 @@ public class MyTracksSmokeTest extends ActivityInstrumentationTestCase2<TrackLis
instrumentation = getInstrumentation(); instrumentation = getInstrumentation();
activityMyTracks = getActivity(); activityMyTracks = getActivity();
solo = new Solo(instrumentation, activityMyTracks); solo = new Solo(instrumentation, activityMyTracks);
// Checks 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 (!checkedFirstLaunch) { if (!checkedFirstLaunch) {
if ((getButtonOnScreen(activityMyTracks.getString(R.string.eula_accept)) != null)) { if ((getButtonOnScreen(activityMyTracks.getString(R.string.eula_accept)) != null)) {
@@ -80,7 +80,7 @@ public class MyTracksSmokeTest extends ActivityInstrumentationTestCase2<TrackLis
checkedFirstLaunch = true; checkedFirstLaunch = true;
} }
// Makes every track name is unique to make sure every check can be trusted. // Make every track name is unique to make sure every check can be trusted.
trackName = TRACK_NAME_PREFIX + System.currentTimeMillis(); trackName = TRACK_NAME_PREFIX + System.currentTimeMillis();
} }
@@ -90,6 +90,11 @@ public class MyTracksSmokeTest extends ActivityInstrumentationTestCase2<TrackLis
* menus in these views. * menus in these views.
*/ */
public void testSwitchViewsAndMenusOfView() { public void testSwitchViewsAndMenusOfView() {
solo.sendKey(KeyEvent.KEYCODE_MENU);
findMenuItem(activityMyTracks.getString(R.string.menu_delete_all), true);
solo.clickOnButton(activityMyTracks.getString(R.string.generic_ok));
instrumentation.waitForIdleSync();
createSimpleTrack(3); createSimpleTrack(3);
solo.goBack(); solo.goBack();
@@ -195,7 +200,7 @@ public class MyTracksSmokeTest extends ActivityInstrumentationTestCase2<TrackLis
solo.clickOnButton(activityMyTracks.getString(R.string.generic_save)); solo.clickOnButton(activityMyTracks.getString(R.string.generic_save));
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
// Goes back to track list. // Go back to track list.
solo.goBack(); solo.goBack();
assertTrue(solo.searchText(newTrackName)); assertTrue(solo.searchText(newTrackName));
@@ -219,40 +224,40 @@ public class MyTracksSmokeTest extends ActivityInstrumentationTestCase2<TrackLis
sendKeys(KeyEvent.KEYCODE_MENU); sendKeys(KeyEvent.KEYCODE_MENU);
findMenuItem(activityMyTracks.getString(R.string.menu_settings), true); findMenuItem(activityMyTracks.getString(R.string.menu_settings), true);
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
// Rotates on the settings page. // Rotate on the settings page.
rotateAllActivities(); rotateAllActivities();
solo.waitForText(activityMyTracks.getString(R.string.settings_reset)); solo.waitForText(activityMyTracks.getString(R.string.settings_reset));
// Resets all settings at first. // Reset all settings at first.
solo.clickOnText(activityMyTracks.getString(R.string.settings_reset)); solo.clickOnText(activityMyTracks.getString(R.string.settings_reset));
solo.clickOnButton(activityMyTracks.getString(R.string.generic_ok)); solo.clickOnButton(activityMyTracks.getString(R.string.generic_ok));
// Changes a setting of display. // Change a setting of display.
solo.clickOnText(activityMyTracks.getString(R.string.settings_display)); solo.clickOnText(activityMyTracks.getString(R.string.settings_display));
solo.waitForText(activityMyTracks.getString(R.string.settings_display_metric)); solo.waitForText(activityMyTracks.getString(R.string.settings_display_metric));
// Rotates on a sub setting page. // Rotate on a sub setting page.
rotateAllActivities(); rotateAllActivities();
solo.waitForText(activityMyTracks.getString(R.string.settings_display_metric)); solo.waitForText(activityMyTracks.getString(R.string.settings_display_metric));
ArrayList<CheckBox> displayCheckBoxs = solo.getCurrentCheckBoxes(); ArrayList<CheckBox> displayCheckBoxs = solo.getCurrentCheckBoxes();
boolean useMetric = displayCheckBoxs.get(0).isChecked(); boolean useMetric = displayCheckBoxs.get(0).isChecked();
solo.clickOnCheckBox(0); solo.clickOnCheckBox(0);
solo.goBack(); solo.goBack();
// Changes a setting of sharing. // Change a setting of sharing.
solo.clickOnText(activityMyTracks.getString(R.string.settings_sharing)); solo.clickOnText(activityMyTracks.getString(R.string.settings_sharing));
solo.waitForText(activityMyTracks.getString(R.string.settings_sharing_allow_access)); solo.waitForText(activityMyTracks.getString(R.string.settings_sharing_allow_access));
ArrayList<CheckBox> sharingCheckBoxs = solo.getCurrentCheckBoxes(); ArrayList<CheckBox> sharingCheckBoxs = solo.getCurrentCheckBoxes();
boolean newMapsPublic = sharingCheckBoxs.get(0).isChecked(); boolean newMapsPublic = sharingCheckBoxs.get(0).isChecked();
solo.clickOnCheckBox(0); solo.clickOnCheckBox(0);
// Rotates on a sub setting page when the value of a checkbox is changed. // Rotate on a sub setting page when the value of a checkbox is changed.
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
rotateAllActivities(); rotateAllActivities();
solo.waitForText(activityMyTracks.getString(R.string.settings_sharing_allow_access)); solo.waitForText(activityMyTracks.getString(R.string.settings_sharing_allow_access));
assertEquals(!newMapsPublic, sharingCheckBoxs.get(0).isChecked()); assertEquals(!newMapsPublic, sharingCheckBoxs.get(0).isChecked());
solo.goBack(); solo.goBack();
// Resets all settings. // Reset all settings.
solo.clickOnText(activityMyTracks.getString(R.string.settings_reset)); solo.clickOnText(activityMyTracks.getString(R.string.settings_reset));
solo.clickOnButton(activityMyTracks.getString(R.string.generic_ok)); solo.clickOnButton(activityMyTracks.getString(R.string.generic_ok));
// Checks settings. // Check settings.
solo.clickOnText(activityMyTracks.getString(R.string.settings_display)); solo.clickOnText(activityMyTracks.getString(R.string.settings_display));
solo.waitForText(activityMyTracks.getString(R.string.settings_display_metric)); solo.waitForText(activityMyTracks.getString(R.string.settings_display_metric));
displayCheckBoxs = solo.getCurrentCheckBoxes(); displayCheckBoxs = solo.getCurrentCheckBoxes();
@@ -279,7 +284,7 @@ public class MyTracksSmokeTest extends ActivityInstrumentationTestCase2<TrackLis
SmokeTestUtils.sendGps(2); SmokeTestUtils.sendGps(2);
createWaypointAndStatistics(); createWaypointAndStatistics();
SmokeTestUtils.sendGps(2); SmokeTestUtils.sendGps(2);
// Backs to tracks list. // Back to tracks list.
solo.goBack(); solo.goBack();
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
rotateAllActivities(); rotateAllActivities();
@@ -288,7 +293,7 @@ public class MyTracksSmokeTest extends ActivityInstrumentationTestCase2<TrackLis
solo.clickOnButton(activityMyTracks.getString(R.string.generic_save)); solo.clickOnButton(activityMyTracks.getString(R.string.generic_save));
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
// Checks the new track // Check the new track
assertTrue(solo.waitForText(trackName, 1, 5000, true, false)); assertTrue(solo.waitForText(trackName, 1, 5000, true, false));
} }
@@ -326,15 +331,15 @@ public class MyTracksSmokeTest extends ActivityInstrumentationTestCase2<TrackLis
* </ul> * </ul>
*/ */
public void testExportAndImportTracks() { public void testExportAndImportTracks() {
// Creates a new track with 3 gps data. // Create a new track with 3 gps data.
createSimpleTrack(3); createSimpleTrack(3);
solo.goBack(); solo.goBack();
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
// Creates a empty track. // Create a empty track.
createSimpleTrack(0); createSimpleTrack(0);
solo.goBack(); solo.goBack();
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
// Deletes all exported gpx and kml tracks. // Delete all exported gpx and kml tracks.
deleteExportedFiles(GPX); deleteExportedFiles(GPX);
deleteExportedFiles(KML); deleteExportedFiles(KML);
int gpxFilesNumber = 0; int gpxFilesNumber = 0;
@@ -344,7 +349,7 @@ public class MyTracksSmokeTest extends ActivityInstrumentationTestCase2<TrackLis
gpxFilesNumber = getExportedFiles(GPX).length; gpxFilesNumber = getExportedFiles(GPX).length;
} }
// Gets track number in current track list of MyTracks. // Get track number in current track list of MyTracks.
int trackNumber = solo.getCurrentListViews().get(0).getCount(); int trackNumber = solo.getCurrentListViews().get(0).getCount();
// No file to imported. // No file to imported.
@@ -354,34 +359,34 @@ public class MyTracksSmokeTest extends ActivityInstrumentationTestCase2<TrackLis
FileUtils.buildExternalDirectoryPath(GPX))); FileUtils.buildExternalDirectoryPath(GPX)));
solo.clickOnButton(activityMyTracks.getString(R.string.generic_ok)); solo.clickOnButton(activityMyTracks.getString(R.string.generic_ok));
// Clicks to export tracks(At least one track) to Gpx files. // Click to export tracks(At least one track) to Gpx files.
sendKeys(KeyEvent.KEYCODE_MENU); sendKeys(KeyEvent.KEYCODE_MENU);
findMenuItem(activityMyTracks.getString(R.string.menu_export_all), true); findMenuItem(activityMyTracks.getString(R.string.menu_export_all), true);
solo.clickOnText(String.format(activityMyTracks.getString(R.string.menu_export_all_format), solo.clickOnText(String.format(activityMyTracks.getString(R.string.menu_export_all_format),
GPX.toUpperCase())); GPX.toUpperCase()));
rotateAllActivities(); rotateAllActivities();
solo.waitForText(activityMyTracks.getString(R.string.export_success)); solo.waitForText(activityMyTracks.getString(R.string.export_success));
// Checks export file. // Check export file.
assertEquals(gpxFilesNumber + trackNumber, getExportedFiles(GPX).length); assertEquals(gpxFilesNumber + trackNumber, getExportedFiles(GPX).length);
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
// Clicks to import track. // Click to import track.
gpxFilesNumber = getExportedFiles(GPX).length; gpxFilesNumber = getExportedFiles(GPX).length;
trackNumber = solo.getCurrentListViews().get(0).getCount(); trackNumber = solo.getCurrentListViews().get(0).getCount();
sendKeys(KeyEvent.KEYCODE_MENU); sendKeys(KeyEvent.KEYCODE_MENU);
findMenuItem(activityMyTracks.getString(R.string.menu_import_all), true); findMenuItem(activityMyTracks.getString(R.string.menu_import_all), true);
rotateAllActivities(); rotateAllActivities();
// Waits 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.
solo.waitForText(activityMyTracks.getString(R.string.import_success).split("%")[0]); solo.waitForText(activityMyTracks.getString(R.string.import_success).split("%")[0]);
// Checks 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;
solo.clickOnText(activityMyTracks.getString(R.string.generic_ok)); solo.clickOnText(activityMyTracks.getString(R.string.generic_ok));
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
assertEquals(trackNumber + gpxFilesNumber, solo.getCurrentListViews().get(0).getCount()); assertEquals(trackNumber + gpxFilesNumber, solo.getCurrentListViews().get(0).getCount());
// Clicks to export tracks(At least two tracks) to KML files. // Click to export tracks(At least two tracks) to KML files.
gpxFilesNumber = getExportedFiles(GPX).length; gpxFilesNumber = getExportedFiles(GPX).length;
trackNumber = solo.getCurrentListViews().get(0).getCount(); trackNumber = solo.getCurrentListViews().get(0).getCount();
sendKeys(KeyEvent.KEYCODE_MENU); sendKeys(KeyEvent.KEYCODE_MENU);
@@ -389,7 +394,7 @@ public class MyTracksSmokeTest extends ActivityInstrumentationTestCase2<TrackLis
solo.clickOnText(String.format(activityMyTracks.getString(R.string.menu_export_all_format), solo.clickOnText(String.format(activityMyTracks.getString(R.string.menu_export_all_format),
KML.toUpperCase())); KML.toUpperCase()));
solo.waitForText(activityMyTracks.getString(R.string.export_success)); solo.waitForText(activityMyTracks.getString(R.string.export_success));
// Checks export file. // Check export files.
assertEquals(gpxFilesNumber, getExportedFiles(GPX).length); assertEquals(gpxFilesNumber, getExportedFiles(GPX).length);
assertEquals(trackNumber, getExportedFiles(KML).length); assertEquals(trackNumber, getExportedFiles(KML).length);
} }
@@ -407,7 +412,7 @@ public class MyTracksSmokeTest extends ActivityInstrumentationTestCase2<TrackLis
if (!findMenuItem(activityMyTracks.getString(R.string.menu_satellite_mode), false)) { if (!findMenuItem(activityMyTracks.getString(R.string.menu_satellite_mode), false)) {
isMapMode = false; isMapMode = false;
} }
// Switches to satellite mode if it's map mode now.. // Switch to satellite mode if it's map mode now..
solo.clickOnText(activityMyTracks.getString(isMapMode ? R.string.menu_satellite_mode solo.clickOnText(activityMyTracks.getString(isMapMode ? R.string.menu_satellite_mode
: R.string.menu_map_mode)); : R.string.menu_map_mode));
@@ -416,7 +421,7 @@ public class MyTracksSmokeTest extends ActivityInstrumentationTestCase2<TrackLis
ArrayList<View> allViews = solo.getViews(); ArrayList<View> allViews = solo.getViews();
for (View view : allViews) { for (View view : allViews) {
if (view instanceof MapView) { if (view instanceof MapView) {
assertEquals(isMapMode, !(((MapView) view).isSatellite())); assertEquals(isMapMode, !((MapView) view).isSatellite());
} }
} }
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
@@ -426,18 +431,18 @@ public class MyTracksSmokeTest extends ActivityInstrumentationTestCase2<TrackLis
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
rotateAllActivities(); rotateAllActivities();
// Switches back. // Switch back.
solo.clickOnText(activityMyTracks.getString(isMapMode ? R.string.menu_satellite_mode solo.clickOnText(activityMyTracks.getString(isMapMode ? R.string.menu_satellite_mode
: R.string.menu_map_mode)); : R.string.menu_map_mode));
isMapMode = !isMapMode; isMapMode = !isMapMode;
allViews = solo.getViews(); allViews = solo.getViews();
for (View view : allViews) { for (View view : allViews) {
if (view instanceof MapView) { if (view instanceof MapView) {
assertEquals(isMapMode, !(((MapView) view).isSatellite())); assertEquals(isMapMode, !((MapView) view).isSatellite());
} }
} }
// Waits for the TrackDetailActivity, or the stop button will can not be // Wait for the TrackDetailActivity, or the stop button will can not be
// found in next step. // found in next step.
solo.waitForText(activityMyTracks.getString(R.string.track_detail_chart_tab), 0, 1000); solo.waitForText(activityMyTracks.getString(R.string.track_detail_chart_tab), 0, 1000);
stopRecording(true); stopRecording(true);
@@ -512,9 +517,9 @@ public class MyTracksSmokeTest extends ActivityInstrumentationTestCase2<TrackLis
*/ */
private void verifyFirstLaunch() { private void verifyFirstLaunch() {
solo.clickOnText(activityMyTracks.getString(R.string.eula_accept)); solo.clickOnText(activityMyTracks.getString(R.string.eula_accept));
// Clicks for welcome. // Click for welcome.
solo.clickOnText(activityMyTracks.getString(R.string.generic_ok)); solo.clickOnText(activityMyTracks.getString(R.string.generic_ok));
// Clicks for choose units. // Click for choose units.
solo.clickOnText(activityMyTracks.getString(R.string.generic_ok)); solo.clickOnText(activityMyTracks.getString(R.string.generic_ok));
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
} }
@@ -599,7 +604,7 @@ public class MyTracksSmokeTest extends ActivityInstrumentationTestCase2<TrackLis
* Gets a kind of exported files. * Gets a kind of exported files.
* *
* @param trackKind the kind of track * @param trackKind the kind of track
* @return files array of such kind of exported tracks * @return files array of such kind of exported tracks
*/ */
private File[] getExportedFiles(final String trackKind) { private File[] getExportedFiles(final String trackKind) {
String filePath = FileUtils.buildExternalDirectoryPath(trackKind); String filePath = FileUtils.buildExternalDirectoryPath(trackKind);
@@ -676,7 +681,7 @@ public class MyTracksSmokeTest extends ActivityInstrumentationTestCase2<TrackLis
} }
/** /**
* Rotates the all activities. * Rotates all activities.
*/ */
private void rotateAllActivities() { private void rotateAllActivities() {
ArrayList<Activity> allActivities = solo.getAllOpenedActivities(); ArrayList<Activity> allActivities = solo.getAllOpenedActivities();
@@ -42,8 +42,7 @@ public class SmokeTestUtils {
private static final float DELTA_LONGITUDE = 0.0005f; private static final float DELTA_LONGITUDE = 0.0005f;
private static final float DELTA_LADITUDE = 0.0005f; private static final float DELTA_LADITUDE = 0.0005f;
private SmokeTestUtils() { private SmokeTestUtils() {}
}
/** /**
* Sends Gps data to emulator. * Sends Gps data to emulator.
@@ -51,9 +50,7 @@ public class SmokeTestUtils {
* @param number send times * @param number send times
*/ */
public static void sendGps(int number) { public static void sendGps(int number) {
if (number < 1) { if (number < 1) { return; }
return;
}
PrintStream out = null; PrintStream out = null;
Socket socket = null; Socket socket = null;
try { try {
@@ -83,15 +80,11 @@ public class SmokeTestUtils {
/** /**
* Rotates the given activity. * Rotates the given activity.
* *
* @param activity a given activity. * @param activity a given activity
* @return current orientation of the activity.
*/ */
public static int rotateActivity(Activity activity) { public static void rotateActivity(Activity activity) {
if (activity.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { activity
activity.setRequestedOrientation(ORIENTATION_LANDSCAPE); .setRequestedOrientation(activity.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT ? ORIENTATION_LANDSCAPE
} else { : ORIENTATION_PORTRAIT);
activity.setRequestedOrientation(ORIENTATION_PORTRAIT);
}
return activity.getRequestedOrientation();
} }
} }