diff options
Diffstat (limited to 'tests')
19 files changed, 136 insertions, 136 deletions
diff --git a/tests/.settings/org.eclipse.jdt.core.prefs b/tests/.settings/org.eclipse.jdt.core.prefs index 5385520..6ba1bbd 100644 --- a/tests/.settings/org.eclipse.jdt.core.prefs +++ b/tests/.settings/org.eclipse.jdt.core.prefs @@ -1,9 +1,10 @@ eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=enabled org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable -org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.annotation.nullanalysis=enabled org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve @@ -11,7 +12,7 @@ org.eclipse.jdt.core.compiler.compliance=1.6 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=ignore org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.autoboxing=ignore org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning @@ -20,13 +21,13 @@ org.eclipse.jdt.core.compiler.problem.deprecation=warning org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled org.eclipse.jdt.core.compiler.problem.discouragedReference=warning -org.eclipse.jdt.core.compiler.problem.emptyStatement=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled org.eclipse.jdt.core.compiler.problem.fieldHiding=warning -org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning @@ -47,37 +48,39 @@ org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warni org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error -org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullReference=error org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning org.eclipse.jdt.core.compiler.problem.parameterAssignment=warning org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning -org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=error org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning -org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning -org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=warning org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=warning org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=enabled org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning -org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled -org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning -org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled @@ -90,6 +93,7 @@ org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference= org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning org.eclipse.jdt.core.compiler.source=1.6 diff --git a/tests/libs/org.eclipse.jdt.annotation_1.1.0.v20130513-1648.jar b/tests/libs/org.eclipse.jdt.annotation_1.1.0.v20130513-1648.jar Binary files differnew file mode 100644 index 0000000..daca164 --- /dev/null +++ b/tests/libs/org.eclipse.jdt.annotation_1.1.0.v20130513-1648.jar diff --git a/tests/src/cgeo/geocaching/CgeoApplicationTest.java b/tests/src/cgeo/geocaching/CgeoApplicationTest.java index b9c03a4..cd80889 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 @@ -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); - 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 @@ -356,7 +358,7 @@ public class CgeoApplicationTest extends CGeoTestCase { 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,7 +375,7 @@ 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 @@ -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/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..1509563 100644 --- a/tests/src/cgeo/geocaching/connector/gc/GCParserTest.java +++ b/tests/src/cgeo/geocaching/connector/gc/GCParserTest.java @@ -56,6 +56,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()); } @@ -158,6 +160,8 @@ public class GCParserTest extends AbstractResourceInstrumentationTestCase { cache.drop(new Handler()); 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 @@ -165,6 +169,8 @@ public class GCParserTest extends AbstractResourceInstrumentationTestCase { cache2.drop(new Handler()); 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 +178,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/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/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/geopoint/GeoPointParserTest.java b/tests/src/cgeo/geocaching/geopoint/GeoPointParserTest.java index 1de2e26..28dbe77 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/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); - } - -} |
