package ph.devcon.android.test.login; import android.test.ActivityInstrumentationTestCase2; import android.test.suitebuilder.annotation.MediumTest; import java.util.List; import javax.inject.Inject; import dagger.ObjectGraph; import ph.devcon.android.DevConApplication; import ph.devcon.android.R; import ph.devcon.android.auth.AuthService; import ph.devcon.android.login.LoginActivity; import ph.devcon.android.test.base.DevConTestModule; import ph.devcon.android.test.base.Mocker; import static com.google.android.apps.common.testing.ui.espresso.Espresso.onView; import static com.google.android.apps.common.testing.ui.espresso.action.ViewActions.click; import static com.google.android.apps.common.testing.ui.espresso.action.ViewActions.scrollTo; import static com.google.android.apps.common.testing.ui.espresso.action.ViewActions.typeText; import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.withId; /** * Created by lope on 11/16/14. */ @MediumTest public class LoginActivityTest extends ActivityInstrumentationTestCase2<LoginActivity> { DevConApplication mApplication; @Inject AuthService authService; public LoginActivityTest() { super(LoginActivity.class); } @Override protected void setUp() throws Exception { super.setUp(); mApplication = DevConApplication.getInstance(); mApplication.setGraph(ObjectGraph.create(getModules().toArray())); DevConApplication.injectMembers(this); authService.logout(); getActivity(); } @MediumTest public void testLoginValidUser() { onView(withId(R.id.edt_email_address)) .perform(typeText(Mocker.USERNAME_VALID)); onView(withId(R.id.edt_password)) .perform(typeText(Mocker.PASSWORD_VALID)); onView(withId(R.id.btn_login)).perform(scrollTo(), click()); } protected List<Object> getModules() { List<Object> appModules = mApplication.getModules(); appModules.add(new DevConTestModule()); return appModules; } }