diff options
Diffstat (limited to 'tests/src/cgeo/geocaching/GeocacheTest.java')
| -rw-r--r-- | tests/src/cgeo/geocaching/GeocacheTest.java | 84 |
1 files changed, 62 insertions, 22 deletions
diff --git a/tests/src/cgeo/geocaching/GeocacheTest.java b/tests/src/cgeo/geocaching/GeocacheTest.java index 4c09594..6d3eec3 100644 --- a/tests/src/cgeo/geocaching/GeocacheTest.java +++ b/tests/src/cgeo/geocaching/GeocacheTest.java @@ -1,18 +1,19 @@ package cgeo.geocaching; +import cgeo.CGeoTestCase; import cgeo.geocaching.enumerations.CacheType; import cgeo.geocaching.geopoint.Geopoint; +import cgeo.geocaching.list.StoredList; -import android.os.Handler; -import android.test.AndroidTestCase; +import org.apache.commons.lang3.StringUtils; import java.util.ArrayList; import java.util.Date; import java.util.List; -public class GeocacheTest extends AndroidTestCase { +public class GeocacheTest extends CGeoTestCase { - final static private class MockedEventCache extends Geocache { + private static final class MockedEventCache extends Geocache { public MockedEventCache(final Date date) { setHidden(date); setType(CacheType.EVENT); @@ -52,31 +53,41 @@ public class GeocacheTest extends AndroidTestCase { assertEquals("GC1234", cache.getGeocode()); } - public static void testUpdateWaypointFromNote() { + public final void testUpdateWaypointFromNote() { assertWaypointsParsed("Test N51 13.888 E007 03.444", 1); } - public static void testUpdateWaypointsFromNote() { + public final void testUpdateWaypointsFromNote() { assertWaypointsParsed("Test N51 13.888 E007 03.444 Test N51 13.233 E007 03.444 Test N51 09.123 E007 03.444", 3); } - private static void assertWaypointsParsed(String note, int expectedWaypoints) { - Geocache cache = new Geocache(); - cache.setGeocode("Test" + System.nanoTime()); - cache.setWaypoints(new ArrayList<Waypoint>(), false); - for (int i = 0; i < 2; i++) { - cache.setPersonalNote(note); - cache.parseWaypointsFromNote(); - final List<Waypoint> waypoints = cache.getWaypoints(); - assertNotNull(waypoints); - assertEquals(expectedWaypoints, waypoints.size()); - final Waypoint waypoint = waypoints.get(0); - assertEquals(new Geopoint("N51 13.888 E007 03.444"), waypoint.getCoords()); - // assertEquals("Test", waypoint.getNote()); - assertEquals(cgeoapplication.getInstance().getString(R.string.cache_personal_note) + " 1", waypoint.getName()); - cache.store(StoredList.TEMPORARY_LIST_ID, null); + private void assertWaypointsParsed(final String note, final int expectedWaypoints) { + + recordMapStoreFlags(); + + try { + setMapStoreFlags(false, false); + + Geocache cache = new Geocache(); + final String geocode = "Test" + System.nanoTime(); + cache.setGeocode(geocode); + cache.setWaypoints(new ArrayList<Waypoint>(), false); + for (int i = 0; i < 2; i++) { + cache.setPersonalNote(note); + cache.parseWaypointsFromNote(); + final List<Waypoint> waypoints = cache.getWaypoints(); + assertNotNull(waypoints); + assertEquals(expectedWaypoints, waypoints.size()); + final Waypoint waypoint = waypoints.get(0); + assertEquals(new Geopoint("N51 13.888 E007 03.444"), waypoint.getCoords()); + // assertEquals("Test", waypoint.getNote()); + assertEquals(CgeoApplication.getInstance().getString(R.string.cache_personal_note) + " 1", waypoint.getName()); + cache.store(StoredList.TEMPORARY_LIST_ID, null); + } + removeCacheCompletely(geocode); + } finally { + restoreMapStoreFlags(); } - cache.drop(new Handler()); } public static void testMergeDownloadedStored() { @@ -212,4 +223,33 @@ public class GeocacheTest extends AndroidTestCase { cache.setName("GR8 01-01"); assertEquals("GR000008 000001-000001", cache.getNameForSorting()); } + + public static void testGuessEventTime() { + assertTime("text 14:20 text", 14, 20); + assertNoTime("text 30:40 text"); + assertNoTime("text 14:90 text"); + final String timeHours = CgeoApplication.getInstance().getString(R.string.cache_time_full_hours); + assertTime("text 16 " + timeHours, 16, 0); + assertTime("text 16 " + StringUtils.lowerCase(timeHours), 16, 0); + assertTime("text 16:00 " + timeHours, 16, 0); + assertTime("text 16.00 " + timeHours, 16, 0); + assertTime("text 14:20.", 14, 20); + assertTime("<b>14:20</b>", 14, 20); + assertTime("<u><em>Uhrzeit:</em></u> 17-20 " + timeHours + "</span></strong>", 17, 00); + } + + private static void assertTime(final String description, final int hours, final int minutes) { + final Geocache cache = new Geocache(); + cache.setDescription(description); + cache.setType(CacheType.EVENT); + final int minutesAfterMidnight = hours * 60 + minutes; + assertEquals(String.valueOf(minutesAfterMidnight), cache.guessEventTimeMinutes()); + } + + private static void assertNoTime(final String description) { + final Geocache cache = new Geocache(); + cache.setDescription(description); + cache.setType(CacheType.EVENT); + assertNull(cache.guessEventTimeMinutes()); + } } |
