package edu.illinois.geoalarm.test;
import edu.illinois.geoalarm.GeoAlarm;
import android.test.ActivityInstrumentationTestCase2;
import android.widget.ImageView;
import com.jayway.android.robotium.solo.Solo;
import android.test.suitebuilder.annotation.Smoke;
/**
* Tests the functionality of the main menu
* @author GeoAlarm
*
*/
public class GeoAlarmTest extends ActivityInstrumentationTestCase2<GeoAlarm>
{
private GeoAlarm mActivity;
private ImageView mapButton;
private ImageView tripButton;
private Solo solo;
public GeoAlarmTest()
{
super("edu.illinois.geoalarm", GeoAlarm.class);
}
@Override
protected void tearDown() throws Exception
{
mActivity.finish();
super.tearDown();
}
@Override
protected void setUp() throws Exception
{
super.setUp();
mActivity = this.getActivity();
mapButton = (ImageView) mActivity.findViewById(edu.illinois.geoalarm.R.id.mapButton);
tripButton = (ImageView) mActivity.findViewById(edu.illinois.geoalarm.R.id.tripButton);
solo = new Solo(getInstrumentation(), getActivity());
}
/**
* Test that Views exist
*/
public void testPreconditions()
{
assertNotNull(mapButton);
assertNotNull(tripButton);
}
/**
* Test map button display
*/
public void testMapsButton()
{
assertTrue(solo.searchText("Map"));
}
/**
* Test PlanTrip button display
*/
public void testTripButton()
{
assertTrue(solo.searchText("Plan Trip"));
}
/**
* Test a transition to the map and back
*/
@Smoke
public void testMapsTransition()
{
solo.assertCurrentActivity("Expected GeoAlarm activity", "GeoAlarm");
solo.clickOnImage(1); // Corresponds to map button
solo.assertCurrentActivity("Expected RouteMap activity", "RouteMap");
solo.goBack();
solo.assertCurrentActivity("Expected GeoAlarm activity", "GeoAlarm");
}
/**
* Test a transition to the trip planner and back
*/
@Smoke
public void testPlanTripTransition()
{
solo.assertCurrentActivity("Expected GeoAlarm activity", "GeoAlarm");
solo.clickOnImage(0); // Corresponds to plan trip button
solo.assertCurrentActivity("Expected TripPlannerBus activity", "TripPlanner");
solo.goBack();
solo.goBack();
solo.assertCurrentActivity("Expected GeoAlarm activity", "GeoAlarm");
}
/**
* Test a transition to the options and back
*/
@Smoke
public void testOptionsTransition()
{
solo.assertCurrentActivity("Expected GeoAlarm activity", "GeoAlarm");
solo.sendKey(Solo.MENU);
solo.clickOnText("Options");
solo.assertCurrentActivity("Expected Options activity", "Options");
solo.goBack();
solo.assertCurrentActivity("Expected GeoAlarm activity", "GeoAlarm");
}
}