package com.fastaccess.ui.modules.login; import android.support.test.filters.LargeTest; import android.support.test.rule.ActivityTestRule; import android.support.test.runner.AndroidJUnit4; import com.fastaccess.R; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import static android.support.test.espresso.Espresso.onView; import static android.support.test.espresso.action.ViewActions.click; import static android.support.test.espresso.action.ViewActions.closeSoftKeyboard; import static android.support.test.espresso.action.ViewActions.typeText; import static android.support.test.espresso.assertion.ViewAssertions.matches; import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed; import static android.support.test.espresso.matcher.ViewMatchers.withId; import static com.fastaccess.helper.TestHelper.textInputLayoutHasError; import static org.hamcrest.core.IsNot.not; @RunWith(AndroidJUnit4.class) @LargeTest public class LoginActivityTest { @Rule public ActivityTestRule<LoginActivity> testRule = new ActivityTestRule<>(LoginActivity.class); @Test public void successLoginClickSuccessTest() { String username = "username"; String password = "password"; onView(withId(R.id.usernameEditText)).perform(typeText(username), closeSoftKeyboard()); onView(withId(R.id.passwordEditText)).perform(typeText(password), closeSoftKeyboard()); onView(withId(R.id.login)).perform(click()); onView(withId(R.id.progress)).check(matches(isDisplayed())); } @Test public void usernameErrorTest() { String password = "password"; onView(withId(R.id.passwordEditText)).perform(typeText(password), closeSoftKeyboard()); onView(withId(R.id.login)).perform(click()); onView(withId(R.id.progress)).check(matches(not(isDisplayed()))); onView(withId(R.id.username)).check(matches(textInputLayoutHasError(testRule.getActivity().getString(R.string.required_field)))); } @Test public void passwordErrorTest() { String username = "username"; onView(withId(R.id.usernameEditText)).perform(typeText(username), closeSoftKeyboard()); onView(withId(R.id.login)).perform(click()); onView(withId(R.id.progress)).check(matches(not(isDisplayed()))); onView(withId(R.id.password)).check(matches(textInputLayoutHasError(testRule.getActivity().getString(R.string.required_field)))); } }