package com.vgrec.espressoexamples;
import android.test.ActivityInstrumentationTestCase2;
import com.vgrec.espressoexamples.activities.EnterNameActivity;
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.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.withHint;
import static android.support.test.espresso.matcher.ViewMatchers.withId;
import static android.support.test.espresso.matcher.ViewMatchers.withText;
import static org.hamcrest.CoreMatchers.not;
/**
* @author vgrec, created on 3/17/15.
*/
public class EnterNameTest extends ActivityInstrumentationTestCase2<EnterNameActivity> {
public static final String USER_NAME = "John";
public static final String GREETING_MESSAGE = "Hello " + USER_NAME + "!";
public EnterNameTest() {
super(EnterNameActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
getActivity();
}
public void testHintDisplayed() {
onView(withId(R.id.name_edittext)).check(matches(withHint(R.string.enter_name)));
}
public void testErrorMessageDisplayed() {
// Making sure the error message is not displayed by default
onView(withId(R.id.error_text)).check(matches(not(isDisplayed())));
// Click on "Next" button
onView(withId(R.id.next_button)).perform(click());
// Now check the error message is displayed
onView(withId(R.id.error_text)).check(matches(isDisplayed()));
}
public void testGreetingMessageWithNameDisplayed() {
onView(withId(R.id.name_edittext)).perform(typeText(USER_NAME));
onView(withId(R.id.next_button)).perform(click());
onView(withId(R.id.greeting_message)).check(matches(withText(GREETING_MESSAGE)));
}
}