package course.labs.activitylab.tests; import android.test.ActivityInstrumentationTestCase2; import com.robotium.solo.Solo; import course.labs.activitylab.ActivityOne; public class Test6_ReopenActivityTwoTest extends ActivityInstrumentationTestCase2<ActivityOne> { private Solo solo; private int timeout = 20000; private int sleep = 1000; public Test6_ReopenActivityTwoTest() { super(ActivityOne.class); } public void setUp() throws Exception { solo = new Solo(getInstrumentation(), getActivity()); } protected void tearDown() throws Exception { solo.finishOpenedActivities(); } // Executes the ReopenActivityTwoTest public void testRun() { // ==================== Section One ===================== // Wait for activity: 'course.labs.activitylab.ActivityOne' assertTrue("ReopenActivityTwoTest failed:" + "Section One:" + "ActivityOne did not load correctly", solo.waitForActivity(course.labs.activitylab.ActivityOne.class, timeout)); solo.waitForView(course.labs.activitylab.R.id.bLaunchActivityTwo); // ==================== Section Two ===================== // Click on Start Activity Two solo.clickOnView(solo.getView(course.labs.activitylab.R.id.bLaunchActivityTwo)); // Wait for activity: 'course.labs.activitylab.ActivityTwo' assertTrue("ReopenActivityTwoTest failed:" + "Section Two:" + "ActivityTwo did not load correctly", solo.waitForActivity(course.labs.activitylab.ActivityTwo.class, timeout)); solo.waitForView(course.labs.activitylab.R.id.bClose); solo.sleep(sleep); // ==================== Section Three ===================== // Click on Close Activity solo.clickOnView(solo.getView(course.labs.activitylab.R.id.bClose)); // Wait for activity: 'course.labs.activitylab.ActivityOne' assertTrue("ReopenActivityTwoTest failed:" + "Section Three:" + "ActivityTwo did not close correctly", solo.waitForActivity(course.labs.activitylab.ActivityOne.class, timeout)); solo.waitForView(course.labs.activitylab.R.id.bLaunchActivityTwo); solo.sleep(sleep); // ==================== Section Four ===================== // Click on Start Activity Two solo.clickOnView(solo.getView(course.labs.activitylab.R.id.bLaunchActivityTwo)); // Wait for activity: 'course.labs.activitylab.ActivityTwo' assertTrue("ReopenActivityTwoTest failed:" + "Section Four:" + "ActivityTwo did not reopen correctly after being closed", solo.waitForActivity(course.labs.activitylab.ActivityTwo.class, timeout)); solo.waitForView(course.labs.activitylab.R.id.bClose); // Check for proper counts assertTrue("ReopenActivityTwoTest failed:" + "Section Four:" + "onCreate() count was off for ActivityTwo after being reopened for a second time.", solo.waitForText("onCreate\\(\\) calls: 1")); assertTrue("ReopenActivityTwoTest failed:" + "Section Four:" + "onStart() count was off for ActivityTwo after being reopened for a second time.", solo.waitForText("onStart\\(\\) calls: 1")); assertTrue("ReopenActivityTwoTest failed:" + "Section Four:" + "onResume() count was off for ActivityTwo after being reopened for a second time.", solo.waitForText("onResume\\(\\) calls: 1")); assertTrue("ReopenActivityTwoTest failed:" + "Section Four:" + "onRestart() count was off for ActivityTwo after being reopened for a second time.", solo.waitForText("onRestart\\(\\) calls: 0")); } }