package course.labs.graphicslab.tests;
import course.labs.graphicslab.BubbleActivity;
import com.robotium.solo.*;
import android.test.ActivityInstrumentationTestCase2;
public class BubbleActivityFloatOffScreen extends
ActivityInstrumentationTestCase2<BubbleActivity> {
private Solo solo;
public BubbleActivityFloatOffScreen() {
super(BubbleActivity.class);
}
public void setUp() throws Exception {
solo = new Solo(getInstrumentation(), getActivity());
}
@Override
public void tearDown() throws Exception {
solo.finishOpenedActivities();
}
public void testRun() {
int shortDelay = 250, delay = 2000;
// Wait for activity: 'course.labs.TouchLab.BubbleActivity'
solo.waitForActivity(course.labs.graphicslab.BubbleActivity.class,
delay);
// Click on action bar item
solo.clickOnMenuItem("Single Speed Mode");
// Click on action bar item
solo.clickOnMenuItem("Add a Bubble");
// Check whether bubble appears
boolean bubbleAppeared = solo.getCurrentViews(
course.labs.graphicslab.BubbleActivity.BubbleView.class).size() > 0;
for (int i = 0; i < 8 && !bubbleAppeared; i++) {
solo.sleep(shortDelay);
bubbleAppeared = solo.getCurrentViews(
course.labs.graphicslab.BubbleActivity.BubbleView.class)
.size() > 0;
}
// Assert that a bubble was displayed
assertTrue("Bubble hasn't appeared", bubbleAppeared);
solo.sleep(delay);
// Assert that the bubble has left the screen
assertEquals(
"Bubble hasn't left the screen",
0,
solo.getCurrentViews(
course.labs.graphicslab.BubbleActivity.BubbleView.class)
.size());
}
}