Code cleanup: SettingsTest.java

This commit is contained in:
Jimmy Shih
2014-01-31 14:12:33 -08:00
parent abb9b6e302
commit 09102ab6db
3 changed files with 296 additions and 431 deletions
@@ -16,7 +16,6 @@ package com.google.android.apps.mytracks.endtoendtest;
* the License.
*/
import com.google.android.apps.mytracks.ChartView;
import com.google.android.apps.mytracks.TrackListActivity;
import com.google.android.maps.mytracks.R;
import com.robotium.solo.Solo;
@@ -733,21 +732,6 @@ public class EndToEndTestUtils {
return null;
}
/**
* Gets the ChartView.
*
* @return the ChartView or null if not find
*/
public static ChartView getChartView() {
ArrayList<View> views = SOLO.getViews();
for (View view : views) {
if (view instanceof ChartView) {
return (ChartView) view;
}
}
return null;
}
/**
* Resets all settings of MyTracks.
*
@@ -1,415 +0,0 @@
/*
* Copyright 2012 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.google.android.apps.mytracks.endtoendtest.common;
import com.google.android.apps.mytracks.ChartView;
import com.google.android.apps.mytracks.TrackListActivity;
import com.google.android.apps.mytracks.endtoendtest.EndToEndTestUtils;
import com.google.android.apps.mytracks.util.PreferencesUtils;
import com.google.android.maps.mytracks.R;
import android.app.Instrumentation;
import android.content.Context;
import android.test.ActivityInstrumentationTestCase2;
import android.util.Log;
import android.widget.CheckBox;
import android.widget.ListView;
import java.util.ArrayList;
/**
* Tests the setting of MyTracks.
*
* @author Youtao Liu
*/
public class SettingTest extends ActivityInstrumentationTestCase2<TrackListActivity> {
private static final String TAG = SettingTest.class.getSimpleName();
private Instrumentation instrumentation;
private TrackListActivity activityMyTracks;
public SettingTest() {
super(TrackListActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
instrumentation = getInstrumentation();
activityMyTracks = getActivity();
EndToEndTestUtils.setupForAllTest(instrumentation, activityMyTracks);
}
/**
* Changes some settings and then reset them. This test case tests three
* points:
* <ul>
* <li>Resets all settings.</li>
* <li>Changes the setting of Display.</li>
* <li>Changes the setting of Sharing.</li>
* </ul>
*/
public void testChangeAndReset() {
// Reset all settings.
EndToEndTestUtils.resetAllSettings(activityMyTracks, true);
// Change a setting of Map.
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.track_detail_stats_tab));
instrumentation.waitForIdleSync();
// Rotate on a sub setting page.
EndToEndTestUtils.rotateCurrentActivity();
EndToEndTestUtils.SOLO.waitForText(activityMyTracks
.getString(R.string.settings_stats_units_title));
ArrayList<CheckBox> displayCheckBoxs = EndToEndTestUtils.SOLO.getCurrentViews(CheckBox.class);
boolean useMetric = displayCheckBoxs.get(0).isChecked();
EndToEndTestUtils.SOLO.clickOnCheckBox(0);
instrumentation.waitForIdleSync();
EndToEndTestUtils.SOLO.goBack();
// Change a setting of sharing.
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.settings_advanced));
assertTrue(EndToEndTestUtils.SOLO.waitForText(
activityMyTracks.getString(R.string.settings_sharing_allow_access), 1,
EndToEndTestUtils.NORMAL_WAIT_TIME));
ArrayList<CheckBox> sharingCheckBoxs = EndToEndTestUtils.SOLO.getCurrentViews(CheckBox.class);
boolean newMapsPublic = sharingCheckBoxs.get(0).isChecked();
EndToEndTestUtils.SOLO.clickOnCheckBox(0);
instrumentation.waitForIdleSync();
assertTrue(EndToEndTestUtils.SOLO.waitForText(
activityMyTracks.getString(R.string.settings_sharing_allow_access_confirm_message), 1,
EndToEndTestUtils.NORMAL_WAIT_TIME));
EndToEndTestUtils.SOLO.clickOnButton(activityMyTracks.getString(R.string.generic_yes));
instrumentation.waitForIdleSync();
assertEquals(!newMapsPublic, EndToEndTestUtils.SOLO.getCurrentViews(CheckBox.class).get(0)
.isChecked());
EndToEndTestUtils.SOLO.goBack();
// Reset all settings.
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.settings_advanced));
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.settings_reset));
EndToEndTestUtils.getButtonOnScreen(activityMyTracks.getString(R.string.generic_yes), true,
true);
EndToEndTestUtils.SOLO.waitForText(activityMyTracks.getString(R.string.settings_reset_done), 1,
EndToEndTestUtils.SHORT_WAIT_TIME);
instrumentation.waitForIdleSync();
EndToEndTestUtils.SOLO.goBack();
// Check settings.
// Add following scroll up for a bug of Robotium.
EndToEndTestUtils.SOLO.waitForText(activityMyTracks.getString(R.string.track_detail_stats_tab),
1, EndToEndTestUtils.NORMAL_WAIT_TIME);
EndToEndTestUtils.SOLO.scrollUp();
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.track_detail_stats_tab));
assertTrue(EndToEndTestUtils.SOLO.waitForText(
activityMyTracks.getString(R.string.settings_stats_units_title), 1,
EndToEndTestUtils.LONG_WAIT_TIME));
displayCheckBoxs = EndToEndTestUtils.SOLO.getCurrentViews(CheckBox.class);
Log.d(TAG, "useMetric:" + useMetric);
assertEquals(useMetric, displayCheckBoxs.get(0).isChecked());
EndToEndTestUtils.SOLO.goBack();
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.settings_advanced));
EndToEndTestUtils.SOLO.waitForText(activityMyTracks
.getString(R.string.settings_sharing_allow_access));
sharingCheckBoxs = EndToEndTestUtils.SOLO.getCurrentViews(CheckBox.class);
assertEquals(newMapsPublic, sharingCheckBoxs.get(0).isChecked());
}
/**
* Tests the change of preferred units.
*/
public void testChangePreferredUnits() {
EndToEndTestUtils.createTrackIfEmpty(5, false);
// Change it and verify it.
ChangePreferredUnits();
// Change it back and verify it.
ChangePreferredUnits();
}
/**
* Tests the change of stats settings during recording on chart view.
*/
public void testChangeStatsSettings_underRecording_chart() {
EndToEndTestUtils.startRecording();
// Test just change preferred units when display CHART tab.
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.track_detail_chart_tab));
EndToEndTestUtils.sendGps(3);
ChangeStatsSettings(true, false, false, false);
EndToEndTestUtils.sendGps(3, 3);
EndToEndTestUtils.stopRecording(true);
}
/**
* Tests the change of stats settings during recording on stats tab.
*/
public void testChangeStatsSettings_underRecording_stats() {
EndToEndTestUtils.startRecording();
// Test change preferred units and preferred rate when display STATS tab.
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.track_detail_stats_tab));
EndToEndTestUtils.sendGps(3);
ChangeStatsSettings(true, true, false, false);
EndToEndTestUtils.sendGps(3, 3);
EndToEndTestUtils.stopRecording(true);
}
/**
* Tests displaying elevation, grade and latitude and longitude information in
* Stats tab.
*/
public void testChangeStatsSettings_showExtraInfos() {
EndToEndTestUtils.resetAllSettings(activityMyTracks, false);
ChangeStatsSettings(false, false, true, true);
EndToEndTestUtils.startRecording();
instrumentation.waitForIdleSync();
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.track_detail_stats_tab));
assertTrue(EndToEndTestUtils.SOLO.waitForText(
activityMyTracks.getString(R.string.stats_elevation), 1,
EndToEndTestUtils.NORMAL_WAIT_TIME, true));
assertTrue(EndToEndTestUtils.SOLO.waitForText(activityMyTracks.getString(R.string.stats_grade)));
assertTrue(EndToEndTestUtils.SOLO.waitForText(activityMyTracks
.getString(R.string.stats_latitude)));
EndToEndTestUtils.stopRecording(true);
assertTrue(EndToEndTestUtils.SOLO.waitForText(
activityMyTracks.getString(R.string.stats_elevation), 1,
EndToEndTestUtils.NORMAL_WAIT_TIME, true));
assertTrue(EndToEndTestUtils.SOLO.waitForText(activityMyTracks.getString(R.string.stats_grade)));
assertTrue(EndToEndTestUtils.findTextView(activityMyTracks.getString(R.string.stats_latitude)) == null);
}
/**
* Changes settings of preferred units and preferred rate.
*
* @param changeUnits is change the preferred unit
* @param changeRate is change the preferred rate
* @param changeGradeElevation is change the grade and elevation
* @param changeLatLong is change the latitude and longitude
*/
private void ChangeStatsSettings(boolean changeUnits, boolean changeRate,
boolean changeGradeElevation, boolean changeLatLong) {
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_settings), true);
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.track_detail_stats_tab));
assertTrue(EndToEndTestUtils.SOLO.waitForText(activityMyTracks
.getString(R.string.settings_stats_units_title)));
// Change preferred units.
if (changeUnits) {
boolean isImperial = EndToEndTestUtils.findTextViewInView(
activityMyTracks.getString(R.string.settings_stats_units_imperial),
EndToEndTestUtils.SOLO.getCurrentViews(ListView.class).get(0)) != null;
// Change preferred units.
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(R.string.settings_stats_units_title));
if (isImperial) {
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.unit_kilometer));
} else {
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.unit_feet));
}
}
if (changeRate) {
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(R.string.settings_stats_rate_title));
}
if (changeGradeElevation) {
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(R.string.settings_stats_grade_elevation));
}
if (changeLatLong) {
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(R.string.settings_stats_coordinate));
}
EndToEndTestUtils.SOLO.goBack();
EndToEndTestUtils.SOLO.goBack();
}
/**
* Changes PreferredUnits and verifies the change.
*/
private void ChangePreferredUnits() {
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_settings), true);
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.track_detail_stats_tab));
assertTrue(EndToEndTestUtils.SOLO.waitForText(activityMyTracks
.getString(R.string.settings_stats_units_title)));
boolean isImperial = EndToEndTestUtils.findTextViewInView(activityMyTracks
.getString(R.string.settings_stats_units_imperial),
EndToEndTestUtils.SOLO.getCurrentViews(ListView.class).get(0)) != null;
// Change preferred units.
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(R.string.settings_stats_units_title));
if (isImperial) {
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.unit_kilometer));
} else {
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.unit_feet));
}
isImperial = !isImperial;
EndToEndTestUtils.SOLO.goBack();
EndToEndTestUtils.SOLO.goBack();
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.track_detail_chart_tab));
instrumentation.waitForIdleSync();
ChartView chartView = EndToEndTestUtils.getChartView();
assertEquals(!isImperial, chartView.isMetricUnits());
}
/**
* Tests the setting of recording. This test changes the default name and
* activity of tracks, and the creates a new track to check it.
*/
public void testRecording() {
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_settings), true);
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.settings_recording));
// Changes the setting of recording name.
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(R.string.settings_recording_track_name_title));
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(R.string.settings_recording_track_name_number_option));
// Changes the setting of default activity.
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(R.string.settings_recording_default_activity_title));
EndToEndTestUtils.enterTextAvoidSoftKeyBoard(0, EndToEndTestUtils.activityType);
EndToEndTestUtils
.getButtonOnScreen(activityMyTracks.getString(R.string.generic_ok), true, true);
EndToEndTestUtils.SOLO.goBack();
EndToEndTestUtils.SOLO.goBack();
EndToEndTestUtils.startRecording();
instrumentation.waitForIdleSync();
EndToEndTestUtils.stopRecording(false);
assertTrue(EndToEndTestUtils.SOLO.searchText(activityMyTracks.getString(
R.string.track_name_format).split(" ")[0]));
assertTrue(EndToEndTestUtils.SOLO.searchText(EndToEndTestUtils.activityType));
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.generic_save));
}
/**
* Tests the setting of fixed track color settings.
*/
public void testTrackColorSettings_fixed() {
Context context = activityMyTracks.getApplicationContext();
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_settings), true);
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.menu_map));
String errorString = "error";
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(R.string.settings_map_track_color_mode));
instrumentation.waitForIdleSync();
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(R.string.settings_map_track_color_mode_fixed));
EndToEndTestUtils.waitTextToDisappear(activityMyTracks
.getString(R.string.settings_map_track_color_mode_dynamic_value));
assertEquals(activityMyTracks.getString(R.string.settings_map_track_color_mode_fixed_value),
PreferencesUtils.getString(context, R.string.track_color_mode_key, errorString));
}
/**
* Tests the setting of dynamic track color settings.
*/
public void testTrackColorSettings_dynamic() {
Context context = activityMyTracks.getApplicationContext();
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_settings), true);
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.menu_map));
String errorString = "error";
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(R.string.settings_map_track_color_mode));
instrumentation.waitForIdleSync();
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(R.string.settings_map_track_color_mode_dynamic));
EndToEndTestUtils.waitTextToDisappear(activityMyTracks
.getString(R.string.settings_map_track_color_mode_dynamic_value));
assertEquals(activityMyTracks.getString(R.string.settings_map_track_color_mode_dynamic_value),
PreferencesUtils.getString(context, R.string.track_color_mode_key, errorString));
}
/**
* Tests the setting of single track color settings.
*/
public void testTrackColorSettings_single() {
Context context = activityMyTracks.getApplicationContext();
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_settings), true);
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.menu_map));
String errorString = "error";
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(R.string.settings_map_track_color_mode));
instrumentation.waitForIdleSync();
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(R.string.settings_map_track_color_mode_single));
EndToEndTestUtils.waitTextToDisappear(activityMyTracks
.getString(R.string.settings_map_track_color_mode_dynamic_value));
assertEquals(activityMyTracks.getString(R.string.settings_map_track_color_mode_single_value),
PreferencesUtils.getString(context, R.string.track_color_mode_key, errorString));
}
// /**
// * Tests the setting and menu item of sync.
// */
// public void testSyncNowMenu() {
// EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_settings), true);
// EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.settings_google));
// EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
// .getString(R.string.settings_google_account_title));
//
// // Whether test account is bound.
// if (EndToEndTestUtils.SOLO.waitForText(GoogleUtils.ACCOUNT_NAME_1, 1,
// EndToEndTestUtils.TINY_WAIT_TIME)) {
// EndToEndTestUtils.SOLO.clickOnText(GoogleUtils.ACCOUNT_NAME_1);
// instrumentation.waitForIdleSync();
// EndToEndTestUtils.SOLO.waitForText(activityMyTracks.getString(R.string.menu_sync_drive));
// assertTrue(EndToEndTestUtils.findTextView(
// activityMyTracks.getString(R.string.menu_sync_drive)).isEnabled());
// } else {
// EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.value_none));
// instrumentation.waitForIdleSync();
// EndToEndTestUtils.SOLO.waitForText(activityMyTracks.getString(R.string.menu_sync_drive));
// assertFalse(EndToEndTestUtils.findTextView(
// activityMyTracks.getString(R.string.menu_sync_drive)).isEnabled());
// return;
// }
//
// EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.menu_sync_drive));
//
// boolean isSyncChecked = false;
// if (EndToEndTestUtils.SOLO.waitForText(
// activityMyTracks.getString(R.string.sync_drive_confirm_message).split("%")[0], 1,
// EndToEndTestUtils.SHORT_WAIT_TIME)) {
// isSyncChecked = true;
// } else {
// isSyncChecked = false;
// }
// EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.generic_yes));
// EndToEndTestUtils.SOLO.goBack();
// EndToEndTestUtils.SOLO.goBack();
// assertEquals(isSyncChecked,
// EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_sync_now), false));
// }
@Override
protected void tearDown() throws Exception {
EndToEndTestUtils.SOLO.finishOpenedActivities();
super.tearDown();
}
}
@@ -0,0 +1,296 @@
/*
* Copyright 2012 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.google.android.apps.mytracks.endtoendtest.common;
import com.google.android.apps.mytracks.TrackListActivity;
import com.google.android.apps.mytracks.endtoendtest.EndToEndTestUtils;
import com.google.android.maps.mytracks.R;
import android.app.Instrumentation;
import android.test.ActivityInstrumentationTestCase2;
import android.widget.CheckBox;
import junit.framework.Assert;
/**
* Tests the settings.
*
* @author Youtao Liu
*/
public class SettingsTest extends ActivityInstrumentationTestCase2<TrackListActivity> {
private static final String GMAIL_COM = "gmail.com";
private static final String NEW_ACTIVITY_TYPE = "NewActivityType";
private Instrumentation instrumentation;
private TrackListActivity trackListActivity;
public SettingsTest() {
super(TrackListActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
instrumentation = getInstrumentation();
trackListActivity = getActivity();
EndToEndTestUtils.setupForAllTest(instrumentation, trackListActivity);
}
@Override
protected void tearDown() throws Exception {
EndToEndTestUtils.SOLO.finishOpenedActivities();
super.tearDown();
}
/**
* Tests changing preferred units to imperial.
*/
public void testPreferredUnits_imperial() {
testPreferredUnits(R.string.unit_mile);
}
/**
* Tests changing preferred units to metric.
*/
public void testPreferredUnits_metric() {
testPreferredUnits(R.string.unit_kilometer);
}
/**
* Tests changing preferred units while recording and viewing the chart tab.
*/
public void testPreferredUnitsRecording_chart() {
testPreferredUnitsRecording(R.string.track_detail_chart_tab);
}
/**
* Tests changing preferred units while recording and viewing the stats tab.
*/
public void testPreferredUnitsRecording_stats() {
testPreferredUnitsRecording(R.string.track_detail_stats_tab);
}
/**
* Tests changing preferred units while recording and viewing the map tab.
*/
public void testPreferredUnitsRecording_map() {
testPreferredUnitsRecording(R.string.track_detail_map_tab);
}
/**
* Tests grade/elevation and latitude/longitude..
*/
public void testGradeElevationAndLatitudeLongitude() {
// Ennable grade/elevation and latitude/longitude
EndToEndTestUtils.findMenuItem(trackListActivity.getString(R.string.menu_settings), true);
EndToEndTestUtils.SOLO.clickOnText(
trackListActivity.getString(R.string.track_detail_stats_tab));
assertTrue(EndToEndTestUtils.SOLO.waitForText(
trackListActivity.getString(R.string.settings_stats_units_title)));
EndToEndTestUtils.SOLO.clickOnText(
trackListActivity.getString(R.string.settings_stats_grade_elevation));
EndToEndTestUtils.SOLO.clickOnText(
trackListActivity.getString(R.string.settings_stats_coordinate));
EndToEndTestUtils.SOLO.goBack();
EndToEndTestUtils.SOLO.goBack();
// Start recording and check stats tab
EndToEndTestUtils.startRecording();
instrumentation.waitForIdleSync();
EndToEndTestUtils.SOLO.clickOnText(
trackListActivity.getString(R.string.track_detail_stats_tab));
assertTrue(EndToEndTestUtils.SOLO.waitForText(
trackListActivity.getString(R.string.stats_elevation), 1,
EndToEndTestUtils.NORMAL_WAIT_TIME, true));
assertTrue(
EndToEndTestUtils.SOLO.waitForText(trackListActivity.getString(R.string.stats_grade)));
assertTrue(
EndToEndTestUtils.SOLO.waitForText(trackListActivity.getString(R.string.stats_latitude)));
assertTrue(
EndToEndTestUtils.SOLO.waitForText(trackListActivity.getString(R.string.stats_longitude)));
// Stop recording and check stats tab
EndToEndTestUtils.stopRecording(true);
assertTrue(EndToEndTestUtils.SOLO.waitForText(
trackListActivity.getString(R.string.stats_elevation), 1,
EndToEndTestUtils.NORMAL_WAIT_TIME, true));
assertTrue(
EndToEndTestUtils.SOLO.waitForText(trackListActivity.getString(R.string.stats_grade)));
assertNull(
EndToEndTestUtils.findTextView(trackListActivity.getString(R.string.stats_latitude)));
assertNull(
EndToEndTestUtils.findTextView(trackListActivity.getString(R.string.stats_longitude)));
}
/**
* Tests default track name and default activity type.
*/
public void testDefaultTrackNameAndDefaultActivityType() {
EndToEndTestUtils.findMenuItem(trackListActivity.getString(R.string.menu_settings), true);
EndToEndTestUtils.SOLO.clickOnText(trackListActivity.getString(R.string.settings_recording));
// Change the default track name to number
EndToEndTestUtils.SOLO.clickOnText(
trackListActivity.getString(R.string.settings_recording_track_name_title));
EndToEndTestUtils.SOLO.clickOnText(
trackListActivity.getString(R.string.settings_recording_track_name_number_option));
// Change the default activity type to NEW_ACTIVITY_TYPE
EndToEndTestUtils.SOLO.clickOnText(
trackListActivity.getString(R.string.settings_recording_default_activity_title));
EndToEndTestUtils.enterTextAvoidSoftKeyBoard(0, NEW_ACTIVITY_TYPE);
EndToEndTestUtils.getButtonOnScreen(
trackListActivity.getString(R.string.generic_ok), true, true);
EndToEndTestUtils.SOLO.goBack();
EndToEndTestUtils.SOLO.goBack();
EndToEndTestUtils.startRecording();
instrumentation.waitForIdleSync();
EndToEndTestUtils.stopRecording(false);
assertTrue(EndToEndTestUtils.SOLO.searchText(
trackListActivity.getString(R.string.track_name_format).split(" ")[0]));
assertTrue(EndToEndTestUtils.SOLO.searchText(NEW_ACTIVITY_TYPE));
EndToEndTestUtils.SOLO.clickOnText(trackListActivity.getString(R.string.generic_save));
}
/**
* Tests track color setting for fixed thresholds.
*/
public void testTrackColor_fixed() {
testTrackColor(R.string.settings_map_track_color_mode_fixed,
R.string.settings_map_track_color_mode_fixed_summary);
}
/**
* Tests track color setting for dynamic thresholds.
*/
public void testTrackColorSettings_dynamic() {
testTrackColor(R.string.settings_map_track_color_mode_dynamic,
R.string.settings_map_track_color_mode_dynamic_summary);
}
/**
* Tests track color setting for single color.
*/
public void testTrackColorSettings_single() {
testTrackColor(R.string.settings_map_track_color_mode_single,
R.string.settings_map_track_color_mode_single);
}
/**
* Tests allow access.
*/
public void testAllowAccess() {
EndToEndTestUtils.findMenuItem(trackListActivity.getString(R.string.menu_settings), true);
EndToEndTestUtils.SOLO.clickOnText(trackListActivity.getString(R.string.settings_advanced));
assertTrue(EndToEndTestUtils.SOLO.waitForText(
trackListActivity.getString(R.string.settings_sharing_allow_access), 1,
EndToEndTestUtils.NORMAL_WAIT_TIME));
EndToEndTestUtils.SOLO.clickOnCheckBox(0);
assertTrue(EndToEndTestUtils.SOLO.waitForText(
trackListActivity.getString(R.string.settings_sharing_allow_access_confirm_message), 1,
EndToEndTestUtils.NORMAL_WAIT_TIME));
EndToEndTestUtils.SOLO.clickOnButton(trackListActivity.getString(R.string.generic_yes));
instrumentation.waitForIdleSync();
assertEquals(true, EndToEndTestUtils.SOLO.getCurrentViews(CheckBox.class).get(0).isChecked());
EndToEndTestUtils.SOLO.goBack();
}
/**
* Tests sync.
*/
public void testSync() {
EndToEndTestUtils.findMenuItem(trackListActivity.getString(R.string.menu_settings), true);
EndToEndTestUtils.SOLO.clickOnText(trackListActivity.getString(R.string.menu_sync_drive));
// Whether there is a gmail.com account
if (!EndToEndTestUtils.SOLO.waitForText(GMAIL_COM, 1, EndToEndTestUtils.TINY_WAIT_TIME)) {
return;
}
// Click the first gmail.com account
EndToEndTestUtils.SOLO.clickOnText(GMAIL_COM, 0);
instrumentation.waitForIdleSync();
EndToEndTestUtils.getButtonOnScreen(
trackListActivity.getString(R.string.generic_ok), true, true);
EndToEndTestUtils.SOLO.waitForText(
trackListActivity.getString(R.string.sync_drive_confirm_message).split("%")[0], 1,
EndToEndTestUtils.SHORT_WAIT_TIME);
EndToEndTestUtils.SOLO.clickOnText(trackListActivity.getString(R.string.generic_no));
EndToEndTestUtils.SOLO.goBack();
assertEquals(false,
EndToEndTestUtils.findMenuItem(trackListActivity.getString(R.string.menu_sync_now), false));
}
/**
* Tests preferred units.
*
* @param unitId the unit id
*/
private void testPreferredUnits(int unitId) {
EndToEndTestUtils.findMenuItem(trackListActivity.getString(R.string.menu_settings), true);
EndToEndTestUtils.SOLO.clickOnText(
trackListActivity.getString(R.string.track_detail_stats_tab));
Assert.assertTrue(EndToEndTestUtils.SOLO.waitForText(
trackListActivity.getString(R.string.settings_stats_units_title)));
EndToEndTestUtils.SOLO.clickOnText(
trackListActivity.getString(R.string.settings_stats_units_title));
instrumentation.waitForIdleSync();
String unit = trackListActivity.getString(unitId);
EndToEndTestUtils.SOLO.clickOnText(unit);
EndToEndTestUtils.SOLO.searchText(unit);
EndToEndTestUtils.SOLO.goBack();
EndToEndTestUtils.SOLO.goBack();
}
/**
* Tests preferred units while recording.
*
* @param tabId the tab id
*/
private void testPreferredUnitsRecording(int tabId) {
testPreferredUnits(R.string.unit_kilometer);
EndToEndTestUtils.startRecording();
EndToEndTestUtils.SOLO.clickOnText(trackListActivity.getString(tabId));
EndToEndTestUtils.sendGps(3);
testPreferredUnits(R.string.unit_mile);
EndToEndTestUtils.sendGps(3, 3);
EndToEndTestUtils.stopRecording(true);
}
/**
* Tests track color setting.
*
* @param modeId the mode id
* @param summaryId the summary id
*/
private void testTrackColor(int modeId, int summaryId) {
EndToEndTestUtils.findMenuItem(trackListActivity.getString(R.string.menu_settings), true);
EndToEndTestUtils.SOLO.clickOnText(trackListActivity.getString(R.string.menu_map));
EndToEndTestUtils.SOLO.clickOnText(
trackListActivity.getString(R.string.settings_map_track_color_mode));
instrumentation.waitForIdleSync();
EndToEndTestUtils.SOLO.clickOnText(trackListActivity.getString(modeId));
instrumentation.waitForIdleSync();
EndToEndTestUtils.SOLO.waitForText(trackListActivity.getString(summaryId));
}
}