package course.labs.activitylab.tests;
import android.test.ActivityInstrumentationTestCase2;
import com.robotium.solo.Condition;
import com.robotium.solo.Solo;
import course.labs.activitylab.ActivityOne;
public class Test4_DoubleRotateActivityTwoTest extends ActivityInstrumentationTestCase2<ActivityOne> {
private Solo solo;
private int timeout = 20000;
private int sleep = 1000;
public Test4_DoubleRotateActivityTwoTest() {
super(ActivityOne.class);
}
protected void setUp() throws Exception {
solo = new Solo(getInstrumentation(), getActivity());
}
protected void tearDown() throws Exception {
solo.finishOpenedActivities();
}
// Exectues the DoubleRotateActivityTwoTest
public void testRun() {
// ==================== Section One =====================
// Wait for activity: 'course.labs.activitylab.ActivityOne'
assertTrue("DoubleRotateActivityTwoTest failed:" +
"Section One:" +
"ActivityOne did not load correctly",
solo.waitForActivity(course.labs.activitylab.ActivityOne.class, timeout));
// ==================== Section Two =====================
// Click on Start Activity Two
solo.waitForView(course.labs.activitylab.R.id.bLaunchActivityTwo);
solo.clickOnView(solo
.getView(course.labs.activitylab.R.id.bLaunchActivityTwo));
// Wait for activity: 'course.labs.activitylab.ActivityTwo'
assertTrue("DoubleRotateActivityTwoTest failed:" +
"Section Two:" +
"ActivityTwo did not load correctly",
solo.waitForActivity(course.labs.activitylab.ActivityTwo.class, timeout));
solo.waitForView(course.labs.activitylab.R.id.bClose);
// ==================== Section Three =====================
// Rotate the screen
solo.setActivityOrientation(Solo.LANDSCAPE);
// Wait for activity: 'course.labs.activitylab.ActivityTwo'
assertTrue("DoubleRotateActivityTwoTest failed:" +
"Section Three:" +
"ActivityTwo did not correctly load after first LANDSCAPE rotation.",
solo.waitForActivity(course.labs.activitylab.ActivityTwo.class, timeout));
solo.waitForView(course.labs.activitylab.R.id.bClose);
// ==================== Section Four =====================
// Rotate the screen
solo.setActivityOrientation(Solo.PORTRAIT);
// Wait for activity: 'course.labs.activitylab.ActivityTwo'
assertTrue("DoubleRotateActivityTwoTest failed:" +
"Section Four:" +
"ActivityTwo did not correctly load after second PORTRAIT rotation.",
solo.waitForActivity(course.labs.activitylab.ActivityTwo.class, timeout));
solo.waitForView(course.labs.activitylab.R.id.bClose);
// Check for proper counts
assertTrue("DoubleRotateActivityTwoTest failed:" +
"Section Four:" +
"onCreate() count was off for ActivityTwo after second PORTRAIT rotation.",
solo.waitForText("onCreate\\(\\) calls: 3"));
assertTrue("DoubleRotateActivityTwoTest failed:" +
"Section Four:" +
"onStart() count was off for ActivityTwo after second PORTRAIT rotation.",
solo.waitForText("onStart\\(\\) calls: 3"));
assertTrue("DoubleRotateActivityTwoTest failed:" +
"Section Four:" +
"onResume() count was off for ActivityTwo after second PORTRAIT rotation.",
solo.waitForText("onResume\\(\\) calls: 3"));
assertTrue("DoubleRotateActivityTwoTest failed:" +
"Section Four:" +
"onRestart() count was off for ActivityTwo after second PORTRAIT rotation.",
solo.waitForText("onRestart\\(\\) calls: 0"));
}
}