aboutsummaryrefslogtreecommitdiffstats
path: root/tests/src/cgeo
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2014-09-07 10:03:38 +0200
committerBananeweizen <bananeweizen@gmx.de>2014-09-07 10:03:38 +0200
commit48b96c651a1262439d9936c0b2ffc9b8feeebe5e (patch)
tree033ed3c9f879d876484e3d76134bf6828c4e04dd /tests/src/cgeo
parent2a4939fa5b95ad64522e66f807e65acdcc2ac06c (diff)
downloadcgeo-48b96c651a1262439d9936c0b2ffc9b8feeebe5e.zip
cgeo-48b96c651a1262439d9936c0b2ffc9b8feeebe5e.tar.gz
cgeo-48b96c651a1262439d9936c0b2ffc9b8feeebe5e.tar.bz2
fix #4076: first UI tests with espresso
Diffstat (limited to 'tests/src/cgeo')
-rw-r--r--tests/src/cgeo/geocaching/waypointactivity/AbstractAddWaypointActivityTest.java12
-rw-r--r--tests/src/cgeo/geocaching/waypointactivity/AbstractEditWaypointActivityTest.java28
-rw-r--r--tests/src/cgeo/geocaching/waypointactivity/AbstractWaypointActivityTest.java53
-rw-r--r--tests/src/cgeo/geocaching/waypointactivity/AddWaypointActivityTest.java34
-rw-r--r--tests/src/cgeo/geocaching/waypointactivity/AddWaypointMultiTest.java34
-rw-r--r--tests/src/cgeo/geocaching/waypointactivity/AddWaypointMysteryTest.java32
-rw-r--r--tests/src/cgeo/geocaching/waypointactivity/EditWaypointActivityTest.java29
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()))));
+ }
+
+}