package edu.washington.geopost.test;
import java.util.Collection;
import org.junit.Test;
import android.app.ActivityManager;
import android.app.Instrumentation.ActivityMonitor;
import android.test.ActivityInstrumentationTestCase2;
import android.util.Log;
import android.view.View;
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 SystemTests extends ActivityInstrumentationTestCase2<LoginActivity> {
private Solo solo;
ActivityMonitor am;
String TEST_USER = "open_zjzusdi_user@tfbnw.net";
String TEST_USER_PASSWORD = "TestUserPass";
String TEST_POST_CONTENT = "TestPost from Systemtest";
int BIG_TIMEOUT = 20000000;
public SystemTests() {
super(LoginActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
solo = new Solo(getInstrumentation(), getActivity());
am = getInstrumentation().addMonitor(MainActivity.class.getName(), null, false);
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
}
@Test
/* This test will run properly if and only if the following conditions are met
*
* There is a location provider running on the phone
*
*/
public void testUseCaseLogInAndDrop() {
solo.waitForActivity(edu.washington.geopost.LoginActivity.class);
ParseUser currentUser = ParseUser.getCurrentUser();
if ((currentUser == null) || !ParseFacebookUtils.isLinked(currentUser)) {
// Go to the map activity
solo.clickOnText("Log In");
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");
}
}
MainActivity nextActivity = (MainActivity) getInstrumentation().waitForMonitorWithTimeout(am, 5000);
assert(nextActivity != null);
solo.clickOnButton("Post");
solo.enterText(0, TEST_POST_CONTENT);
solo.clickOnButton("Post");
solo.sleep(5000);
ParseUser.logOut();
}
}