package com.google.android.apps.common.testing.ui.espresso.action; import static com.google.android.apps.common.testing.ui.espresso.Espresso.onData; 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.assertion.ViewAssertions.matches; import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.hasSibling; import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.withId; import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.withText; import static org.hamcrest.Matchers.allOf; import static org.hamcrest.Matchers.hasEntry; import static org.hamcrest.Matchers.instanceOf; import static org.hamcrest.Matchers.is; import com.google.android.apps.common.testing.ui.testapp.LongListActivity; import com.google.android.apps.common.testing.ui.testapp.R; import android.test.ActivityInstrumentationTestCase2; import android.test.suitebuilder.annotation.LargeTest; import java.util.Map; /** * Integration tests for operating on data displayed in an adapter. */ @LargeTest public class AdapterDataIntegrationTest extends ActivityInstrumentationTestCase2<LongListActivity> { @SuppressWarnings("deprecation") public AdapterDataIntegrationTest() { // Supporting froyo. super("com.google.android.apps.common.testing.ui.testapp", LongListActivity.class); } @Override public void setUp() throws Exception { super.setUp(); getActivity(); } @SuppressWarnings("unchecked") public void testClickAroundList() { onData(allOf(is(instanceOf(Map.class)), hasEntry(is(LongListActivity.STR), is("item: 99")))) .perform(click()); onView(withId(R.id.selection_row_value)) .check(matches(withText("99"))); onData(allOf(is(instanceOf(Map.class)), hasEntry(is(LongListActivity.STR), is("item: 1")))) .perform(click()); onView(withId(R.id.selection_row_value)) .check(matches(withText("1"))); onData(allOf(is(instanceOf(Map.class)))) .atPosition(20) .perform(click()); onView(withId(R.id.selection_row_value)) .check(matches(withText("20"))); // lets operate on a specific child of a row... onData(allOf(is(instanceOf(Map.class)), hasEntry(is(LongListActivity.STR), is("item: 50")))) .onChildView(withId(R.id.item_size)) .perform(click()) .check(matches(withText(String.valueOf("item: 50".length())))); onView(withId(R.id.selection_row_value)) .check(matches(withText("50"))); } @SuppressWarnings("unchecked") public void testSelectItemWithSibling() { onView(allOf(withText("7"), hasSibling(withText("item: 0")))) .perform(click()); onView(withId(R.id.selection_row_value)) .check(matches(withText("0"))); } }