Skip to content

Instantly share code, notes, and snippets.

@uscheller
Created September 30, 2011 10:35
Show Gist options
  • Save uscheller/1253395 to your computer and use it in GitHub Desktop.
Save uscheller/1253395 to your computer and use it in GitHub Desktop.
Robotium UI Test
public class PhotoTest extends ActivityInstrumentationTestCase2 <LoginActivity> {
private static final int ACTIVITY_WAIT_TIME = 2000;
private Solo solo;
public PhotoTest() {
super("mypackage.activity", LoginActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
solo = new Solo(getInstrumentation(), getActivity());
String accept = solo.getString(mypackage.R.string.eula_accept);
if (solo.searchButton(accept)) {
// if the eula dialog is shown - accept
solo.clickOnButton(accept);
}
}
public void testLoginLogout() throws InterruptedException {
loginUser("foto82@mydomain.de","wrongpass");
String text = solo.getString(mypackage.R.string.alert_title_login_failed);
solo.waitForText(text);
String okButton = solo.getString(mypackage.R.string.action_ok);
Assert.assertTrue("Kein Loginfehler trotz falschem Login", solo.searchButton(okButton));
solo.clickOnButton(okButton);
loginUser("foto82@mydomain.de","asdfasdf");
solo.waitForActivity(FolderViewActivity.class.getName(), ACTIVITY_WAIT_TIME);
solo.assertCurrentActivity("Login was not sucessfull", FolderViewActivity.class);
logout();
}
public void testLoginLogoutUTF8() throws InterruptedException {
loginUser("joku10052@mydomain.de","Utf8üß$%!wrongpass");
String text = solo.getString(mypackage.R.string.alert_title_login_failed);
solo.waitForText(text);
String okButton = solo.getString(mypackage.R.string.action_ok);
Assert.assertTrue("Kein Loginfehler trotz falschem Login", solo.searchButton(okButton));
solo.clickOnButton(okButton);
loginUser("joku10052@mydomain.de","Utf8üß$%!");
solo.waitForActivity(FolderViewActivity.class.getName(), ACTIVITY_WAIT_TIME);
solo.assertCurrentActivity("Login was not sucessfull", FolderViewActivity.class);
logout();
}
public void testInfo() {
solo.assertCurrentActivity("Did not start into LoginActivity", LoginActivity.class);
Button infoButton = (Button)solo.getView(mypackage.R.id.infoButton);
solo.clickLongOnView(infoButton);
solo.assertCurrentActivity("InfoActivity did not load", InfoActivity.class);
Button continueButton = solo.getButton(solo.getString(mypackage.R.string.action_continue));
Assert.assertEquals(View.VISIBLE, continueButton.getVisibility());
solo.goBack();
solo.waitForActivity(LoginActivity.class.getName(), ACTIVITY_WAIT_TIME);
solo.assertCurrentActivity("Going back from InfoActivity failed", LoginActivity.class);
}
private void logout() {
solo.pressMenuItem(4);
solo.assertCurrentActivity("Logout was not sucessfull", LoginActivity.class);
}
private void loginUser(String username,String password) {
EditText usernameEditText = (EditText) solo.getView(mypackage.R.id.username_edit);
EditText passwordEditText = (EditText) solo.getView(mypackage.R.id.password_edit);
solo.clearEditText(usernameEditText);
solo.clearEditText(passwordEditText);
solo.enterText(usernameEditText, username);
solo.enterText(passwordEditText, password);
solo.clickOnButton(solo.getString(mypackage.R.string.action_login));
// Dialog "Zum Backup"
String notNow = solo.getString(mypackage.R.string.action_not_now);
if (solo.searchButton(notNow)) {
solo.clickOnButton(notNow);
}
}
@Override
protected void tearDown() throws Exception {
try {
solo.finalize();
} catch (Throwable e) {
e.printStackTrace();
}
getActivity().finish();
super.tearDown();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment