package edu.washington.geopost.test;
import org.junit.After;
import android.app.Instrumentation.ActivityMonitor;
import android.test.ActivityInstrumentationTestCase2;
import android.util.Log;
import com.parse.ParseFacebookUtils;
import com.parse.ParseUser;
import com.robotium.solo.By;
import com.robotium.solo.Solo;
import edu.washington.geopost.LoginActivity;
import edu.washington.geopost.MainActivity;
public class LoginActivityTest extends
ActivityInstrumentationTestCase2<LoginActivity> {
private Solo solo;
private ActivityMonitor am;
String TEST_USER = "open_zjzusdi_user@tfbnw.net";
String TEST_USER_PASSWORD = "TestUserPass";
public LoginActivityTest() {
super(LoginActivity.class);
}
public void setUp() throws Exception {
solo = new Solo(getInstrumentation(), getActivity());
am = getInstrumentation().addMonitor(MainActivity.class.getName(), null, false);
}
public void testOnLoginButtonClicked() {
solo.sleep(5000);
ParseUser currentUser = ParseUser.getCurrentUser();
if ((currentUser == null) || !ParseFacebookUtils.isLinked(currentUser)) {
// Go to the map activity
solo.clickOnText("Log In");
// Did it go to the fb login screen or the map?
if (getInstrumentation().waitForMonitorWithTimeout(am, 5000) == null) {
solo.typeTextInWebElement(By.name("email"), TEST_USER);
solo.typeTextInWebElement(By.name("pass"), TEST_USER_PASSWORD);
solo.clickOnWebElement(By.textContent("Log In"));
solo.sleep(5000);
solo.clickOnWebElement(By.textContent("OK"));
Log.d("geopost Systemtest", "Logged in as test user");
}
}
assertNotNull(ParseUser.getCurrentUser());
getActivity().finish();
ParseUser.logOut();
}
@After
public void tearDown() {
ParseUser.logOut();
}
}