Add test case about sensors.

This commit is contained in:
youtaol
2012-11-07 15:37:36 +08:00
parent 9bf05222f8
commit 61a7f4e0d8
2 changed files with 143 additions and 13 deletions
@@ -94,6 +94,11 @@ public class EndToEndTestUtils {
public static int LONG_WAIT_TIME = 15000;
public static int SUPER_LONG_WAIT_TIME = 100000;
/**
* During debug, sets it to false to make debug is more efficient.
*/
public static boolean clearEnvironment = true;
public static String deviceLanguage = "";
static {
@@ -256,21 +261,23 @@ public class EndToEndTestUtils {
hasActionBar = setHasActionBar();
checkLanguage();
isCheckedFirstLaunch = true;
deleteAllTracks();
resetAllSettings(activityMyTracks, false);
if (clearEnvironment) {
deleteAllTracks();
resetAllSettings(activityMyTracks, false);
instrumentation.waitForIdleSync();
// Check the status of real phone. For emulator, we would fix GPS signal.
if(!isEmulator) {
GoToMyLocationTest.findAndClickMyLocation(activityMyTracks);
hasGpsSingal = !SOLO.waitForText(NO_GPS_MESSAGE_PREFIX, 1,
EndToEndTestUtils.SHORT_WAIT_TIME);
SOLO.goBack();
instrumentation.waitForIdleSync();
// Check the status of real phone. For emulator, we would fix GPS signal.
if(!isEmulator) {
GoToMyLocationTest.findAndClickMyLocation(activityMyTracks);
hasGpsSingal = !SOLO.waitForText(NO_GPS_MESSAGE_PREFIX, 1,
EndToEndTestUtils.SHORT_WAIT_TIME);
SOLO.goBack();
}
} else if (SOLO.waitForText(
// After reset setting, welcome page will show again.
activityMytracks.getString(R.string.welcome_title), 0, SHORT_WAIT_TIME)) {
resetPreferredUnits();
}
} else if (SOLO.waitForText(
// After reset setting, welcome page will show again.
activityMytracks.getString(R.string.welcome_title), 0, SHORT_WAIT_TIME)) {
resetPreferredUnits();
}
// Check whether is under recording. If previous test failed, the recording
@@ -0,0 +1,123 @@
/*
* 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;
import com.google.android.apps.mytracks.TrackListActivity;
import com.google.android.maps.mytracks.R;
import android.app.Instrumentation;
import android.test.ActivityInstrumentationTestCase2;
import android.widget.ListView;
import java.util.ArrayList;
/**
* Tests Connect to Sensors.
*
* @author Youtao Liu
*/
public class SensorTest extends ActivityInstrumentationTestCase2<TrackListActivity> {
/**
* Set to false as default.
*/
public static boolean testSensor = false;
public SensorTest() {
super(TrackListActivity.class);
}
private Instrumentation instrumentation;
private TrackListActivity activityMyTracks;
@Override
protected void setUp() throws Exception {
super.setUp();
instrumentation = getInstrumentation();
activityMyTracks = getActivity();
EndToEndTestUtils.clearEnvironment = false;
EndToEndTestUtils.setupForAllTest(instrumentation, activityMyTracks);
}
/**
* Tests connecting to a Zephyr Bluetooth sensor. Before this test, a Zephyr
* sensor must has been paired with the device.
*/
public void testConnectZephyrBluetoothSensor() {
if (!testSensor) {
return;
}
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_settings), true);
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.settings_sensor));
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.settings_sensor_type));
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(R.string.settings_sensor_type_zephyr));
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(R.string.settings_sensor_bluetooth_sensor));
assertTrue(getPairedSensorsNumber() > 0);
EndToEndTestUtils.SOLO.goBack();
EndToEndTestUtils.SOLO.goBack();
EndToEndTestUtils.SOLO.goBack();
assertTrue(checkSensorsStatus());
}
/**
* Tests connecting to a Polar Bluetooth sensor. Before this test, a Polar
* sensor must has been paired with the device.
*/
public void testConnectPolarBluetoothSensor() {
if (!testSensor) {
return;
}
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_settings), true);
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.settings_sensor));
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks.getString(R.string.settings_sensor_type));
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(R.string.settings_sensor_type_polar));
EndToEndTestUtils.SOLO.clickOnText(activityMyTracks
.getString(R.string.settings_sensor_bluetooth_sensor));
assertTrue(getPairedSensorsNumber() > 0);
EndToEndTestUtils.SOLO.goBack();
EndToEndTestUtils.SOLO.goBack();
EndToEndTestUtils.SOLO.goBack();
assertTrue(checkSensorsStatus());
}
/**
* Get the number of paired sensors.
*
* @return the number of paired sensors
*/
private int getPairedSensorsNumber() {
ArrayList<ListView> allListViews = EndToEndTestUtils.SOLO.getCurrentListViews();
int number = allListViews.get(0).getCount();
return number;
}
/**
* Checks whether the sensor is connected with MyTracks.
*
* @return true means the sensor is connected with MyTracks
*/
private boolean checkSensorsStatus() {
EndToEndTestUtils.createTrackIfEmpty(0, false);
EndToEndTestUtils.findMenuItem(activityMyTracks.getString(R.string.menu_sensor_state), true);
return EndToEndTestUtils.SOLO.waitForText(
activityMyTracks.getString(R.string.sensor_state_connected), 1,
EndToEndTestUtils.NORMAL_WAIT_TIME);
}
}