diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/CreateAndSendTrackTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/CreateAndSendTrackTest.java index 6c9f4468e..bdc25ef4e 100644 --- a/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/CreateAndSendTrackTest.java +++ b/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/CreateAndSendTrackTest.java @@ -132,23 +132,6 @@ public class CreateAndSendTrackTest extends ActivityInstrumentationTestCase2 RELATIVE_STARTTIME_POSTFIX_MULTILINGUAL = new HashMap(); - private static final HashMap VIEW_MODE_MULTILINGUAL = new HashMap(); private static final HashMap KM_MULTILINGUAL = new HashMap(); private static final HashMap MILE_MULTILINGUAL = new HashMap(); public static String RELATIVE_STARTTIME_POSTFIX = ""; - public static String VIEW_MODE = ""; public static String KM = ""; public static String MILE = ""; @@ -104,12 +102,6 @@ public class EndToEndTestUtils { RELATIVE_STARTTIME_POSTFIX_MULTILINGUAL.put("ar", "دقيقة"); RELATIVE_STARTTIME_POSTFIX_MULTILINGUAL.put("zh", "分钟前"); - VIEW_MODE_MULTILINGUAL.put("es", "mode"); - VIEW_MODE_MULTILINGUAL.put("de", "modus"); - VIEW_MODE_MULTILINGUAL.put("fr", "Mode"); - VIEW_MODE_MULTILINGUAL.put("ar", "وضع"); - VIEW_MODE_MULTILINGUAL.put("zh", "模式"); - KM_MULTILINGUAL.put("es", "km"); KM_MULTILINGUAL.put("de", "km"); KM_MULTILINGUAL.put("fr", "km"); @@ -151,12 +143,10 @@ public class EndToEndTestUtils { deviceLanguage = instrumentation.getContext().getResources().getConfiguration().locale.getLanguage(); if (RELATIVE_STARTTIME_POSTFIX_MULTILINGUAL.get(deviceLanguage) != null) { RELATIVE_STARTTIME_POSTFIX = RELATIVE_STARTTIME_POSTFIX_MULTILINGUAL.get(deviceLanguage); - VIEW_MODE = VIEW_MODE_MULTILINGUAL.get(deviceLanguage); KM = KM_MULTILINGUAL.get(deviceLanguage); MILE = MILE_MULTILINGUAL.get(deviceLanguage); } else { RELATIVE_STARTTIME_POSTFIX = RELATIVE_STARTTIME_POSTFIX_MULTILINGUAL.get("es"); - VIEW_MODE = VIEW_MODE_MULTILINGUAL.get("es"); KM = KM_MULTILINGUAL.get("es"); MILE = MILE_MULTILINGUAL.get("es"); } diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/GoogleUtils.java b/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/GoogleUtils.java index c2adc1062..1e4906985 100644 --- a/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/GoogleUtils.java +++ b/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/GoogleUtils.java @@ -32,6 +32,7 @@ import com.google.android.apps.mytracks.io.gdata.maps.XmlMapsGDataParserFactory; import com.google.android.apps.mytracks.util.ApiAdapterFactory; import com.google.android.apps.mytracks.util.SystemUtils; import com.google.android.common.gdata.AndroidXmlParserFactory; +import com.google.android.maps.mytracks.R; import com.google.api.client.googleapis.GoogleHeaders; import com.google.api.client.googleapis.MethodOverride; import com.google.api.client.http.GenericUrl; @@ -361,5 +362,38 @@ public class GoogleUtils { return null; } } + + /** + * Checks whether the status of account is right to use. + * + * @return true means the status of account is good for sending + */ + public static boolean checkAccountStatusDialog() { + // Check whether no account is binded with this device. + if (EndToEndTestUtils.SOLO.waitForText( + EndToEndTestUtils.activityMytracks.getString(R.string.send_google_no_account_title), 1, + EndToEndTestUtils.SHORT_WAIT_TIME)) { + EndToEndTestUtils.getButtonOnScreen(EndToEndTestUtils.activityMytracks.getString(R.string.generic_ok), true, + true); + return false; + } + + // Check whether need to choose account. + if (EndToEndTestUtils.SOLO.waitForText( + EndToEndTestUtils.activityMytracks.getString(R.string.send_google_choose_account_title), 1, + EndToEndTestUtils.SHORT_WAIT_TIME)) { + EndToEndTestUtils.getButtonOnScreen(EndToEndTestUtils.activityMytracks.getString(R.string.generic_ok), false, + true); + } + + // Check whether no account permission. + if (EndToEndTestUtils.SOLO.waitForText( + EndToEndTestUtils.activityMytracks.getString(R.string.send_google_no_account_permission), 1, + EndToEndTestUtils.SHORT_WAIT_TIME)) { + return false; + } + + return true; + } } diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/MenuItemsTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/MenuItemsTest.java index e046900f5..c30c040fd 100644 --- a/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/MenuItemsTest.java +++ b/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/MenuItemsTest.java @@ -20,8 +20,12 @@ import com.google.android.maps.mytracks.R; import android.annotation.TargetApi; import android.app.Instrumentation; +import android.content.Intent; import android.test.ActivityInstrumentationTestCase2; import android.view.KeyEvent; +import android.view.View; + +import java.util.ArrayList; /** * Tests some menu items of MyTracks. @@ -90,6 +94,98 @@ public class MenuItemsTest extends ActivityInstrumentationTestCase2 cc = EndToEndTestUtils.SOLO.getViews(); + int i = 0; + for (View view : cc) { + String name = view.getParent().getClass().getName(); + // Each share item is in one Linear layout which is the child view of + if (name.indexOf("RecycleListView") > 0) { + if (index == i) { + return view; + } + i++; + } + } + return null; + } + + /** + * Checks the voice frequency and split frequency menus when no track is + * recording. + */ + public void testFrequencyMenu_noRecording() { + EndToEndTestUtils.createTrackIfEmpty(0, false); + assertFalse(EndToEndTestUtils.findMenuItem( + activityMyTracks.getString(R.string.menu_voice_frequency), false)); + assertFalse(EndToEndTestUtils.findMenuItem( + activityMyTracks.getString(R.string.menu_split_frequency), false)); + + EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_settings), true); + EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.settings_recording)); + + assertTrue(EndToEndTestUtils.SOLO.searchText(activityMyTracks.getString(R.string.menu_voice_frequency), 1, true, true)); + assertTrue(EndToEndTestUtils.SOLO.searchText(activityMyTracks.getString(R.string.menu_split_frequency), 1, true, true)); + } + + /** + * Checks the voice frequency and split frequency menus during recording. + */ + public void testFrequencyMenu_underRecording() { + EndToEndTestUtils.startRecording(); + assertTrue(EndToEndTestUtils.findMenuItem( + activityMyTracks.getString(R.string.menu_voice_frequency), false)); + assertTrue(EndToEndTestUtils.findMenuItem( + activityMyTracks.getString(R.string.menu_split_frequency), false)); + EndToEndTestUtils.stopRecording(true); + + assertFalse(EndToEndTestUtils.findMenuItem( + activityMyTracks.getString(R.string.menu_voice_frequency), false)); + assertFalse(EndToEndTestUtils.findMenuItem( + activityMyTracks.getString(R.string.menu_split_frequency), false)); + } @Override protected void tearDown() throws Exception { diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/ViewsTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/ViewsTest.java index aa9457bc4..80e677149 100644 --- a/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/ViewsTest.java +++ b/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/ViewsTest.java @@ -81,9 +81,12 @@ public class ViewsTest extends ActivityInstrumentationTestCase2