diff options
author | Bananeweizen <bananeweizen@gmx.de> | 2014-09-07 10:03:38 +0200 |
---|---|---|
committer | Bananeweizen <bananeweizen@gmx.de> | 2014-09-07 10:03:38 +0200 |
commit | 48b96c651a1262439d9936c0b2ffc9b8feeebe5e (patch) | |
tree | 033ed3c9f879d876484e3d76134bf6828c4e04dd /tests/src/cgeo | |
parent | 2a4939fa5b95ad64522e66f807e65acdcc2ac06c (diff) | |
download | cgeo-48b96c651a1262439d9936c0b2ffc9b8feeebe5e.zip cgeo-48b96c651a1262439d9936c0b2ffc9b8feeebe5e.tar.gz cgeo-48b96c651a1262439d9936c0b2ffc9b8feeebe5e.tar.bz2 |
fix #4076: first UI tests with espresso
Diffstat (limited to 'tests/src/cgeo')
7 files changed, 222 insertions, 0 deletions
diff --git a/tests/src/cgeo/geocaching/waypointactivity/AbstractAddWaypointActivityTest.java b/tests/src/cgeo/geocaching/waypointactivity/AbstractAddWaypointActivityTest.java new file mode 100644 index 0000000..34968a3 --- /dev/null +++ b/tests/src/cgeo/geocaching/waypointactivity/AbstractAddWaypointActivityTest.java @@ -0,0 +1,12 @@ +package cgeo.geocaching.waypointactivity; + +import cgeo.geocaching.EditWaypointActivity_; + +public abstract class AbstractAddWaypointActivityTest extends AbstractWaypointActivityTest { + @Override + protected void setUp() throws Exception { + super.setUp(); + setActivityIntent(new EditWaypointActivity_.IntentBuilder_(getInstrumentation().getContext()).geocode(getCache().getGeocode()).wpCount(1).get()); + getActivity(); + } +} diff --git a/tests/src/cgeo/geocaching/waypointactivity/AbstractEditWaypointActivityTest.java b/tests/src/cgeo/geocaching/waypointactivity/AbstractEditWaypointActivityTest.java new file mode 100644 index 0000000..e5cdf69 --- /dev/null +++ b/tests/src/cgeo/geocaching/waypointactivity/AbstractEditWaypointActivityTest.java @@ -0,0 +1,28 @@ +package cgeo.geocaching.waypointactivity; + +import cgeo.geocaching.EditWaypointActivity_; +import cgeo.geocaching.Waypoint; +import cgeo.geocaching.enumerations.WaypointType; + +public abstract class AbstractEditWaypointActivityTest extends AbstractWaypointActivityTest { + private Waypoint waypoint; + + @Override + protected void setUp() throws Exception { + super.setUp(); + createWaypoint(); + getCache().addOrChangeWaypoint(waypoint, true); + final int waypointId = getCache().getWaypoints().get(0).getId(); + setActivityIntent(new EditWaypointActivity_.IntentBuilder_(getInstrumentation().getContext()).geocode(getCache().getGeocode()).waypointId(waypointId).get()); + getActivity(); + } + + private void createWaypoint() { + waypoint = new Waypoint("Test waypoint", WaypointType.PUZZLE, true); + waypoint.setNote("Test note"); + } + + protected final Waypoint getWaypoint() { + return waypoint; + } +} diff --git a/tests/src/cgeo/geocaching/waypointactivity/AbstractWaypointActivityTest.java b/tests/src/cgeo/geocaching/waypointactivity/AbstractWaypointActivityTest.java new file mode 100644 index 0000000..1a5783c --- /dev/null +++ b/tests/src/cgeo/geocaching/waypointactivity/AbstractWaypointActivityTest.java @@ -0,0 +1,53 @@ +package cgeo.geocaching.waypointactivity; + +import cgeo.geocaching.DataStore; +import cgeo.geocaching.EditWaypointActivity_; +import cgeo.geocaching.Geocache; +import cgeo.geocaching.enumerations.CacheType; +import cgeo.geocaching.enumerations.LoadFlags; +import cgeo.geocaching.enumerations.LoadFlags.SaveFlag; + +import android.test.ActivityInstrumentationTestCase2; + +import java.util.Collections; + +import static org.assertj.core.api.Assertions.assertThat; + +public abstract class AbstractWaypointActivityTest extends ActivityInstrumentationTestCase2<EditWaypointActivity_> { + + private Geocache cache; + + public AbstractWaypointActivityTest() { + super(EditWaypointActivity_.class); + } + + @Override + protected void setUp() throws Exception { + super.setUp(); + cache = createTestCache(); + DataStore.saveCache(cache, Collections.singleton(SaveFlag.CACHE)); + } + + @Override + protected void tearDown() throws Exception { + removeTestCache(); + super.tearDown(); + } + + protected final Geocache getCache() { + return cache; + } + + private void removeTestCache() { + DataStore.removeCache(cache.getGeocode(), LoadFlags.REMOVE_ALL); + assertThat(DataStore.loadCache(cache.getGeocode(), LoadFlags.LOAD_CACHE_OR_DB)).isNull(); + } + + @SuppressWarnings("static-method") + protected Geocache createTestCache() { + Geocache testCache = new Geocache(); + testCache.setGeocode("TEST"); + testCache.setType(CacheType.TRADITIONAL); + return testCache; + } +} diff --git a/tests/src/cgeo/geocaching/waypointactivity/AddWaypointActivityTest.java b/tests/src/cgeo/geocaching/waypointactivity/AddWaypointActivityTest.java new file mode 100644 index 0000000..86a7684 --- /dev/null +++ b/tests/src/cgeo/geocaching/waypointactivity/AddWaypointActivityTest.java @@ -0,0 +1,34 @@ +package cgeo.geocaching.waypointactivity; + +import static com.google.android.apps.common.testing.ui.espresso.Espresso.onView; +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.isDisplayed; +import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.isNotChecked; +import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.withChild; +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 cgeo.geocaching.R; +import cgeo.geocaching.enumerations.WaypointType; + +public class AddWaypointActivityTest extends AbstractAddWaypointActivityTest { + + public static void testAddWayPointHasTypeSelection() { + onView(withId(R.id.type)).check(matches(isDisplayed())); + } + + public static void testDefaultWaypointTypeForTraditional() { + onView(withId(R.id.type)).check(matches(withChild(withText(WaypointType.WAYPOINT.getL10n())))); + onView(withId(R.id.name)).check(matches(withText(WaypointType.WAYPOINT.getL10n() + " 1"))); + } + + public static void testFieldsAreEmpty() { + onView(withId(R.id.note)).check(matches(withText(""))); + onView(withId(R.id.bearing)).check(matches(withText(""))); + onView(withId(R.id.distance)).check(matches(withText(""))); + } + + public static void testNewWaypointNotVisited() { + onView(withId(R.id.wpt_visited_checkbox)).check(matches(isNotChecked())); + } +} diff --git a/tests/src/cgeo/geocaching/waypointactivity/AddWaypointMultiTest.java b/tests/src/cgeo/geocaching/waypointactivity/AddWaypointMultiTest.java new file mode 100644 index 0000000..3a32570 --- /dev/null +++ b/tests/src/cgeo/geocaching/waypointactivity/AddWaypointMultiTest.java @@ -0,0 +1,34 @@ +package cgeo.geocaching.waypointactivity; + +import cgeo.geocaching.Geocache; +import cgeo.geocaching.R; +import cgeo.geocaching.enumerations.CacheType; +import cgeo.geocaching.enumerations.WaypointType; + +import com.google.android.apps.common.testing.ui.espresso.ViewInteraction; + +import static com.google.android.apps.common.testing.ui.espresso.Espresso.onView; + +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.isDisplayed; +import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.withChild; +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; + +public class AddWaypointMultiTest extends AbstractAddWaypointActivityTest { + + @Override + protected Geocache createTestCache() { + final Geocache cache = super.createTestCache(); + cache.setType(CacheType.MULTI); + return cache; + } + + public static void testMysteryDefaultWaypointFinal() { + final ViewInteraction waypointTypeSelector = onView(withId(R.id.type)); + waypointTypeSelector.check(matches(isDisplayed())); + waypointTypeSelector.check(matches(withChild(withText(WaypointType.STAGE.getL10n())))); + } + +} diff --git a/tests/src/cgeo/geocaching/waypointactivity/AddWaypointMysteryTest.java b/tests/src/cgeo/geocaching/waypointactivity/AddWaypointMysteryTest.java new file mode 100644 index 0000000..248f107 --- /dev/null +++ b/tests/src/cgeo/geocaching/waypointactivity/AddWaypointMysteryTest.java @@ -0,0 +1,32 @@ +package cgeo.geocaching.waypointactivity; + +import static com.google.android.apps.common.testing.ui.espresso.Espresso.onView; +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.isDisplayed; +import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.withChild; +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 cgeo.geocaching.Geocache; +import cgeo.geocaching.R; +import cgeo.geocaching.enumerations.CacheType; +import cgeo.geocaching.enumerations.WaypointType; + +import com.google.android.apps.common.testing.ui.espresso.ViewInteraction; + +public class AddWaypointMysteryTest extends AbstractAddWaypointActivityTest { + + @Override + protected Geocache createTestCache() { + final Geocache cache = super.createTestCache(); + cache.setType(CacheType.MYSTERY); + return cache; + } + + public static void testMysteryDefaultWaypointFinal() { + final ViewInteraction waypointTypeSelector = onView(withId(R.id.type)); + waypointTypeSelector.check(matches(isDisplayed())); + waypointTypeSelector.check(matches(withChild(withText(WaypointType.FINAL.getL10n())))); + } + +} diff --git a/tests/src/cgeo/geocaching/waypointactivity/EditWaypointActivityTest.java b/tests/src/cgeo/geocaching/waypointactivity/EditWaypointActivityTest.java new file mode 100644 index 0000000..eda86cc --- /dev/null +++ b/tests/src/cgeo/geocaching/waypointactivity/EditWaypointActivityTest.java @@ -0,0 +1,29 @@ +package cgeo.geocaching.waypointactivity; + +import cgeo.geocaching.R; + +import static com.google.android.apps.common.testing.ui.espresso.Espresso.onView; + +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.withChild; +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.assertj.core.api.Assertions.assertThat; + +public class EditWaypointActivityTest extends AbstractEditWaypointActivityTest { + + public void testFieldsAreNotEmpty() { + String name = getWaypoint().getName(); + assertThat(name).isNotEmpty(); + onView(withId(R.id.name)).check(matches(withText(name))); + + final String note = getWaypoint().getNote(); + assertThat(note).isNotEmpty(); + onView(withId(R.id.note)).check(matches(withText(note))); + + onView(withId(R.id.type)).check(matches(withChild(withText(getWaypoint().getWaypointType().getL10n())))); + } + +} |