Change code style. Add a class SecondaryTestUtils to manage general variables and methods of other tests.

This commit is contained in:
youtaol
2012-11-30 09:44:03 +08:00
parent c989e22d63
commit b857d25576
3 changed files with 50 additions and 93 deletions
@@ -0,0 +1,14 @@
package com.google.android.apps.mytracks.endtoendtest.others;
public class SecondaryTestUtils {
/**
* Set to false as default. True to run the test. Default to false since this
* test can take a long time.
*/
protected static boolean runTest = false;
protected static final String DISABLE_MESSAGE = "This test is disabled";
}
@@ -19,9 +19,7 @@ import com.google.android.apps.mytracks.TrackListActivity;
import com.google.android.apps.mytracks.endtoendtest.EndToEndTestUtils; import com.google.android.apps.mytracks.endtoendtest.EndToEndTestUtils;
import com.google.android.maps.mytracks.R; import com.google.android.maps.mytracks.R;
import android.app.AlertDialog;
import android.app.Instrumentation; import android.app.Instrumentation;
import android.content.DialogInterface;
import android.test.ActivityInstrumentationTestCase2; import android.test.ActivityInstrumentationTestCase2;
import android.util.Log; import android.util.Log;
import android.widget.ListView; import android.widget.ListView;
@@ -36,31 +34,19 @@ import java.util.ArrayList;
*/ */
public class SensorTest extends ActivityInstrumentationTestCase2<TrackListActivity> { public class SensorTest extends ActivityInstrumentationTestCase2<TrackListActivity> {
/**
* Set to false as default. True to run the test. Default to false since this
* test can take a long time.
*/
public static boolean runTest = false;
public SensorTest() { public SensorTest() {
super(TrackListActivity.class); super(TrackListActivity.class);
} }
private Instrumentation instrumentation; private Instrumentation instrumentation;
private TrackListActivity trackListActivity; private TrackListActivity trackListActivity;
public static final String DISABLE_MESSAGE = "This test is disabled"; private static final String ZEPHYR_NAME = "HXM";
public static final String ZEPHYR_NAME = "HXM"; private static final String POLAR_NAME = "Polar";
public static final String POLAR_NAME = "Polar";
/**
* This flag is true means the operation of UI thread has done.
*/
private boolean UIThreadDone = false;
@Override @Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
if (!runTest) { if (!SecondaryTestUtils.runTest) {
return; return;
} }
instrumentation = getInstrumentation(); instrumentation = getInstrumentation();
@@ -73,11 +59,11 @@ public class SensorTest extends ActivityInstrumentationTestCase2<TrackListActivi
* sensor must be paired with the device. * sensor must be paired with the device.
*/ */
public void testConnectZephyrBluetoothSensor() { public void testConnectZephyrBluetoothSensor() {
if (!runTest) { if (!SecondaryTestUtils.runTest) {
Log.i(EndToEndTestUtils.LOG_TAG, DISABLE_MESSAGE); Log.i(EndToEndTestUtils.LOG_TAG, SecondaryTestUtils.DISABLE_MESSAGE);
return; return;
} }
bluetoothSensorTest(trackListActivity.getString(R.string.settings_sensor_type_zephyr), ZEPHYR_NAME); bluetoothSensorTest(R.string.settings_sensor_type_zephyr, ZEPHYR_NAME);
} }
/** /**
@@ -85,25 +71,25 @@ public class SensorTest extends ActivityInstrumentationTestCase2<TrackListActivi
* sensor must be paired with the device. * sensor must be paired with the device.
*/ */
public void testConnectPolarBluetoothSensor() { public void testConnectPolarBluetoothSensor() {
if (!runTest) { if (!SecondaryTestUtils.runTest) {
Log.i(EndToEndTestUtils.LOG_TAG, DISABLE_MESSAGE); Log.i(EndToEndTestUtils.LOG_TAG, SecondaryTestUtils.DISABLE_MESSAGE);
return; return;
} }
bluetoothSensorTest(trackListActivity.getString(R.string.settings_sensor_type_polar), POLAR_NAME); bluetoothSensorTest(R.string.settings_sensor_type_polar, POLAR_NAME);
} }
/** /**
* Set the paired sensor. * Set the paired sensor.
* *
* @param sensorTypeString the type of paired sensors * @param sensorTypeStringId the string id of paired sensors type
* @param nameString part of the sensor name string which can distinguish * @param nameString part of the sensor name string which can distinguish
* different Bluetooth sensors. * different Bluetooth sensors
*/ */
private void bluetoothSensorTest(String sensorTypeString, String nameString) { private void bluetoothSensorTest(int sensorTypeStringId, String nameString) {
EndToEndTestUtils.findMenuItem(trackListActivity.getString(R.string.menu_settings), true); EndToEndTestUtils.findMenuItem(trackListActivity.getString(R.string.menu_settings), true);
EndToEndTestUtils.SOLO.clickOnText(trackListActivity.getString(R.string.settings_sensor)); EndToEndTestUtils.SOLO.clickOnText(trackListActivity.getString(R.string.settings_sensor));
EndToEndTestUtils.SOLO.clickOnText(trackListActivity.getString(R.string.settings_sensor_type)); EndToEndTestUtils.SOLO.clickOnText(trackListActivity.getString(R.string.settings_sensor_type));
EndToEndTestUtils.SOLO.clickOnText(sensorTypeString); EndToEndTestUtils.SOLO.clickOnText(trackListActivity.getString(sensorTypeStringId));
checkPairedSensorsNumber(nameString); checkPairedSensorsNumber(nameString);
// Set the paired sensor. // Set the paired sensor.
EndToEndTestUtils.SOLO.clickOnText(nameString); EndToEndTestUtils.SOLO.clickOnText(nameString);
@@ -121,59 +107,21 @@ public class SensorTest extends ActivityInstrumentationTestCase2<TrackListActivi
instrumentation.waitForIdleSync(); instrumentation.waitForIdleSync();
ArrayList<ListView> allListViews = EndToEndTestUtils.SOLO.getCurrentListViews(); ArrayList<ListView> allListViews = EndToEndTestUtils.SOLO.getCurrentListViews();
int number = allListViews.get(0).getCount(); int number = allListViews.get(0).getCount();
if (number > 0 && EndToEndTestUtils.SOLO.waitForText(nameString, 1, EndToEndTestUtils.SHORT_WAIT_TIME)) { if (number > 0
&& EndToEndTestUtils.SOLO.waitForText(nameString, 1, EndToEndTestUtils.SHORT_WAIT_TIME)) {
return; return;
} }
Log.i(EndToEndTestUtils.LOG_TAG, "No sensor is paried"); Log.i(EndToEndTestUtils.LOG_TAG, "No sensor is paried");
try { fail("No bluetooth sensor is paired. Please pair at Settings->Bluetooth before running the test.");
runTestOnUiThread(new Runnable() {
@Override
public void run() {
UIThreadDone = false;
new AlertDialog.Builder(EndToEndTestUtils.SOLO.getCurrentActivity())
.setTitle("No paried sensor.")
.setMessage("No paried sensor, do you want to pair sensor now?")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
UIThreadDone = true;
}
}).setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
fail();
}
}).show();
}
});
// Waiting user click the dialog.
while (!UIThreadDone) {
EndToEndTestUtils.sleep(1000);
Log.i(EndToEndTestUtils.LOG_TAG, "Waiting UI thread done.");
}
// Open OS setting page of Bluetooth.
EndToEndTestUtils.SOLO.goBack();
EndToEndTestUtils.SOLO.clickOnText(trackListActivity
.getString(R.string.settings_sensor_bluetooth_pairing));
// Now the setting page is on the front.
while (!EndToEndTestUtils.SOLO.waitForText(
trackListActivity.getString(R.string.settings_sensor_bluetooth_pairing), 1, 500)) {
Log.i(EndToEndTestUtils.LOG_TAG, "Waiting back to MyTracks activity.");
EndToEndTestUtils.sleep(200);
}
checkPairedSensorsNumber(nameString);
} catch (Throwable e) {
e.printStackTrace();
}
} }
/** /**
* Tests connecting to a cadence ANT+ sensor. * Tests connecting to a cadence ANT+ sensor.
*/ */
public void testConnectANTSensor_Cadence() { public void testConnectANTSensor_Cadence() {
if (!runTest) { if (!SecondaryTestUtils.runTest) {
Log.i(EndToEndTestUtils.LOG_TAG, DISABLE_MESSAGE); Log.i(EndToEndTestUtils.LOG_TAG, SecondaryTestUtils.DISABLE_MESSAGE);
return; return;
} }
useANTSeonsor(); useANTSeonsor();
@@ -185,8 +133,8 @@ public class SensorTest extends ActivityInstrumentationTestCase2<TrackListActivi
* Tests connecting to cadence and heart rate ANT+ sensors at the same time. * Tests connecting to cadence and heart rate ANT+ sensors at the same time.
*/ */
public void testConnectTwoANTSensors() { public void testConnectTwoANTSensors() {
if (!runTest) { if (!SecondaryTestUtils.runTest) {
Log.i(EndToEndTestUtils.LOG_TAG, DISABLE_MESSAGE); Log.i(EndToEndTestUtils.LOG_TAG, SecondaryTestUtils.DISABLE_MESSAGE);
return; return;
} }
useANTSeonsor(); useANTSeonsor();
@@ -211,15 +159,15 @@ public class SensorTest extends ActivityInstrumentationTestCase2<TrackListActivi
/** /**
* Checks whether the ANT+ sensor is connected with MyTracks. * Checks whether the ANT+ sensor is connected with MyTracks.
* *
* @param the string to check which is not equal None * @param viewID the id to check which is not equal with None
*/ */
private void checkANTSensorsStatus(int viewID) { private void checkANTSensorsStatus(int viewID) {
TextView sensorValue = ((TextView) EndToEndTestUtils.SOLO.getCurrentActivity().findViewById( TextView sensorValueText = ((TextView) EndToEndTestUtils.SOLO.getCurrentActivity()
viewID)); .findViewById(viewID));
assertNotNull(sensorValue); assertNotNull(sensorValueText);
String realValue = sensorValue.getText().toString(); String realValue = sensorValueText.getText().toString();
String noneValue = trackListActivity.getString(R.string.settings_sensor_type_none); String noneValue = trackListActivity.getString(R.string.settings_sensor_type_none);
assertEquals(-1, realValue.indexOf(noneValue)); assertNotSame(realValue, noneValue);
} }
/** /**
@@ -238,7 +186,7 @@ public class SensorTest extends ActivityInstrumentationTestCase2<TrackListActivi
@Override @Override
protected void tearDown() throws Exception { protected void tearDown() throws Exception {
if (!runTest) { if (!SecondaryTestUtils.runTest) {
return; return;
} }
EndToEndTestUtils.SOLO.finishOpenedActivities(); EndToEndTestUtils.SOLO.finishOpenedActivities();
@@ -30,12 +30,7 @@ import android.util.Log;
*/ */
public class StressTest extends ActivityInstrumentationTestCase2<TrackListActivity> { public class StressTest extends ActivityInstrumentationTestCase2<TrackListActivity> {
/** private static final int TEST_DURATION_IN_MILLISECONDS = 30 * 60 * 1000;
* Set to false as default. True to run the test. Default to false since this
* test can take a long time.
*/
public static boolean runTest = true;
public static final int TEST_DURATION_IN_MILLISECONDS = 30 * 60 * 1000;
private static final int MAX_TRACK_NUMBER = 30; private static final int MAX_TRACK_NUMBER = 30;
private long startTime = 0; private long startTime = 0;
private int numberOfTracks; private int numberOfTracks;
@@ -50,7 +45,7 @@ public class StressTest extends ActivityInstrumentationTestCase2<TrackListActivi
@Override @Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
if (!runTest) { if (!SecondaryTestUtils.runTest) {
return; return;
} }
instrumentation = getInstrumentation(); instrumentation = getInstrumentation();
@@ -66,8 +61,8 @@ public class StressTest extends ActivityInstrumentationTestCase2<TrackListActivi
* each track, making it closer to the real stress. * each track, making it closer to the real stress.
*/ */
public void testRecordAndDeleteTracks() { public void testRecordAndDeleteTracks() {
if (!runTest) { if (!SecondaryTestUtils.runTest) {
Log.i(EndToEndTestUtils.LOG_TAG, SensorTest.DISABLE_MESSAGE); Log.i(EndToEndTestUtils.LOG_TAG, SecondaryTestUtils.DISABLE_MESSAGE);
return; return;
} }
for (int i = 0; (System.currentTimeMillis() - startTime) < TEST_DURATION_IN_MILLISECONDS; i++) { for (int i = 0; (System.currentTimeMillis() - startTime) < TEST_DURATION_IN_MILLISECONDS; i++) {
@@ -90,8 +85,8 @@ public class StressTest extends ActivityInstrumentationTestCase2<TrackListActivi
* in each track, making it closer to the real stress. * in each track, making it closer to the real stress.
*/ */
public void testRotateMapViewInTrackDetailActivity() { public void testRotateMapViewInTrackDetailActivity() {
if (!runTest) { if (!SecondaryTestUtils.runTest) {
Log.i(EndToEndTestUtils.LOG_TAG, SensorTest.DISABLE_MESSAGE); Log.i(EndToEndTestUtils.LOG_TAG, SecondaryTestUtils.DISABLE_MESSAGE);
return; return;
} }
EndToEndTestUtils.startRecording(); EndToEndTestUtils.startRecording();
@@ -105,8 +100,8 @@ public class StressTest extends ActivityInstrumentationTestCase2<TrackListActivi
* Switches view between MAP, CHART and STAT. * Switches view between MAP, CHART and STAT.
*/ */
public void testSwitchTabs() { public void testSwitchTabs() {
if (!runTest) { if (!SecondaryTestUtils.runTest) {
Log.i(EndToEndTestUtils.LOG_TAG, SensorTest.DISABLE_MESSAGE); Log.i(EndToEndTestUtils.LOG_TAG, SecondaryTestUtils.DISABLE_MESSAGE);
return; return;
} }
EndToEndTestUtils.startRecording(); EndToEndTestUtils.startRecording();