forked from upstream-mirrors/OpenTracks
merge heads
This commit is contained in:
+66
-12
@@ -56,7 +56,7 @@ public class EndToEndTestUtils {
|
||||
|
||||
private static final String ANDROID_LOCAL_IP = "10.0.2.2";
|
||||
// usually 5554.
|
||||
public static int emulatorPort = 5554;
|
||||
public static int emulatorPort = 5558;
|
||||
|
||||
private static final int ORIENTATION_PORTRAIT = 1;
|
||||
private static final int ORIENTATION_LANDSCAPE = 0;
|
||||
@@ -66,9 +66,12 @@ public class EndToEndTestUtils {
|
||||
static final double START_LATITUDE = -1.3f;
|
||||
static final double DELTA_LONGITUDE = 0.0005f;
|
||||
static final double DELTA_LADITUDE = 0.0005f;
|
||||
private static final String WAYPOINT_NAME = "testWaypoint";
|
||||
private static final String NO_GPS_MESSAGE_PREFIX = "GPS is not available";
|
||||
|
||||
private static final String MOREOPTION_CLASSNAME = "com.android.internal.view.menu.ActionMenuPresenter$OverflowMenuButton";
|
||||
private static final String MENUITEM_CLASSNAME = "com.android.internal.view.menu.IconMenuItemView";
|
||||
|
||||
|
||||
static final String DEFAULTACTIVITYTYPE = "TestActivity";
|
||||
public static String activityType = DEFAULTACTIVITYTYPE;
|
||||
@@ -248,6 +251,9 @@ public class EndToEndTestUtils {
|
||||
EndToEndTestUtils.instrumentation = instrumentation;
|
||||
EndToEndTestUtils.activityMytracks = activityMyTracks;
|
||||
SOLO = new Solo(EndToEndTestUtils.instrumentation, EndToEndTestUtils.activityMytracks);
|
||||
setIsEmulator();
|
||||
hasActionBar = setHasActionBar();
|
||||
checkLanguage();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -278,7 +284,7 @@ public class EndToEndTestUtils {
|
||||
Log.e(LOG_TAG, "Need update Google Play Services");
|
||||
}
|
||||
setIsEmulator();
|
||||
if ((getButtonOnScreen(EndToEndTestUtils.activityMytracks.getString(R.string.eula_accept),
|
||||
if ((getButtonOnScreen(activityMytracks.getString(R.string.eula_accept),
|
||||
false, false) != null)) {
|
||||
verifyFirstLaunch();
|
||||
} else if (SOLO.waitForText(
|
||||
@@ -297,7 +303,7 @@ public class EndToEndTestUtils {
|
||||
if (!isEmulator) {
|
||||
GoToMyLocationTest.findAndClickMyLocation(activityMyTracks);
|
||||
hasGpsSingal = !SOLO.waitForText(NO_GPS_MESSAGE_PREFIX, 1,
|
||||
EndToEndTestUtils.SHORT_WAIT_TIME);
|
||||
SHORT_WAIT_TIME);
|
||||
SOLO.goBack();
|
||||
}
|
||||
} else if (SOLO.waitForText(
|
||||
@@ -660,11 +666,11 @@ public class EndToEndTestUtils {
|
||||
findResult = SOLO.searchText(menuName, 1, true);
|
||||
} else {
|
||||
// Non-ICS phone.
|
||||
SOLO.sendKey(KeyEvent.KEYCODE_MENU);
|
||||
SOLO.sendKey(KeyEvent.KEYCODE_MENU);
|
||||
if (SOLO.searchText(menuName, 1, true)) {
|
||||
findResult = true;
|
||||
} else if (SOLO.searchText(MENU_MORE, 1, true)) {
|
||||
SOLO.clickOnText(MENU_MORE);
|
||||
} else if (getMoreOptionView() != null) {
|
||||
SOLO.clickOnView(getMoreOptionView());
|
||||
findResult = SOLO.searchText(menuName, 1, true);
|
||||
isMoreMenuOpened = true;
|
||||
}
|
||||
@@ -728,18 +734,30 @@ public class EndToEndTestUtils {
|
||||
* Finds the more option menu. It should match following conditions:
|
||||
* <ul>
|
||||
* <li>The view extends ImageButton.</li>
|
||||
* <li>The view name equals {@link EndToEndTestUtils#MOREOPTION_CLASSNAME}.</li>
|
||||
* <li>The view name equals {@link #MOREOPTION_CLASSNAME}.</li>
|
||||
* </ul>
|
||||
* @return the more option view. Null means can not find it.
|
||||
*/
|
||||
private static View getMoreOptionView() {
|
||||
ArrayList<View> allViews = SOLO.getViews();
|
||||
for (View view : allViews) {
|
||||
if (view instanceof ImageButton && view.getClass().getName().equals(MOREOPTION_CLASSNAME)) {
|
||||
return view;
|
||||
View viewResult = null;
|
||||
if (hasActionBar) {
|
||||
ArrayList<View> allViews = SOLO.getViews();
|
||||
for (View view : allViews) {
|
||||
if (view instanceof ImageButton && view.getClass().getName().equals(MOREOPTION_CLASSNAME)) {
|
||||
viewResult = view;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ArrayList<View> allViews = SOLO.getViews();
|
||||
for (View view : allViews) {
|
||||
if (view.getClass().getName().equals(MENUITEM_CLASSNAME)) {
|
||||
viewResult = view;
|
||||
// No break here to get the last menu item.
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
return viewResult;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -921,5 +939,41 @@ public class EndToEndTestUtils {
|
||||
.findViewById(R.id.track_controller_total_time)).getText().toString();
|
||||
Assert.assertTrue(totalTimeOld.equalsIgnoreCase(totalTimeNew));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Creates a way point during track recording.
|
||||
*
|
||||
* @param markerNumber of number of previous markers
|
||||
*/
|
||||
public static void createWaypoint(int markerNumber) {
|
||||
findMenuItem(activityMytracks.getString(R.string.menu_markers), true);
|
||||
if (markerNumber > 0) {
|
||||
int actualMarkerNumber = SOLO.getCurrentListViews().get(0).getCount();
|
||||
Assert.assertEquals(markerNumber, actualMarkerNumber);
|
||||
} else {
|
||||
Assert.assertTrue(SOLO.waitForText(activityMytracks
|
||||
.getString(R.string.marker_list_empty_message)));
|
||||
}
|
||||
findMenuItem(activityMytracks.getString(R.string.menu_insert_marker), true);
|
||||
enterTextAvoidSoftKeyBoard(0, WAYPOINT_NAME);
|
||||
SOLO.clickOnButton(activityMytracks.getString(R.string.generic_add));
|
||||
if (hasGpsSingal) {
|
||||
Assert.assertTrue(SOLO.waitForText(WAYPOINT_NAME, 1, LONG_WAIT_TIME, true));
|
||||
} else {
|
||||
Assert.assertFalse(SOLO.searchText(WAYPOINT_NAME));
|
||||
}
|
||||
SOLO.goBack();
|
||||
}
|
||||
|
||||
/**
|
||||
* Waits a text to disappear.
|
||||
*/
|
||||
public static void waitTextToDisappear(String text) {
|
||||
// The first wait should longer than following waits.
|
||||
SOLO.waitForText(text, 1, SHORT_WAIT_TIME);
|
||||
while (SOLO.waitForText(text, 1, 200)) {}
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user