diff options
Diffstat (limited to 'tests/src')
23 files changed, 167 insertions, 145 deletions
diff --git a/tests/src/cgeo/geocaching/CgeoApplicationTest.java b/tests/src/cgeo/geocaching/CgeoApplicationTest.java index b9c03a4..1dcd976 100644 --- a/tests/src/cgeo/geocaching/CgeoApplicationTest.java +++ b/tests/src/cgeo/geocaching/CgeoApplicationTest.java @@ -114,7 +114,7 @@ public class CgeoApplicationTest extends CGeoTestCase { public static Geocache testSearchByGeocode(final String geocode) { final SearchResult search = Geocache.searchByGeocode(geocode, null, 0, true, null); assertNotNull(search); - if (Settings.isPremiumMember() || search.getError() == null) { + if (Settings.isGCPremiumMember() || search.getError() == null) { assertEquals(1, search.getGeocodes().size()); assertTrue(search.getGeocodes().contains(geocode)); return DataStore.loadCache(geocode, LoadFlags.LOAD_CACHE_OR_DB); @@ -140,14 +140,14 @@ public class CgeoApplicationTest extends CGeoTestCase { */ private static void withMockedLoginDo(final Runnable runnable) { final ImmutablePair<String, String> login = Settings.getGcCredentials(); - final String memberStatus = Settings.getMemberStatus(); + final String memberStatus = Settings.getGCMemberStatus(); try { runnable.run(); } finally { // restore user and password TestSettings.setLogin(login.left, login.right); - Settings.setMemberStatus(memberStatus); + Settings.setGCMemberStatus(memberStatus); GCLogin.getInstance().login(); } } @@ -171,6 +171,8 @@ public class CgeoApplicationTest extends CGeoTestCase { assertTrue(search.getGeocodes().contains(cache.getGeocode())); final Geocache searchedCache = search.getFirstCacheFromResult(LoadFlags.LOAD_CACHE_OR_DB); // coords must be null if the user is not logged in + assertNotNull(searchedCache); + assert (searchedCache != null); // eclipse bug assertNull(searchedCache.getCoords()); // premium cache. Not visible to guests @@ -237,10 +239,10 @@ public class CgeoApplicationTest extends CGeoTestCase { @Override public void run() { - final SearchResult search = GCParser.searchByCoords(new Geopoint("N 52° 24.972 E 009° 35.647"), CacheType.MYSTERY, false, null); + final SearchResult search = GCParser.searchByCoords(new Geopoint("N 50° 06.654 E 008° 39.777"), CacheType.MYSTERY, false, null); assertNotNull(search); assertTrue(20 <= search.getGeocodes().size()); - assertTrue(search.getGeocodes().contains("GC1RMM2")); + assertTrue(search.getGeocodes().contains("GC1HBMY")); } }); } @@ -305,25 +307,25 @@ public class CgeoApplicationTest extends CGeoTestCase { // check coords for DETAILED Settings.setLiveMapStrategy(Strategy.DETAILED); - SearchResult search = ConnectorFactory.searchByViewport(viewport, tokens); + SearchResult search = ConnectorFactory.searchByViewport(viewport, tokens).toBlockingObservable().single(); assertNotNull(search); assertTrue(search.getGeocodes().contains(mockedCache.getGeocode())); Geocache parsedCache = DataStore.loadCache(mockedCache.getGeocode(), LoadFlags.LOAD_CACHE_OR_DB); - assertEquals(Settings.isPremiumMember(), mockedCache.getCoords().equals(parsedCache.getCoords())); - assertEquals(Settings.isPremiumMember(), parsedCache.isReliableLatLon()); + assertEquals(Settings.isGCPremiumMember(), mockedCache.getCoords().equals(parsedCache.getCoords())); + assertEquals(Settings.isGCPremiumMember(), parsedCache.isReliableLatLon()); // check update after switch strategy to FAST Settings.setLiveMapStrategy(Strategy.FAST); - Tile.Cache.removeFromTileCache(mockedCache); + Tile.cache.removeFromTileCache(mockedCache); - search = ConnectorFactory.searchByViewport(viewport, tokens); + search = ConnectorFactory.searchByViewport(viewport, tokens).toBlockingObservable().single(); assertNotNull(search); assertTrue(search.getGeocodes().contains(mockedCache.getGeocode())); parsedCache = DataStore.loadCache(mockedCache.getGeocode(), LoadFlags.LOAD_CACHE_OR_DB); - assertEquals(Settings.isPremiumMember(), mockedCache.getCoords().equals(parsedCache.getCoords())); - assertEquals(Settings.isPremiumMember(), parsedCache.isReliableLatLon()); + assertEquals(Settings.isGCPremiumMember(), mockedCache.getCoords().equals(parsedCache.getCoords())); + assertEquals(Settings.isGCPremiumMember(), parsedCache.isReliableLatLon()); } finally { // restore user settings @@ -352,11 +354,11 @@ public class CgeoApplicationTest extends CGeoTestCase { // non premium cache MockedCache cache = new GC2CJPF(); deleteCacheFromDBAndLogout(cache.getGeocode()); - Tile.Cache.removeFromTileCache(cache); + Tile.cache.removeFromTileCache(cache); Settings.setCacheType(CacheType.ALL); Viewport viewport = new Viewport(cache, 0.003, 0.003); - SearchResult search = ConnectorFactory.searchByViewport(viewport, INVALID_TOKEN); + SearchResult search = ConnectorFactory.searchByViewport(viewport, INVALID_TOKEN).toBlockingObservable().single(); assertNotNull(search); assertTrue(search.getGeocodes().contains(cache.getGeocode())); @@ -364,7 +366,7 @@ public class CgeoApplicationTest extends CGeoTestCase { final Geocache cacheFromViewport = DataStore.loadCache(cache.getGeocode(), LoadFlags.LOAD_CACHE_OR_DB); Log.d("cgeoApplicationTest.testSearchByViewportNotLoggedIn: Coords expected = " + cache.getCoords()); Log.d("cgeoApplicationTest.testSearchByViewportNotLoggedIn: Coords actual = " + cacheFromViewport.getCoords()); - assertFalse(cache.getCoords().isEqualTo(cacheFromViewport.getCoords(), 1e-3)); + assertFalse(cache.getCoords().distanceTo(cacheFromViewport.getCoords()) <= 1e-3); // depending on the chosen strategy the coords can be reliable or not assertEquals(testStrategy == Strategy.DETAILED, cacheFromViewport.isReliableLatLon()); @@ -373,11 +375,11 @@ public class CgeoApplicationTest extends CGeoTestCase { deleteCacheFromDBAndLogout(cache.getGeocode()); viewport = new Viewport(cache, 0.003, 0.003); - search = ConnectorFactory.searchByViewport(viewport, INVALID_TOKEN); + search = ConnectorFactory.searchByViewport(viewport, INVALID_TOKEN).toBlockingObservable().single(); assertNotNull(search); - // depending on the chosen strategy the cache is part of the search or not - assertEquals(testStrategy == Strategy.DETAILED, search.getGeocodes().contains(cache.getGeocode())); + // In the meantime, premium-member caches are also shown on map when not logged in + assertTrue(search.getGeocodes().contains(cache.getGeocode())); } finally { Settings.setLiveMapStrategy(strategy); @@ -423,7 +425,7 @@ public class CgeoApplicationTest extends CGeoTestCase { GCLogin.getInstance().logout(); // Modify login data to avoid an automatic login again TestSettings.setLogin("c:geo", "c:geo"); - Settings.setMemberStatus("Basic member"); + Settings.setGCMemberStatus("Basic member"); } } diff --git a/tests/src/cgeo/geocaching/GeocacheTest.java b/tests/src/cgeo/geocaching/GeocacheTest.java index cdca9b7..b49048b 100644 --- a/tests/src/cgeo/geocaching/GeocacheTest.java +++ b/tests/src/cgeo/geocaching/GeocacheTest.java @@ -249,6 +249,14 @@ public class GeocacheTest extends CGeoTestCase { assertTime("from 11 to 13 " + timeHours, 11, 00); } + public static void testGuessEventTimeShortDescription() { + Geocache cache = new Geocache(); + cache.setType(CacheType.EVENT); + cache.setDescription(StringUtils.EMPTY); + cache.setShortDescription("text 14:20 text"); + assertEquals(String.valueOf(14 * 60 + 20), cache.guessEventTimeMinutes()); + } + private static void assertTime(final String description, final int hours, final int minutes) { final Geocache cache = new Geocache(); cache.setDescription(description); diff --git a/tests/src/cgeo/geocaching/SettingsTest.java b/tests/src/cgeo/geocaching/SettingsTest.java index c58db08..90a0209 100644 --- a/tests/src/cgeo/geocaching/SettingsTest.java +++ b/tests/src/cgeo/geocaching/SettingsTest.java @@ -27,7 +27,7 @@ public class SettingsTest extends ActivityInstrumentationTestCase2<MainActivity> public static void testSettings() { // unfortunately, several other tests depend on being a premium member and will fail if run by a basic member - assertEquals(GCConstants.MEMBER_STATUS_PM, Settings.getMemberStatus()); + assertEquals(GCConstants.MEMBER_STATUS_PM, Settings.getGCMemberStatus()); } public static void testDeviceHasNormalLogin() { diff --git a/tests/src/cgeo/geocaching/compatibility/CompatibilityTest.java b/tests/src/cgeo/geocaching/compatibility/CompatibilityTest.java index cd70ffb..651bd08 100644 --- a/tests/src/cgeo/geocaching/compatibility/CompatibilityTest.java +++ b/tests/src/cgeo/geocaching/compatibility/CompatibilityTest.java @@ -11,7 +11,7 @@ public class CompatibilityTest extends ActivityInstrumentationTestCase2<MainActi private MainActivity activity; public CompatibilityTest() { - super("cgeo.geocaching", MainActivity.class); + super(MainActivity.class); } @Override diff --git a/tests/src/cgeo/geocaching/connector/ConnectorFactoryTest.java b/tests/src/cgeo/geocaching/connector/ConnectorFactoryTest.java index e41e316..725f718 100644 --- a/tests/src/cgeo/geocaching/connector/ConnectorFactoryTest.java +++ b/tests/src/cgeo/geocaching/connector/ConnectorFactoryTest.java @@ -63,8 +63,32 @@ public class ConnectorFactoryTest extends AbstractResourceInstrumentationTestCas public static void testGetGeocodeFromUrl() { assertEquals("GC34PLO", ConnectorFactory.getGeocodeFromURL("http://coord.info/GC34PLO")); + assertEquals("GC34PLO", ConnectorFactory.getGeocodeFromURL("http://www.coord.info/GC34PLO")); assertEquals("OX1234", ConnectorFactory.getGeocodeFromURL("http://www.opencaching.com/#!geocache/OX1234")); + + assertEquals("GC12ABC", GCConnector.getInstance().getGeocodeFromUrl("http://coord.info/GC12ABC")); + assertEquals("GC12ABC", GCConnector.getInstance().getGeocodeFromUrl("http://www.coord.info/GC12ABC")); + assertEquals("GC12ABC", GCConnector.getInstance().getGeocodeFromUrl("http://www.geocaching.com/geocache/GC12ABC_die-muhlen-im-schondratal-muhle-munchau")); + assertEquals("GC12ABC", GCConnector.getInstance().getGeocodeFromUrl("http://geocaching.com/geocache/GC12ABC_die-muhlen-im-schondratal-muhle-munchau")); + + // trackable URLs + assertNull(GCConnector.getInstance().getGeocodeFromUrl("http://coord.info/TB1234")); + assertNull(GCConnector.getInstance().getGeocodeFromUrl("http://www.coord.info/TB1234")); + // make sure that a mixture of different connector and geocode is recognized as invalid assertNull(ConnectorFactory.getGeocodeFromURL("http://www.opencaching.com/#!geocache/" + "GC12345")); } + + public static void testGetTrackableFromURL() throws Exception { + assertEquals("GK78FA", ConnectorFactory.getTrackableFromURL("http://www.geokrety.org/konkret.php?id=30970")); + assertEquals("GK78FA", ConnectorFactory.getTrackableFromURL("http://geokrety.org/konkret.php?id=30970")); + assertEquals("TB1234", ConnectorFactory.getTrackableFromURL("http://coord.info/TB1234")); + assertEquals("TB1234", ConnectorFactory.getTrackableFromURL("http://www.coord.info/TB1234")); + assertEquals("TB1234", ConnectorFactory.getTrackableFromURL("http://geocaching.com/track/details.aspx?tracker=TB1234")); + assertEquals("TB1234", ConnectorFactory.getTrackableFromURL("http://www.geocaching.com/track/details.aspx?tracker=TB1234")); + + // cache URLs + assertNull(ConnectorFactory.getTrackableFromURL("http://coord.info/GC1234")); + assertNull(ConnectorFactory.getTrackableFromURL("http://www.coord.info/GC1234")); + } } diff --git a/tests/src/cgeo/geocaching/connector/gc/GCConnectorTest.java b/tests/src/cgeo/geocaching/connector/gc/GCConnectorTest.java index a5b9a44..47c3f6f 100644 --- a/tests/src/cgeo/geocaching/connector/gc/GCConnectorTest.java +++ b/tests/src/cgeo/geocaching/connector/gc/GCConnectorTest.java @@ -26,7 +26,7 @@ public class GCConnectorTest extends AbstractResourceInstrumentationTestCase { { final Viewport viewport = new Viewport(new Geopoint("N 52° 25.369 E 9° 35.499"), new Geopoint("N 52° 25.600 E 9° 36.200")); - final SearchResult searchResult = ConnectorFactory.searchByViewport(viewport, tokens); + final SearchResult searchResult = ConnectorFactory.searchByViewport(viewport, tokens).toBlockingObservable().single(); assertNotNull(searchResult); assertFalse(searchResult.isEmpty()); assertTrue(searchResult.getGeocodes().contains("GC4ER5H")); @@ -35,7 +35,7 @@ public class GCConnectorTest extends AbstractResourceInstrumentationTestCase { { final Viewport viewport = new Viewport(new Geopoint("N 52° 24.000 E 9° 34.500"), new Geopoint("N 52° 26.000 E 9° 38.500")); - final SearchResult searchResult = ConnectorFactory.searchByViewport(viewport, tokens); + final SearchResult searchResult = ConnectorFactory.searchByViewport(viewport, tokens).toBlockingObservable().single(); assertNotNull(searchResult); assertTrue(searchResult.getGeocodes().contains("GC4ER5H")); } @@ -88,5 +88,11 @@ public class GCConnectorTest extends AbstractResourceInstrumentationTestCase { public static void testGetGeocodeFromUrl() { assertNull(GCConnector.getInstance().getGeocodeFromUrl("some string")); assertEquals("GC12ABC", GCConnector.getInstance().getGeocodeFromUrl("http://coord.info/GC12ABC")); + assertEquals("GC12ABC", GCConnector.getInstance().getGeocodeFromUrl("http://www.coord.info/GC12ABC")); + assertEquals("GC12ABC", GCConnector.getInstance().getGeocodeFromUrl("http://www.geocaching.com/geocache/GC12ABC_die-muhlen-im-schondratal-muhle-munchau")); + assertEquals("GC12ABC", GCConnector.getInstance().getGeocodeFromUrl("http://geocaching.com/geocache/GC12ABC_die-muhlen-im-schondratal-muhle-munchau")); + + assertNull(GCConnector.getInstance().getGeocodeFromUrl("http://coord.info/TB1234")); + assertNull(GCConnector.getInstance().getGeocodeFromUrl("http://www.coord.info/TB1234")); } } diff --git a/tests/src/cgeo/geocaching/connector/gc/GCParserTest.java b/tests/src/cgeo/geocaching/connector/gc/GCParserTest.java index 43b6d01..e6fed94 100644 --- a/tests/src/cgeo/geocaching/connector/gc/GCParserTest.java +++ b/tests/src/cgeo/geocaching/connector/gc/GCParserTest.java @@ -21,7 +21,6 @@ import cgeo.test.Compare; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; -import android.os.Handler; import android.test.suitebuilder.annotation.MediumTest; import java.util.ArrayList; @@ -56,6 +55,8 @@ public class GCParserTest extends AbstractResourceInstrumentationTestCase { assertNotNull(result); assertEquals(1, result.getCount()); final Geocache cache = result.getFirstCacheFromResult(LoadFlags.LOAD_CACHE_OR_DB); + assertNotNull(cache); + assert (cache != null); // eclipse bug assertEquals(cacheName, cache.getName()); } @@ -155,16 +156,20 @@ public class GCParserTest extends AbstractResourceInstrumentationTestCase { cache.setGeocode("GC2ZN4G"); // upload coordinates GCParser.editModifiedCoordinates(cache, new Geopoint("N51 21.544", "E07 02.566")); - cache.drop(new Handler()); + cache.dropSynchronous(); final String page = GCParser.requestHtmlPage(cache.getGeocode(), null, "n", "0"); final Geocache cache2 = GCParser.parseCacheFromText(page, null).getFirstCacheFromResult(LoadFlags.LOAD_CACHE_ONLY); + assertNotNull(cache2); + assert (cache2 != null); // eclipse bug assertTrue(cache2.hasUserModifiedCoords()); assertEquals(new Geopoint("N51 21.544", "E07 02.566"), cache2.getCoords()); // delete coordinates GCParser.deleteModifiedCoordinates(cache2); - cache2.drop(new Handler()); + cache2.dropSynchronous(); final String page2 = GCParser.requestHtmlPage(cache.getGeocode(), null, "n", "0"); final Geocache cache3 = GCParser.parseCacheFromText(page2, null).getFirstCacheFromResult(LoadFlags.LOAD_CACHE_ONLY); + assertNotNull(cache3); + assert (cache3 != null); // eclipse bug assertFalse(cache3.hasUserModifiedCoords()); } @@ -172,9 +177,10 @@ public class GCParserTest extends AbstractResourceInstrumentationTestCase { cache.setPersonalNote(note); cache.setWaypoints(new ArrayList<Waypoint>(), false); cache.parseWaypointsFromNote(); - assertEquals(expected.length, cache.getWaypoints().size()); + final List<Waypoint> waypoints = cache.getWaypoints(); + assertEquals(expected.length, waypoints.size()); for (int i = 0; i < expected.length; i++) { - assertTrue(expected[i].equals(cache.getWaypoint(i).getCoords())); + assertTrue(expected[i].equals(waypoints.get(i).getCoords())); } } diff --git a/tests/src/cgeo/geocaching/connector/oc/OkapiClientTest.java b/tests/src/cgeo/geocaching/connector/oc/OkapiClientTest.java index aabf1ec..d98e33a 100644 --- a/tests/src/cgeo/geocaching/connector/oc/OkapiClientTest.java +++ b/tests/src/cgeo/geocaching/connector/oc/OkapiClientTest.java @@ -40,7 +40,7 @@ public class OkapiClientTest extends CGeoTestCase { assertEquals(3, cache.getWaypoints().size()); // load again - cache.refresh(cache.getListId(), null); + cache.refreshSynchronous(cache.getListId(), null); assertEquals(3, cache.getWaypoints().size()); } diff --git a/tests/src/cgeo/geocaching/connector/trackable/GeokretyConnectorTest.java b/tests/src/cgeo/geocaching/connector/trackable/GeokretyConnectorTest.java index f08fb6b..d3633cb 100644 --- a/tests/src/cgeo/geocaching/connector/trackable/GeokretyConnectorTest.java +++ b/tests/src/cgeo/geocaching/connector/trackable/GeokretyConnectorTest.java @@ -11,4 +11,17 @@ public class GeokretyConnectorTest extends TestCase { assertFalse(new GeokretyConnector().canHandleTrackable("UNKNOWN")); } + public static void testGetTrackableCodeFromUrl() throws Exception { + assertEquals("GK78FA", new GeokretyConnector().getTrackableCodeFromUrl("http://www.geokrety.org/konkret.php?id=30970")); + assertEquals("GK78FA", new GeokretyConnector().getTrackableCodeFromUrl("http://geokrety.org/konkret.php?id=30970")); + } + + public static void testGeocode() throws Exception { + assertEquals("GK97C1", GeokretyConnector.geocode(38849)); + } + + public static void testGetId() throws Exception { + assertEquals(38849, GeokretyConnector.getId("GK97C1")); + } + } diff --git a/tests/src/cgeo/geocaching/connector/trackable/TravelBugConnectorTest.java b/tests/src/cgeo/geocaching/connector/trackable/TravelBugConnectorTest.java index ef2821d..7e85b71 100644 --- a/tests/src/cgeo/geocaching/connector/trackable/TravelBugConnectorTest.java +++ b/tests/src/cgeo/geocaching/connector/trackable/TravelBugConnectorTest.java @@ -38,4 +38,15 @@ public class TravelBugConnectorTest extends TestCase { private static TravelBugConnector getConnector() { return TravelBugConnector.getInstance(); } + + public static void testGetTrackableCodeFromUrl() throws Exception { + assertEquals("TB1234", TravelBugConnector.getInstance().getTrackableCodeFromUrl("http://coord.info/TB1234")); + assertEquals("TB1234", TravelBugConnector.getInstance().getTrackableCodeFromUrl("http://www.coord.info/TB1234")); + assertEquals("TB1234", TravelBugConnector.getInstance().getTrackableCodeFromUrl("http://geocaching.com/track/details.aspx?tracker=TB1234")); + assertEquals("TB1234", TravelBugConnector.getInstance().getTrackableCodeFromUrl("http://www.geocaching.com/track/details.aspx?tracker=TB1234")); + + // do not match coord.info URLs of caches + assertNull(TravelBugConnector.getInstance().getTrackableCodeFromUrl("http://coord.info/GC1234")); + assertNull(TravelBugConnector.getInstance().getTrackableCodeFromUrl("http://www.coord.info/GC1234")); + } } diff --git a/tests/src/cgeo/geocaching/enumerations/CacheAttributeTest.java b/tests/src/cgeo/geocaching/enumerations/CacheAttributeTest.java index 54db279..d126c0b 100644 --- a/tests/src/cgeo/geocaching/enumerations/CacheAttributeTest.java +++ b/tests/src/cgeo/geocaching/enumerations/CacheAttributeTest.java @@ -25,7 +25,7 @@ public class CacheAttributeTest extends AndroidTestCase { public static void testGetL10n() { final CacheAttribute attribute = CacheAttribute.HIKING; - // This test is language dependend. It does not make sense to test it + // This test is language dependent. It does not make sense to test it // with every attribute. We just want to know if getL10n works // correctly assertFalse("_yes and _no must not have the same translation", @@ -37,7 +37,6 @@ public class CacheAttributeTest extends AndroidTestCase { assertTrue("Test cannot be run with this attribute", attribute.gcid >= 0); assertTrue("Test cannot be run with this attribute", attribute.ocacode >= 0); assertSame(CacheAttribute.getByRawName(attribute.rawName), attribute); - assertSame(CacheAttribute.getByGcId(attribute.gcid), attribute); assertSame(CacheAttribute.getByOcACode(attribute.ocacode), attribute); } diff --git a/tests/src/cgeo/geocaching/enumerations/CacheSizeTest.java b/tests/src/cgeo/geocaching/enumerations/CacheSizeTest.java index 2f11dfc..26a1953 100644 --- a/tests/src/cgeo/geocaching/enumerations/CacheSizeTest.java +++ b/tests/src/cgeo/geocaching/enumerations/CacheSizeTest.java @@ -30,8 +30,6 @@ public class CacheSizeTest extends AndroidTestCase { public static void testGetByIdNumeric() { assertEquals(CacheSize.REGULAR, CacheSize.getById("3")); - assertEquals(CacheSize.UNKNOWN, CacheSize.getById("0")); - assertEquals(CacheSize.UNKNOWN, CacheSize.getById("9")); assertEquals(CacheSize.UNKNOWN, CacheSize.getById("-1")); } } diff --git a/tests/src/cgeo/geocaching/enumerations/LogTypeTest.java b/tests/src/cgeo/geocaching/enumerations/LogTypeTest.java index 81ca33b..47879a0 100644 --- a/tests/src/cgeo/geocaching/enumerations/LogTypeTest.java +++ b/tests/src/cgeo/geocaching/enumerations/LogTypeTest.java @@ -17,8 +17,7 @@ public class LogTypeTest extends AndroidTestCase { } public static void testGetByType() { - assertEquals(LogType.UNKNOWN, LogType.getByIconName("")); - assertEquals(LogType.UNKNOWN, LogType.getByIconName(null)); + assertEquals(LogType.UNKNOWN, LogType.getByType("obviously unknown type")); assertEquals(LogType.GRABBED_IT, LogType.getByType("grabbed it")); assertEquals(LogType.GRABBED_IT, LogType.getByType(" gRAbbed IT ")); } diff --git a/tests/src/cgeo/geocaching/enumerations/LogTypeTrackableTest.java b/tests/src/cgeo/geocaching/enumerations/LogTypeTrackableTest.java index 667eefb..d6b7d33 100644 --- a/tests/src/cgeo/geocaching/enumerations/LogTypeTrackableTest.java +++ b/tests/src/cgeo/geocaching/enumerations/LogTypeTrackableTest.java @@ -1,11 +1,15 @@ package cgeo.geocaching.enumerations; +import org.apache.commons.lang3.StringUtils; + import android.test.AndroidTestCase; public class LogTypeTrackableTest extends AndroidTestCase { public static void testFindById() { - assertEquals(LogTypeTrackable.DO_NOTHING, LogTypeTrackable.findById(12345)); + for (LogTypeTrackable logTypeTrackable : LogTypeTrackable.values()) { + assertTrue(StringUtils.isNotEmpty(logTypeTrackable.getLabel())); + } } } diff --git a/tests/src/cgeo/geocaching/export/ExportTest.java b/tests/src/cgeo/geocaching/export/ExportTest.java index b8f1ffd..b03c9bb 100644 --- a/tests/src/cgeo/geocaching/export/ExportTest.java +++ b/tests/src/cgeo/geocaching/export/ExportTest.java @@ -20,9 +20,9 @@ public class ExportTest extends CGeoTestCase { final Geocache cache = new Geocache(); cache.setGeocode("GCX1234"); final LogEntry log = new LogEntry(1353244820000L, LogType.FOUND_IT, "Hidden in a tree"); - final StringBuilder logStr = new StringBuilder(); - FieldnoteExport.appendFieldNote(logStr, cache, log); - assertEquals("Non matching export " + logStr.toString(), "GCX1234,2012-11-18T13:20:20Z,Found it,\"Hidden in a tree\"\n", logStr.toString()); + FieldNotes fieldNotes = new FieldNotes(); + fieldNotes.add(cache, log); + assertEquals("Non matching export " + fieldNotes.getContent(), "GCX1234,2012-11-18T13:20:20Z,Found it,\"Hidden in a tree\"\n", fieldNotes.getContent()); } public static void testGpxExportSmilies() throws InterruptedException, ExecutionException { diff --git a/tests/src/cgeo/geocaching/files/GPXParserTest.java b/tests/src/cgeo/geocaching/files/GPXParserTest.java index dcaad22..9297819 100644 --- a/tests/src/cgeo/geocaching/files/GPXParserTest.java +++ b/tests/src/cgeo/geocaching/files/GPXParserTest.java @@ -325,4 +325,27 @@ public class GPXParserTest extends AbstractResourceInstrumentationTestCase { assertEquals("Wasserleitung", cache.getHint()); } + private Geocache getFirstCache(int gpxResourceId) throws IOException, ParserException { + final List<Geocache> caches = readGPX10(gpxResourceId); + assertNotNull(caches); + assertEquals(1, caches.size()); + final Geocache cache = caches.get(0); + return cache; + } + + public void testGsakFavPoints() throws IOException, ParserException { + final Geocache cache = getFirstCache(R.raw.gc3t1xg_gsak); + assertEquals(258, cache.getFavoritePoints()); + } + + public void testGsakPersonalNote() throws IOException, ParserException { + final Geocache cache = getFirstCache(R.raw.gc3t1xg_gsak); + assertEquals("Personal Note Test", cache.getPersonalNote()); + } + + public void testGsakPremium() throws IOException, ParserException { + final Geocache cache = getFirstCache(R.raw.gc3t1xg_gsak); + assertTrue(cache.isPremiumMembersOnly()); + } + } diff --git a/tests/src/cgeo/geocaching/geopoint/GeoPointParserTest.java b/tests/src/cgeo/geocaching/geopoint/GeoPointParserTest.java index c471dfa..1a24609 100644 --- a/tests/src/cgeo/geocaching/geopoint/GeoPointParserTest.java +++ b/tests/src/cgeo/geocaching/geopoint/GeoPointParserTest.java @@ -19,7 +19,13 @@ public class GeoPointParserTest extends AndroidTestCase { public static void testFullCoordinates() { final Geopoint goal = new Geopoint(refLatitude, refLongitude); - assertTrue(goal.isEqualTo(GeopointParser.parse("N 49° 56.031 | E 8° 38.564"), 1e-6)); + assertEquals(goal, GeopointParser.parse("N 49° 56.031 | E 8° 38.564"), 1e-6); + } + + private static void assertEquals(final Geopoint expected, Geopoint actual, double tolerance) { + assertNotNull(expected); + assertNotNull(actual); + assertTrue(expected.distanceTo(actual) <= tolerance); } public static void testCoordinateMissingPart() { @@ -48,18 +54,18 @@ public class GeoPointParserTest extends AndroidTestCase { public static void testVariousFormats() { final Geopoint goal1 = GeopointParser.parse("N 49° 43' 57\" | E 2 12' 35"); final Geopoint goal2 = GeopointParser.parse("N 49 43.95 E2°12.5833333333"); - assertTrue(goal1.isEqualTo(goal2, 1e-6)); + assertEquals(goal1, goal2, 1e-6); } public static void testParseOurOwnSeparator() { final Geopoint separator = GeopointParser.parse("N 49° 43' 57\"" + Formatter.SEPARATOR + "E 2 12' 35"); final Geopoint noSeparator = GeopointParser.parse("N 49 43.95 E2°12.5833333333"); - assertTrue(separator.isEqualTo(noSeparator, 1e-6)); + assertEquals(separator, noSeparator, 1e-6); } public static void testInSentence() { final Geopoint p1 = GeopointParser.parse("Station3: N51 21.523 / E07 02.680"); - final Geopoint p2 = GeopointParser.parse("N51 21.523", "E07 02.680"); + final Geopoint p2 = GeopointParser.parse("N51 21.523 E07 02.680"); assertNotNull(p1); assertNotNull(p2); assertEquals(p1, p2); @@ -106,6 +112,6 @@ public class GeoPointParserTest extends AndroidTestCase { } public static void testEquatorMeridian() { - assertEquals(new Geopoint(0, 0), GeopointParser.parse("00° 00.000 00° 00.000")); + assertEquals(Geopoint.ZERO, GeopointParser.parse("00° 00.000 00° 00.000")); } } diff --git a/tests/src/cgeo/geocaching/geopoint/ViewportTest.java b/tests/src/cgeo/geocaching/geopoint/ViewportTest.java index 60766b4..11f78ad 100644 --- a/tests/src/cgeo/geocaching/geopoint/ViewportTest.java +++ b/tests/src/cgeo/geocaching/geopoint/ViewportTest.java @@ -2,6 +2,8 @@ package cgeo.geocaching.geopoint; import cgeo.geocaching.ICoordinates; +import org.eclipse.jdt.annotation.NonNull; + import android.test.AndroidTestCase; import java.util.Collections; @@ -11,7 +13,8 @@ import java.util.Set; public class ViewportTest extends AndroidTestCase { - final private static Viewport vpRef = new Viewport(new Geopoint(-1.0, -2.0), new Geopoint(3.0, 4.0)); + final private static @NonNull + Viewport vpRef = new Viewport(new Geopoint(-1.0, -2.0), new Geopoint(3.0, 4.0)); public static void assertBounds(final Viewport vp) { assertEquals(new Geopoint(1.0, 1.0), vp.center); @@ -49,7 +52,7 @@ public class ViewportTest extends AndroidTestCase { public static void testInViewport() { assertFalse(vpRef.contains(new Geopoint(-2.0, -2.0))); assertFalse(vpRef.contains(new Geopoint(4.0, 4.0))); - assertTrue(vpRef.contains(new Geopoint(0.0, 0.0))); + assertTrue(vpRef.contains(Geopoint.ZERO)); assertTrue(vpRef.contains(new Geopoint(-1.0, -2.0))); assertTrue(vpRef.contains(new Geopoint(3.0, 4.0))); } @@ -86,16 +89,6 @@ public class ViewportTest extends AndroidTestCase { assertFalse(vpRef.includes(vpRef.resize(2.0))); } - public static void testExpands() { - assertEquals(vpRef, vpRef.expand(new Geopoint(0, 0))); - final Viewport vp1 = vpRef.expand(new Geopoint(-4.0, 0.0)); - assertEquals(new Geopoint(-4.0, -2.0), vp1.bottomLeft); - assertEquals(new Geopoint(3.0, 4.0), vp1.topRight); - final Viewport vp2 = vpRef.expand(new Geopoint(-10.0, 10.0)); - assertEquals(new Geopoint(-10.0, -2.0), vp2.bottomLeft); - assertEquals(new Geopoint(3.0, 10.0), vp2.topRight); - } - public static void testContaining() { assertNull(Viewport.containing(Collections.singleton((ICoordinates) null))); final Set<Geopoint> points = new HashSet<Geopoint>(); diff --git a/tests/src/cgeo/geocaching/network/OAuthTest.java b/tests/src/cgeo/geocaching/network/OAuthTest.java index fa0104f..6888cec 100644 --- a/tests/src/cgeo/geocaching/network/OAuthTest.java +++ b/tests/src/cgeo/geocaching/network/OAuthTest.java @@ -1,5 +1,7 @@ package cgeo.geocaching.network; +import org.eclipse.jdt.annotation.NonNull; + import java.util.ArrayList; import java.util.List; @@ -26,7 +28,8 @@ public class OAuthTest extends TestCase { public static void testUnreservedCharactersMustNotBeEncoded() { for (Character c : UNRESERVED) { - final String charAsString = String.valueOf(c); + final @NonNull + String charAsString = String.valueOf(c); assertEquals("wrong OAuth encoding for " + c, charAsString, OAuth.percentEncode(charAsString)); } } @@ -35,7 +38,8 @@ public class OAuthTest extends TestCase { for (int i = 32; i < 127; i++) { final Character c = (char) i; if (!UNRESERVED.contains(c)) { - final String charAsString = String.valueOf(c); + final @NonNull + String charAsString = String.valueOf(c); final String encoded = OAuth.percentEncode(charAsString); assertFalse("Character '" + charAsString + "' not encoded", charAsString.equals(encoded)); assertTrue(encoded.startsWith("%")); diff --git a/tests/src/cgeo/geocaching/sorting/DistanceComparatorTest.java b/tests/src/cgeo/geocaching/sorting/DistanceComparatorTest.java index 2db3f59..0cfee49 100644 --- a/tests/src/cgeo/geocaching/sorting/DistanceComparatorTest.java +++ b/tests/src/cgeo/geocaching/sorting/DistanceComparatorTest.java @@ -20,7 +20,7 @@ public class DistanceComparatorTest extends AndroidTestCase { } caches.add(cache); } - Collections.sort(caches, new DistanceComparator(new Geopoint(0, 0), caches)); + Collections.sort(caches, new DistanceComparator(Geopoint.ZERO, caches)); } } diff --git a/tests/src/cgeo/geocaching/test/AbstractResourceInstrumentationTestCase.java b/tests/src/cgeo/geocaching/test/AbstractResourceInstrumentationTestCase.java index 12e83cc..e4f8ca5 100644 --- a/tests/src/cgeo/geocaching/test/AbstractResourceInstrumentationTestCase.java +++ b/tests/src/cgeo/geocaching/test/AbstractResourceInstrumentationTestCase.java @@ -36,14 +36,19 @@ public abstract class AbstractResourceInstrumentationTestCase extends Instrument } protected String getFileContent(int resourceId) { - final InputStream ins = getResourceStream(resourceId); - final String result = new Scanner(ins).useDelimiter("\\A").next(); + Scanner scanner = null; try { - ins.close(); - } catch (IOException e) { + final InputStream ins = getResourceStream(resourceId); + scanner = new Scanner(ins); + return scanner.useDelimiter("\\A").next(); + } catch (Exception e) { e.printStackTrace(); + } finally { + if (scanner != null) { + scanner.close(); + } } - return result; + return null; } protected void copyResourceToFile(int resourceId, File file) throws IOException { diff --git a/tests/src/cgeo/geocaching/utils/LogTemplateProviderTest.java b/tests/src/cgeo/geocaching/utils/LogTemplateProviderTest.java index 5911218..249cbb1 100644 --- a/tests/src/cgeo/geocaching/utils/LogTemplateProviderTest.java +++ b/tests/src/cgeo/geocaching/utils/LogTemplateProviderTest.java @@ -10,11 +10,11 @@ public class LogTemplateProviderTest extends TestCase { public static void testApplyTemplates() { final String noTemplates = " no templates "; - assertEquals(noTemplates, LogTemplateProvider.applyTemplates(noTemplates, new LogContext(true))); + assertEquals(noTemplates, LogTemplateProvider.applyTemplates(noTemplates, new LogContext(null, null, true))); // This test can occasionally fail if the current year changes right after the next line. final String currentYear = Integer.toString(Calendar.YEAR); - assertTrue(LogTemplateProvider.applyTemplates("[DATE]", new LogContext(true)).contains(currentYear)); + assertTrue(LogTemplateProvider.applyTemplates("[DATE]", new LogContext(null, null, true)).contains(currentYear)); } } diff --git a/tests/src/cgeo/geocaching/utils/MemorySubjectTest.java b/tests/src/cgeo/geocaching/utils/MemorySubjectTest.java deleted file mode 100644 index ee46950..0000000 --- a/tests/src/cgeo/geocaching/utils/MemorySubjectTest.java +++ /dev/null @@ -1,79 +0,0 @@ -package cgeo.geocaching.utils; - -import android.test.AndroidTestCase; - -public class MemorySubjectTest extends AndroidTestCase { - - private static class Observer implements IObserver<Integer> { - private int times = 0; - private Integer value; - - @Override - public void update(final Integer data) { - value = data; - times++; - } - } - - private Observer observer; - private MemorySubject<Integer> memorySubject; - - @Override - public void setUp() throws Exception { - super.setUp(); - observer = new Observer(); - memorySubject = new MemorySubject<Integer>(); - } - - public void testInitial() { - assertNull(observer.value); - assertEquals(0, observer.times); - assertNull(memorySubject.getMemory()); - } - - public void testMemory() { - memorySubject.addObserver(observer); - memorySubject.notifyObservers(10); - assertEquals(Integer.valueOf(10), observer.value); - assertEquals(1, observer.times); - assertEquals(Integer.valueOf(10), memorySubject.getMemory()); - memorySubject.notifyObservers(20); - assertEquals(Integer.valueOf(20), observer.value); - assertEquals(2, observer.times); - assertEquals(Integer.valueOf(20), memorySubject.getMemory()); - } - - public void testAttach() { - memorySubject.notifyObservers(10); - assertNull(observer.value); - assertEquals(0, observer.times); - memorySubject.addObserver(observer); - assertEquals(Integer.valueOf(10), observer.value); - assertEquals(1, observer.times); - memorySubject.notifyObservers(20); - assertEquals(Integer.valueOf(20), observer.value); - assertEquals(2, observer.times); - } - - public void testDetach() { - memorySubject.addObserver(observer); - memorySubject.notifyObservers(10); - assertEquals(Integer.valueOf(10), observer.value); - assertEquals(1, observer.times); - assertEquals(Integer.valueOf(10), memorySubject.getMemory()); - memorySubject.deleteObserver(observer); - memorySubject.notifyObservers(20); - assertEquals(Integer.valueOf(10), observer.value); - assertEquals(1, observer.times); - assertEquals(Integer.valueOf(20), memorySubject.getMemory()); - } - - public void testMultiple() { - final Observer otherObserver = new Observer(); - memorySubject.addObserver(otherObserver); - testDetach(); - assertEquals(Integer.valueOf(20), otherObserver.value); - assertEquals(2, otherObserver.times); - } - -} |
