Add method pauseRecording() and resumeRecording() in EndToEndTestUtils. Make some changes to make start, pause, resume, stop track recording can runs well on the new UI(Move these buttons down from action bar in TrackListActivity).

This commit is contained in:
youtaol
2012-08-31 17:08:41 +08:00
parent 90e621db1f
commit c8bcfe654b
4 changed files with 67 additions and 23 deletions
@@ -35,7 +35,7 @@ public class DeleteTest extends ActivityInstrumentationTestCase2<TrackListActivi
private Instrumentation instrumentation; private Instrumentation instrumentation;
private TrackListActivity activityMyTracks; private TrackListActivity activityMyTracks;
@TargetApi(8) @TargetApi(16)
public DeleteTest() { public DeleteTest() {
super(TrackListActivity.class); super(TrackListActivity.class);
} }
@@ -114,11 +114,7 @@ public class DeleteTest extends ActivityInstrumentationTestCase2<TrackListActivi
EndToEndTestUtils EndToEndTestUtils
.getButtonOnScreen(activityMyTracks.getString(R.string.generic_ok), true, true); .getButtonOnScreen(activityMyTracks.getString(R.string.generic_ok), true, true);
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
assertTrue(EndToEndTestUtils.findMenuItem( assertFalse(EndToEndTestUtils.SOLO.getCurrentActivity().findViewById(R.id.track_list_stop_recording_button).isEnabled());
activityMyTracks.getString(R.string.menu_record_track), false));
instrumentation.waitForIdleSync();
assertTrue(EndToEndTestUtils.findMenuItem(
activityMyTracks.getString(R.string.menu_record_track), false));
} }
@Override @Override
@@ -383,8 +383,11 @@ public class EndToEndTestUtils {
* Starts recoding track. * Starts recoding track.
*/ */
static void startRecording() { static void startRecording() {
if (hasActionBar) { View startButton = SOLO.getCurrentActivity().findViewById(R.id.track_list_record_track_button);
View startButton = getButtonOnScreen(activityMytracks.getString(R.string.menu_record_track), false, false); if(startButton != null && startButton.isShown()) {
SOLO.clickOnView(startButton);
} else if (hasActionBar) {
startButton = getButtonOnScreen(activityMytracks.getString(R.string.menu_record_track), false, false);
// In case a track is recording. // In case a track is recording.
if (startButton == null) { if (startButton == null) {
stopRecording(true); stopRecording(true);
@@ -409,12 +412,53 @@ public class EndToEndTestUtils {
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
} }
/**
* Pauses recoding track.
*/
static void pauseRecording() {
View pauseButton = SOLO.getCurrentActivity().findViewById(R.id.track_list_record_track_button);
if(pauseButton != null && pauseButton.isShown()) {
SOLO.clickOnView(pauseButton);
} else if (hasActionBar) {
pauseButton = getButtonOnScreen(activityMytracks.getString(R.string.menu_pause_track), false, false);
SOLO.clickOnView(pauseButton);
} else {
showMenuItem();
instrumentation.waitForIdleSync();
SOLO.clickOnText(activityMytracks.getString(R.string.menu_pause_track));
}
instrumentation.waitForIdleSync();
}
/**
* Resume recoding track.
*/
static void resumeRecording() {
View startButton = SOLO.getCurrentActivity().findViewById(R.id.track_list_record_track_button);
if(startButton != null && startButton.isShown()) {
SOLO.clickOnView(startButton);
} else if (hasActionBar) {
startButton = getButtonOnScreen(activityMytracks.getString(R.string.menu_record_track), false, false);
SOLO.clickOnView(startButton);
} else {
showMenuItem();
instrumentation.waitForIdleSync();
SOLO.clickOnText(activityMytracks.getString(R.string.menu_record_track));
}
instrumentation.waitForIdleSync();
}
/** /**
* Checks if the MyTracks is under recording. * Checks if the MyTracks is under recording.
* *
* @return true if it is under recording. * @return true if it is under recording.
*/ */
static boolean isUnderRecording() { static boolean isUnderRecording() {
View startButton = SOLO.getCurrentActivity().findViewById(R.id.track_list_record_track_button);
if(startButton != null && startButton.isShown()) {
return false;
}
if (hasActionBar) { if (hasActionBar) {
return getButtonOnScreen(activityMytracks return getButtonOnScreen(activityMytracks
.getString(R.string.menu_record_track), false, false) == null; .getString(R.string.menu_record_track), false, false) == null;
@@ -435,7 +479,10 @@ public class EndToEndTestUtils {
* @param isSave true means should save this track * @param isSave true means should save this track
*/ */
static void stopRecording(boolean isSave) { static void stopRecording(boolean isSave) {
if (hasActionBar) { View stopButton = SOLO.getCurrentActivity().findViewById(R.id.track_list_stop_recording_button);
if(stopButton != null && stopButton.isShown() ) {
SOLO.clickOnView(stopButton);
} else if (hasActionBar) {
getButtonOnScreen(activityMytracks.getString(R.string.menu_stop_recording), false, true); getButtonOnScreen(activityMytracks.getString(R.string.menu_stop_recording), false, true);
} else { } else {
showMenuItem(); showMenuItem();
@@ -624,15 +671,15 @@ public class EndToEndTestUtils {
return findResult; return findResult;
} }
showMenuItem(); showMenuItem();
findResult = SOLO.searchText(menuName); findResult = SOLO.searchText(menuName, 1, true);
} else { } else {
// Non-ICS phone. // Non-ICS phone.
SOLO.sendKey(KeyEvent.KEYCODE_MENU); SOLO.sendKey(KeyEvent.KEYCODE_MENU);
if (SOLO.getText(menuName) != null) { if (SOLO.getText(menuName) != null) {
findResult = true; findResult = true;
} else if (SOLO.searchText(MENU_MORE)) { } else if (SOLO.searchText(MENU_MORE, 1, true)) {
SOLO.clickOnText(MENU_MORE); SOLO.clickOnText(MENU_MORE);
findResult = SOLO.searchText(menuName); findResult = SOLO.searchText(menuName, 1, true);
isMoreMenuOpened = true; isMoreMenuOpened = true;
} }
} }
@@ -57,11 +57,6 @@ public class PauseRecordingTest extends ActivityInstrumentationTestCase2<TrackLi
// Start recording // Start recording
EndToEndTestUtils.startRecording(); EndToEndTestUtils.startRecording();
assertNotNull(EndToEndTestUtils.findMenuItem(
activityMyTracks.getString(R.string.menu_pause_track), false));
assertNotNull(EndToEndTestUtils.findMenuItem(
activityMyTracks.getString(R.string.menu_stop_recording), false));
EndToEndTestUtils.SOLO.goBack();
assertNotNull(EndToEndTestUtils.findMenuItem( assertNotNull(EndToEndTestUtils.findMenuItem(
activityMyTracks.getString(R.string.menu_pause_track), false)); activityMyTracks.getString(R.string.menu_pause_track), false));
assertNotNull(EndToEndTestUtils.findMenuItem( assertNotNull(EndToEndTestUtils.findMenuItem(
@@ -69,7 +64,7 @@ public class PauseRecordingTest extends ActivityInstrumentationTestCase2<TrackLi
EndToEndTestUtils.sendGps(gpsSignalNumber); EndToEndTestUtils.sendGps(gpsSignalNumber);
// Pause // Pause
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_pause_track), true); EndToEndTestUtils.pauseRecording();
assertNotNull(EndToEndTestUtils.findMenuItem( assertNotNull(EndToEndTestUtils.findMenuItem(
activityMyTracks.getString(R.string.menu_record_track), false)); activityMyTracks.getString(R.string.menu_record_track), false));
assertNotNull(EndToEndTestUtils.findMenuItem( assertNotNull(EndToEndTestUtils.findMenuItem(
@@ -89,11 +84,6 @@ public class PauseRecordingTest extends ActivityInstrumentationTestCase2<TrackLi
// Start recording // Start recording
EndToEndTestUtils.startRecording(); EndToEndTestUtils.startRecording();
assertNotNull(EndToEndTestUtils.findMenuItem(
activityMyTracks.getString(R.string.menu_pause_track), false));
assertNotNull(EndToEndTestUtils.findMenuItem(
activityMyTracks.getString(R.string.menu_stop_recording), false));
EndToEndTestUtils.SOLO.goBack();
assertNotNull(EndToEndTestUtils.findMenuItem( assertNotNull(EndToEndTestUtils.findMenuItem(
activityMyTracks.getString(R.string.menu_pause_track), false)); activityMyTracks.getString(R.string.menu_pause_track), false));
assertNotNull(EndToEndTestUtils.findMenuItem( assertNotNull(EndToEndTestUtils.findMenuItem(
@@ -169,4 +159,14 @@ public class PauseRecordingTest extends ActivityInstrumentationTestCase2<TrackLi
} }
} }
@Override
protected void tearDown() throws Exception {
// In normally, the activities of MyTracks should be closed after every test is
// completed. But this case is different, send two go back event to make it will
// not block following tests.
EndToEndTestUtils.SOLO.goBack();
EndToEndTestUtils.SOLO.goBack();
super.tearDown();
}
} }
@@ -80,6 +80,7 @@ public class ViewsTest extends ActivityInstrumentationTestCase2<TrackListActivit
false)); false));
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.track_detail_map_tab)); EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.track_detail_map_tab));
EndToEndTestUtils.rotateAllActivities();
assertTrue(EndToEndTestUtils.findMenuItem( assertTrue(EndToEndTestUtils.findMenuItem(
activityMyTracks.getString(R.string.menu_settings), false)); activityMyTracks.getString(R.string.menu_settings), false));
assertTrue(EndToEndTestUtils.findMenuItem(EndToEndTestUtils.VIEW_MODE, false)); assertTrue(EndToEndTestUtils.findMenuItem(EndToEndTestUtils.VIEW_MODE, false));