Fix some issues of end2end test on real device. Check the status when the device has no GPS signal in testCreateTrackWithMarkers(). Make 4 static fields in EndToEndTestUtils to define different wait time.

This commit is contained in:
youtaol
2012-07-11 18:49:49 +08:00
parent ba83d84fd5
commit 257de5a836
5 changed files with 63 additions and 38 deletions
@@ -117,14 +117,14 @@ public class CreateAndSendTrackTest extends ActivityInstrumentationTestCase2<Tra
// If no account is binded with this device. // If no account is binded with this device.
if (EndToEndTestUtils.SOLO.waitForText(activityMyTracks if (EndToEndTestUtils.SOLO.waitForText(activityMyTracks
.getString(R.string.send_google_no_account_title), 1, 10000)) { .getString(R.string.send_google_no_account_title), 1, EndToEndTestUtils.NORMAL_WAIT_TIME)) {
EndToEndTestUtils.getButtonOnScreen(activityMyTracks.getString(R.string.generic_ok), true, true); EndToEndTestUtils.getButtonOnScreen(activityMyTracks.getString(R.string.generic_ok), true, true);
} else { } else {
assertTrue(EndToEndTestUtils.SOLO.waitForText(activityMyTracks assertTrue(EndToEndTestUtils.SOLO.waitForText(activityMyTracks
.getString(R.string.generic_progress_title))); .getString(R.string.generic_progress_title)));
// Waiting the send is finish. // Waiting the send is finish.
while (EndToEndTestUtils.SOLO.waitForText(activityMyTracks while (EndToEndTestUtils.SOLO.waitForText(activityMyTracks
.getString(R.string.generic_progress_title), 1, 2000)) { .getString(R.string.generic_progress_title), 1, EndToEndTestUtils.SHORT_WAIT_TIME)) {
} }
// Check whether the result dialog is display. // Check whether the result dialog is display.
@@ -222,9 +222,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.deleteAllTracks();
EndToEndTestUtils.getButtonOnScreen(activityMyTracks.getString(R.string.generic_ok), true, true);
// Reset all settings. // Reset all settings.
EndToEndTestUtils.resetAllSettings(activityMyTracks, false); EndToEndTestUtils.resetAllSettings(activityMyTracks, false);
@@ -238,13 +236,13 @@ public class CreateAndSendTrackTest extends ActivityInstrumentationTestCase2<Tra
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
EndToEndTestUtils.SOLO.goBack(); EndToEndTestUtils.SOLO.goBack();
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
assertFalse(EndToEndTestUtils.SOLO.waitForText(EndToEndTestUtils.RELATIVE_STARTTIME_POSTFIX, 1, 5000)); assertFalse(EndToEndTestUtils.SOLO.searchText(EndToEndTestUtils.RELATIVE_STARTTIME_POSTFIX, 1, false, true));
// Test should show relative time for createSimpleTrack would save a track // Test should show relative time for createSimpleTrack would save a track
// name that is different with the start time. // name that is different with the start time.
EndToEndTestUtils.createSimpleTrack(2); EndToEndTestUtils.createSimpleTrack(2);
EndToEndTestUtils.SOLO.goBack(); EndToEndTestUtils.SOLO.goBack();
assertTrue(EndToEndTestUtils.SOLO.waitForText(EndToEndTestUtils.RELATIVE_STARTTIME_POSTFIX, 1, 5000)); assertTrue(EndToEndTestUtils.SOLO.waitForText(EndToEndTestUtils.RELATIVE_STARTTIME_POSTFIX, 1, EndToEndTestUtils.NORMAL_WAIT_TIME));
} }
/** /**
@@ -288,7 +286,10 @@ public class CreateAndSendTrackTest extends ActivityInstrumentationTestCase2<Tra
EndToEndTestUtils.SOLO.goBack(); EndToEndTestUtils.SOLO.goBack();
} }
EndToEndTestUtils.SOLO.clickOnButton(activityMyTracks.getString(R.string.generic_add)); EndToEndTestUtils.SOLO.clickOnButton(activityMyTracks.getString(R.string.generic_add));
assertTrue(EndToEndTestUtils.SOLO.searchText(WAYPOINT_NAME)); if (!EndToEndTestUtils.SOLO.waitForText(activityMyTracks.getString(R.string.marker_add_error),
1, EndToEndTestUtils.SHORT_WAIT_TIME)) {
assertTrue(EndToEndTestUtils.SOLO.searchText(WAYPOINT_NAME));
}
EndToEndTestUtils.SOLO.goBack(); EndToEndTestUtils.SOLO.goBack();
} }
@@ -80,6 +80,12 @@ public class EndToEndTestUtils {
public static String VIEW_MODE = ""; public static String VIEW_MODE = "";
public static String ONE_KM = ""; public static String ONE_KM = "";
public static String ONE_MILE = ""; public static String ONE_MILE = "";
public static int SHORT_WAIT_TIME = 2000;
public static int NORMAL_WAIT_TIME = 8000;
public static int LONG_WAIT_TIME = 15000;
public static int SUPER_LONG_WAIT_TIME = 100000;
static { static {
RELATIVE_STARTTIME_POSTFIX_MULTILINGUAL.put("es", "mins ago"); RELATIVE_STARTTIME_POSTFIX_MULTILINGUAL.put("es", "mins ago");
RELATIVE_STARTTIME_POSTFIX_MULTILINGUAL.put("de", "Minuten"); RELATIVE_STARTTIME_POSTFIX_MULTILINGUAL.put("de", "Minuten");
@@ -202,16 +208,18 @@ public class EndToEndTestUtils {
EndToEndTestUtils.verifyFirstLaunch(); EndToEndTestUtils.verifyFirstLaunch();
} 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.
activityMytracks.getString(R.string.welcome_title), 0, 500)) { activityMytracks.getString(R.string.welcome_title), 0, EndToEndTestUtils.SHORT_WAIT_TIME)) {
resetPreferredUnits(); resetPreferredUnits();
} }
checkLanguage(); checkLanguage();
EndToEndTestUtils.isCheckedFirstLaunch = true; EndToEndTestUtils.isCheckedFirstLaunch = true;
EndToEndTestUtils.setHasActionBar(); EndToEndTestUtils.setHasActionBar();
// Make the test is totally new.
EndToEndTestUtils.deleteAllTracks();
EndToEndTestUtils.resetAllSettings(activityMyTracks, false); EndToEndTestUtils.resetAllSettings(activityMyTracks, false);
} 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.
activityMytracks.getString(R.string.welcome_title), 0, 500)) { activityMytracks.getString(R.string.welcome_title), 0, EndToEndTestUtils.SHORT_WAIT_TIME)) {
resetPreferredUnits(); resetPreferredUnits();
} }
@@ -323,7 +331,7 @@ public class EndToEndTestUtils {
} }
SOLO.clickOnView(startButton); SOLO.clickOnView(startButton);
} else { } else {
showMoreMenuItem(); showMoreMenuItem(0);
if (!SOLO.searchText(activityMytracks.getString(R.string.menu_record_track))) { if (!SOLO.searchText(activityMytracks.getString(R.string.menu_record_track))) {
// Check if in TrackDetailActivity. // Check if in TrackDetailActivity.
if (SOLO.searchText(activityMytracks.getString(R.string.menu_play))) { if (SOLO.searchText(activityMytracks.getString(R.string.menu_play))) {
@@ -331,7 +339,7 @@ public class EndToEndTestUtils {
} else { } else {
// In case a track is recording. // In case a track is recording.
stopRecording(true); stopRecording(true);
showMoreMenuItem(); showMoreMenuItem(0);
} }
} }
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
@@ -350,7 +358,7 @@ public class EndToEndTestUtils {
return getButtonOnScreen(activityMytracks return getButtonOnScreen(activityMytracks
.getString(R.string.menu_record_track), false, false) == null; .getString(R.string.menu_record_track), false, false) == null;
} }
showMoreMenuItem(); showMoreMenuItem(0);
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_play))) { || SOLO.searchText(activityMytracks.getString(R.string.menu_play))) {
SOLO.goBack(); SOLO.goBack();
@@ -369,12 +377,12 @@ public class EndToEndTestUtils {
if (hasActionBar) { if (hasActionBar) {
getButtonOnScreen(activityMytracks.getString(R.string.menu_stop_recording), false, true); getButtonOnScreen(activityMytracks.getString(R.string.menu_stop_recording), false, true);
} else { } else {
showMoreMenuItem(); showMoreMenuItem(0);
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
SOLO.clickOnText(activityMytracks.getString(R.string.menu_stop_recording)); SOLO.clickOnText(activityMytracks.getString(R.string.menu_stop_recording));
} }
if (isSave) { if (isSave) {
EndToEndTestUtils.SOLO.waitForText(activityMytracks.getString(R.string.generic_save), 1, 5000); EndToEndTestUtils.SOLO.waitForText(activityMytracks.getString(R.string.generic_save), 1, EndToEndTestUtils.NORMAL_WAIT_TIME);
// Make every track name is unique to make sure every check can be // Make every track name is unique to make sure every check can be
// trusted. // trusted.
EndToEndTestUtils.trackName = EndToEndTestUtils.TRACK_NAME_PREFIX EndToEndTestUtils.trackName = EndToEndTestUtils.TRACK_NAME_PREFIX
@@ -406,6 +414,14 @@ public class EndToEndTestUtils {
} }
} }
/**
* Deletes all tracks. This method should be call when the TracksListActivity is shown.
*/
static void deleteAllTracks() {
EndToEndTestUtils.findMenuItem(activityMytracks.getString(R.string.menu_delete_all), true);
EndToEndTestUtils.getButtonOnScreen(activityMytracks.getString(R.string.generic_ok), true, true);
}
/** /**
* Gets a kind of exported files. * Gets a kind of exported files.
* *
@@ -478,7 +494,7 @@ public class EndToEndTestUtils {
if (startButton != null || stopButton != null) { if (startButton != null || stopButton != null) {
hasActionBar = true; hasActionBar = true;
} else { } else {
showMoreMenuItem(); showMoreMenuItem(0);
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))) {
hasActionBar = false; hasActionBar = false;
@@ -531,7 +547,7 @@ public class EndToEndTestUtils {
return findResult; return findResult;
} }
showMoreMenuItem(); showMoreMenuItem(0);
if (SOLO.searchText(menuName)) { if (SOLO.searchText(menuName)) {
findResult = true; findResult = true;
} else if (SOLO.searchText(MENU_MORE)) { } else if (SOLO.searchText(MENU_MORE)) {
@@ -550,12 +566,21 @@ public class EndToEndTestUtils {
/** /**
* Gets more menu items operation is different for different Android OS. * Gets more menu items operation is different for different Android OS.
*
* @param depth control the depth of recursion to prevent dead circulation
*/ */
public static void showMoreMenuItem() { public static void showMoreMenuItem(int depth) {
if (hasActionBar) { if (hasActionBar) {
instrumentation.waitForIdleSync();
View moreButton = getMoreOptionView(); View moreButton = getMoreOptionView();
if (moreButton != null) { if (moreButton != null) {
SOLO.clickOnView(moreButton); try {
SOLO.clickOnView(moreButton);
} catch (Throwable e) {
if (depth < 5 && e.getMessage().indexOf("Click can not be completed") > -1) {
showMoreMenuItem(depth++);
}
}
return; return;
} }
} }
@@ -58,7 +58,7 @@ public class GoToMyLocationTest extends ActivityInstrumentationTestCase2<TrackLi
EndToEndTestUtils.SOLO.clickOnView(myLocation); EndToEndTestUtils.SOLO.clickOnView(myLocation);
if (EndToEndTestUtils.isEmulator) { if (EndToEndTestUtils.isEmulator) {
EndToEndTestUtils.SOLO.waitForText( EndToEndTestUtils.SOLO.waitForText(
activityMyTracks.getString(R.string.my_location_no_location), 1, 1000); activityMyTracks.getString(R.string.my_location_no_location), 1, EndToEndTestUtils.SHORT_WAIT_TIME);
} else { } else {
// TODO How to verify the location is shown on the map. // TODO How to verify the location is shown on the map.
} }
@@ -76,13 +76,13 @@ 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, 5000)); 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, 5000)); activityMyTracks.getString(R.string.settings_sharing_allow_access), 1, EndToEndTestUtils.NORMAL_WAIT_TIME));
assertEquals(!newMapsPublic, sharingCheckBoxs.get(0).isChecked()); assertEquals(!newMapsPublic, sharingCheckBoxs.get(0).isChecked());
EndToEndTestUtils.SOLO.goBack(); EndToEndTestUtils.SOLO.goBack();
@@ -95,7 +95,7 @@ public class SettingTest extends ActivityInstrumentationTestCase2<TrackListActiv
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(activityMyTracks
.getString(R.string.settings_stats_units_title), 1, 20000)); .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());
@@ -244,14 +244,13 @@ public class SettingTest extends ActivityInstrumentationTestCase2<TrackListActiv
EndToEndTestUtils.SOLO EndToEndTestUtils.SOLO
.clickOnText(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_save_success), 0, 100000)); activityMyTracks.getString(R.string.sd_card_save_success), 0, EndToEndTestUtils.SUPER_LONG_WAIT_TIME));
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.deleteAllTracks();
EndToEndTestUtils.getButtonOnScreen(activityMyTracks.getString(R.string.generic_ok), true, true);
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
// Read from SD card. // Read from SD card.
@@ -261,7 +260,7 @@ public class SettingTest extends ActivityInstrumentationTestCase2<TrackListActiv
.getString(R.string.settings_backup_restore)); .getString(R.string.settings_backup_restore));
EndToEndTestUtils.getButtonOnScreen(activityMyTracks.getString(R.string.generic_ok), true, true); EndToEndTestUtils.getButtonOnScreen(activityMyTracks.getString(R.string.generic_ok), true, true);
assertTrue(EndToEndTestUtils.SOLO.waitForText( assertTrue(EndToEndTestUtils.SOLO.waitForText(
activityMyTracks.getString(R.string.sd_card_import_success), 0, 10000)); activityMyTracks.getString(R.string.sd_card_import_success), 0, EndToEndTestUtils.NORMAL_WAIT_TIME));
// Check restore track. // Check restore track.
assertTrue(EndToEndTestUtils.SOLO.searchText(EndToEndTestUtils.trackName)); assertTrue(EndToEndTestUtils.SOLO.searchText(EndToEndTestUtils.trackName));
} }
@@ -65,9 +65,9 @@ public class ViewsTest extends ActivityInstrumentationTestCase2<TrackListActivit
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.track_detail_chart_tab)); EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.track_detail_chart_tab));
EndToEndTestUtils.rotateAllActivities(); EndToEndTestUtils.rotateAllActivities();
EndToEndTestUtils.showMoreMenuItem(); EndToEndTestUtils.showMoreMenuItem(0);
assertTrue(EndToEndTestUtils.SOLO.waitForText( assertTrue(EndToEndTestUtils.SOLO.waitForText(
activityMyTracks.getString(R.string.menu_settings), 1, 3000)); activityMyTracks.getString(R.string.menu_settings), 1, EndToEndTestUtils.NORMAL_WAIT_TIME));
assertFalse(EndToEndTestUtils.SOLO.waitForText( assertFalse(EndToEndTestUtils.SOLO.waitForText(
activityMyTracks.getString(R.string.menu_satellite_mode), 1, 0)); activityMyTracks.getString(R.string.menu_satellite_mode), 1, 0));
assertFalse(EndToEndTestUtils.SOLO.waitForText( assertFalse(EndToEndTestUtils.SOLO.waitForText(
@@ -77,7 +77,7 @@ public class ViewsTest extends ActivityInstrumentationTestCase2<TrackListActivit
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.track_detail_stats_tab)); EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.track_detail_stats_tab));
EndToEndTestUtils.SOLO.sendKey(KeyEvent.KEYCODE_MENU); EndToEndTestUtils.SOLO.sendKey(KeyEvent.KEYCODE_MENU);
assertTrue(EndToEndTestUtils.SOLO.waitForText( assertTrue(EndToEndTestUtils.SOLO.waitForText(
activityMyTracks.getString(R.string.menu_settings), 1, 3000)); activityMyTracks.getString(R.string.menu_settings), 1, EndToEndTestUtils.NORMAL_WAIT_TIME));
assertFalse(EndToEndTestUtils.SOLO.waitForText( assertFalse(EndToEndTestUtils.SOLO.waitForText(
activityMyTracks.getString(R.string.menu_satellite_mode), 1, 0)); activityMyTracks.getString(R.string.menu_satellite_mode), 1, 0));
assertFalse(EndToEndTestUtils.SOLO.waitForText( assertFalse(EndToEndTestUtils.SOLO.waitForText(
@@ -85,9 +85,9 @@ public class ViewsTest extends ActivityInstrumentationTestCase2<TrackListActivit
EndToEndTestUtils.SOLO.goBack(); EndToEndTestUtils.SOLO.goBack();
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.track_detail_map_tab)); EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.track_detail_map_tab));
EndToEndTestUtils.showMoreMenuItem(); EndToEndTestUtils.showMoreMenuItem(0);
assertTrue(EndToEndTestUtils.SOLO.waitForText( assertTrue(EndToEndTestUtils.SOLO.waitForText(
activityMyTracks.getString(R.string.menu_settings), 1, 3000)); activityMyTracks.getString(R.string.menu_settings), 1, EndToEndTestUtils.NORMAL_WAIT_TIME));
assertTrue(EndToEndTestUtils.SOLO.searchText(EndToEndTestUtils.VIEW_MODE, 1, true, false)); assertTrue(EndToEndTestUtils.SOLO.searchText(EndToEndTestUtils.VIEW_MODE, 1, true, false));
} }
@@ -105,7 +105,7 @@ public class ViewsTest extends ActivityInstrumentationTestCase2<TrackListActivit
false)) { false)) {
isMapMode = false; isMapMode = false;
} }
EndToEndTestUtils.showMoreMenuItem(); EndToEndTestUtils.showMoreMenuItem(0);
// Switch to satellite mode if it's map mode now.. // Switch to satellite mode if it's map mode now..
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(isMapMode ? R.string.menu_satellite_mode : R.string.menu_map_mode)); .getString(isMapMode ? R.string.menu_satellite_mode : R.string.menu_map_mode));
@@ -125,7 +125,7 @@ public class ViewsTest extends ActivityInstrumentationTestCase2<TrackListActivit
EndToEndTestUtils.rotateAllActivities(); EndToEndTestUtils.rotateAllActivities();
// Switch back. // Switch back.
EndToEndTestUtils.showMoreMenuItem(); EndToEndTestUtils.showMoreMenuItem(0);
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(isMapMode ? R.string.menu_satellite_mode : R.string.menu_map_mode)); .getString(isMapMode ? R.string.menu_satellite_mode : R.string.menu_map_mode));
isMapMode = !isMapMode; isMapMode = !isMapMode;
@@ -139,7 +139,7 @@ public class ViewsTest extends ActivityInstrumentationTestCase2<TrackListActivit
// Wait 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.
EndToEndTestUtils.SOLO.waitForText(activityMyTracks.getString(R.string.track_detail_chart_tab), EndToEndTestUtils.SOLO.waitForText(activityMyTracks.getString(R.string.track_detail_chart_tab),
0, 1000); 0, EndToEndTestUtils.SHORT_WAIT_TIME);
} }
@Override @Override