diff options
| -rw-r--r-- | main/src/cgeo/geocaching/connector/gc/GCConstants.java | 2 | ||||
| -rw-r--r-- | tests/res/raw/own_cache.htm | 2 | ||||
| -rw-r--r-- | tests/src/cgeo/geocaching/cgeoApplicationTest.java | 2 | ||||
| -rw-r--r-- | tests/src/cgeo/geocaching/connector/gc/GCParserTest.java | 12 | ||||
| -rw-r--r-- | tests/src/cgeo/geocaching/test/mock/GC2JVEH.html | 2 | ||||
| -rw-r--r-- | tests/src/cgeo/test/Compare.java | 57 |
6 files changed, 39 insertions, 38 deletions
diff --git a/main/src/cgeo/geocaching/connector/gc/GCConstants.java b/main/src/cgeo/geocaching/connector/gc/GCConstants.java index 16aa967..5d7b21d 100644 --- a/main/src/cgeo/geocaching/connector/gc/GCConstants.java +++ b/main/src/cgeo/geocaching/connector/gc/GCConstants.java @@ -58,7 +58,7 @@ public final class GCConstants { public final static Pattern PATTERN_ATTRIBUTES = Pattern.compile("Attributes\\s*</h3>[^<]*<div class=\"WidgetBody\">((?:[^<]*<img src=\"[^\"]+\" alt=\"[^\"]+\"[^>]*>)+?)[^<]*<p"); /** Two groups ! */ public final static Pattern PATTERN_ATTRIBUTESINSIDE = Pattern.compile("[^<]*<img src=\"([^\"]+)\" alt=\"([^\"]+?)\""); - public final static Pattern PATTERN_SPOILER_IMAGE = Pattern.compile("<a href=\"(http://img\\.geocaching\\.com[^.]+\\.(jpg|jpeg|png|gif))\"[^>]+>([^<]+)</a>(?:<br />([^<]+)<br /><br />)?"); + public final static Pattern PATTERN_SPOILER_IMAGE = Pattern.compile("<a href=\"(http://imgcdn\\.geocaching\\.com[^.]+\\.(jpg|jpeg|png|gif))\"[^>]+>([^<]+)</a>(?:<br />([^<]+)<br /><br />)?"); public final static Pattern PATTERN_INVENTORY = Pattern.compile("<span id=\"ctl00_ContentBody_uxTravelBugList_uxInventoryLabel\">\\W*Inventory[^<]*</span>[^<]*</h3>[^<]*<div class=\"WidgetBody\">([^<]*<ul>(([^<]*<li>[^<]*<a href=\"[^\"]+\"[^>]*>[^<]*<img src=\"[^\"]+\"[^>]*>[^<]*<span>[^<]+<\\/span>[^<]*<\\/a>[^<]*<\\/li>)+)[^<]*<\\/ul>)?"); public final static Pattern PATTERN_INVENTORYINSIDE = Pattern.compile("[^<]*<li>[^<]*<a href=\"[a-z0-9\\-\\_\\.\\?\\/\\:\\@]*\\/track\\/details\\.aspx\\?guid=([0-9a-z\\-]+)[^\"]*\"[^>]*>[^<]*<img src=\"[^\"]+\"[^>]*>[^<]*<span>([^<]+)<\\/span>[^<]*<\\/a>[^<]*<\\/li>"); public final static Pattern PATTERN_WATCHLIST = Pattern.compile(Pattern.quote("watchlist.aspx") + ".{1,50}" + Pattern.quote("action=rem")); diff --git a/tests/res/raw/own_cache.htm b/tests/res/raw/own_cache.htm index d6b3ae7..4d26e2e 100644 --- a/tests/res/raw/own_cache.htm +++ b/tests/res/raw/own_cache.htm @@ -1022,7 +1022,7 @@ googletag.cmd.push(function() { googletag.display('div_78cc40a5-15d3-47c2-b7cc-2 </span>
<ul class="CachePageImages NoPrint">
- <li><a href="http://img.geocaching.com/cache/large/b476c2d3-5bdd-4f52-b7d2-0c76ba7f6a04.jpg" rel="lightbox">Grundschule Moltkestraße</a> <span class="minorDetails"> | <a href="/seek/image.aspx?imgid=2377163" title="Edit">Edit</a></span></li><li><a href="http://img.geocaching.com/cache/large/6ddbbe82-8762-46ad-8f4c-57d03f4b0564.jpeg" rel="lightbox">SPOILER</a> <span class="minorDetails"> | <a href="/seek/image.aspx?imgid=2197612" title="Edit">Edit</a></span></li>
+ <li><a href="http://imgcdn.geocaching.com/cache/large/b476c2d3-5bdd-4f52-b7d2-0c76ba7f6a04.jpg" rel="lightbox">Grundschule Moltkestraße</a> <span class="minorDetails"> | <a href="/seek/image.aspx?imgid=2377163" title="Edit">Edit</a></span></li><li><a href="http://imgcdn.geocaching.com/cache/large/6ddbbe82-8762-46ad-8f4c-57d03f4b0564.jpeg" rel="lightbox">SPOILER</a> <span class="minorDetails"> | <a href="/seek/image.aspx?imgid=2197612" title="Edit">Edit</a></span></li>
</ul>
<div class="InformationWidget Clear">
diff --git a/tests/src/cgeo/geocaching/cgeoApplicationTest.java b/tests/src/cgeo/geocaching/cgeoApplicationTest.java index 83bf28d..56ddedf 100644 --- a/tests/src/cgeo/geocaching/cgeoApplicationTest.java +++ b/tests/src/cgeo/geocaching/cgeoApplicationTest.java @@ -260,7 +260,7 @@ public class cgeoApplicationTest extends CGeoTestCase { public void run() { final SearchResult search = GCParser.searchByUsername("blafoo", CacheType.WEBCAM, false, null); assertNotNull(search); - assertEquals(3, search.getTotal()); + assertEquals(4, search.getTotal()); assertTrue(search.getGeocodes().contains("GCP0A9")); } }); diff --git a/tests/src/cgeo/geocaching/connector/gc/GCParserTest.java b/tests/src/cgeo/geocaching/connector/gc/GCParserTest.java index de52171..4420168 100644 --- a/tests/src/cgeo/geocaching/connector/gc/GCParserTest.java +++ b/tests/src/cgeo/geocaching/connector/gc/GCParserTest.java @@ -66,13 +66,13 @@ public class GCParserTest extends AbstractResourceInstrumentationTestCase { public void testOwnCache() { final Geocache cache = parseCache(R.raw.own_cache); - assertNotNull(cache); - assertTrue(CollectionUtils.isNotEmpty(cache.getSpoilers())); - assertEquals(2, cache.getSpoilers().size()); + assertNotNull("Cache not parsed!", cache); + assertTrue("No spoilers found!", CollectionUtils.isNotEmpty(cache.getSpoilers())); + assertEquals("Wrong number of spoilers", 2, cache.getSpoilers().size()); final Image spoiler = cache.getSpoilers().get(1); - assertEquals("http://img.geocaching.com/cache/large/6ddbbe82-8762-46ad-8f4c-57d03f4b0564.jpeg", spoiler.getUrl()); - assertEquals("SPOILER", spoiler.getTitle()); - assertNull(spoiler.getDescription()); + assertEquals("First spoiler image url wrong", "http://imgcdn.geocaching.com/cache/large/6ddbbe82-8762-46ad-8f4c-57d03f4b0564.jpeg", spoiler.getUrl()); + assertEquals("First spoiler image text wrong", "SPOILER", spoiler.getTitle()); + assertNull("First spoiler image description not empty", spoiler.getDescription()); } private static Geocache createCache(int index) { diff --git a/tests/src/cgeo/geocaching/test/mock/GC2JVEH.html b/tests/src/cgeo/geocaching/test/mock/GC2JVEH.html index 57a93f3..bdc599b 100644 --- a/tests/src/cgeo/geocaching/test/mock/GC2JVEH.html +++ b/tests/src/cgeo/geocaching/test/mock/GC2JVEH.html @@ -863,7 +863,7 @@ googletag.cmd.push(function() { googletag.display('div_2eebdd71-383c-43aa-80d3-b </span>
<ul class="CachePageImages NoPrint">
- <li><a href="http://img.geocaching.com/cache/large/1711f8a1-796a-405b-82ba-8685f2e9f024.jpg" rel="lightbox">indy mit text netz Kopie</a></li><li><a href="http://img.geocaching.com/cache/large/62f39911-86ab-422c-8322-259d0f118848.jpg" rel="lightbox">Spoiler st.1</a></li><li><a href="http://img.geocaching.com/cache/large/b7c3df61-2403-4ce8-87be-41c54244116f.jpg" rel="lightbox">Zahlenpause</a></li>
+ <li><a href="http://imgcdn.geocaching.com/cache/large/1711f8a1-796a-405b-82ba-8685f2e9f024.jpg" rel="lightbox">indy mit text netz Kopie</a></li><li><a href="http://imgcdn.geocaching.com/cache/large/62f39911-86ab-422c-8322-259d0f118848.jpg" rel="lightbox">Spoiler st.1</a></li><li><a href="http://imgcdn.geocaching.com/cache/large/b7c3df61-2403-4ce8-87be-41c54244116f.jpg" rel="lightbox">Zahlenpause</a></li>
</ul>
<div class="InformationWidget Clear">
diff --git a/tests/src/cgeo/test/Compare.java b/tests/src/cgeo/test/Compare.java index 996b11c..4a296bd 100644 --- a/tests/src/cgeo/test/Compare.java +++ b/tests/src/cgeo/test/Compare.java @@ -14,40 +14,41 @@ import org.apache.commons.lang3.StringUtils; public abstract class Compare { public static void assertCompareCaches(ICache expected, Geocache actual, boolean all) { - assertNotNull(actual); - assertEquals(expected.getGeocode(), actual.getGeocode()); - assertTrue(expected.getType() == actual.getType()); - assertEquals(expected.getOwnerDisplayName(), actual.getOwnerDisplayName()); - assertEquals(expected.getDifficulty(), actual.getDifficulty()); - assertEquals(expected.getTerrain(), actual.getTerrain()); - assertEquals(expected.isDisabled(), actual.isDisabled()); - assertEquals(expected.isArchived(), actual.isArchived()); - assertEquals(expected.getSize(), actual.getSize()); - assertEquals(expected.getName(), actual.getName()); - assertEquals(expected.getGuid(), actual.getGuid()); - assertTrue(expected.getFavoritePoints() <= actual.getFavoritePoints()); - assertEquals(expected.getHiddenDate().toString(), actual.getHiddenDate().toString()); - assertEquals(expected.isPremiumMembersOnly(), actual.isPremiumMembersOnly()); + String geocode = expected.getGeocode(); + assertNotNull("Cache " + geocode + " is missing", actual); + assertEquals("Cache " + geocode + ": geocode wrong", expected.getGeocode(), actual.getGeocode()); + assertTrue("Cache " + geocode + ": type wrong", expected.getType() == actual.getType()); + assertEquals("Cache " + geocode + ": OwnerDisplayName wrong", expected.getOwnerDisplayName(), actual.getOwnerDisplayName()); + assertEquals("Cache " + geocode + ": difficulty wrong", expected.getDifficulty(), actual.getDifficulty()); + assertEquals("Cache " + geocode + ": terrain wrong", expected.getTerrain(), actual.getTerrain()); + assertEquals("Cache " + geocode + ": disabled wrong", expected.isDisabled(), actual.isDisabled()); + assertEquals("Cache " + geocode + ": archived wrong", expected.isArchived(), actual.isArchived()); + assertEquals("Cache " + geocode + ": size wrong", expected.getSize(), actual.getSize()); + assertEquals("Cache " + geocode + ": name wrong", expected.getName(), actual.getName()); + assertEquals("Cache " + geocode + ": guid wrong", expected.getGuid(), actual.getGuid()); + assertTrue("Cache " + geocode + ": fav points wrong", expected.getFavoritePoints() <= actual.getFavoritePoints()); + assertEquals("Cache " + geocode + ": hidden date wrong", expected.getHiddenDate().toString(), actual.getHiddenDate().toString()); + assertEquals("Cache " + geocode + ": premium only wrong", expected.isPremiumMembersOnly(), actual.isPremiumMembersOnly()); if (all) { - assertEquals(expected.getCoords(), actual.getCoords()); - assertTrue(actual.isReliableLatLon()); - assertEquals(expected.isOwner(), actual.isOwner()); - assertEquals(expected.getOwnerUserId(), actual.getOwnerUserId()); - assertTrue(StringUtils.equals(expected.getHint(), actual.getHint()) || StringUtils.equals(expected.getHint(), CryptUtils.rot13(actual.getHint()))); - assertTrue(actual.getDescription().startsWith(expected.getDescription())); - assertEquals(expected.getShortDescription(), actual.getShortDescription()); - assertEquals(expected.getCacheId(), actual.getCacheId()); - assertEquals(expected.getLocation(), actual.getLocation()); - assertEquals(expected.isFound(), actual.isFound()); - assertEquals(expected.isFavorite(), actual.isFavorite()); - assertEquals(expected.isOnWatchlist(), actual.isOnWatchlist()); + assertEquals("Cache " + geocode + ": coords wrong", expected.getCoords(), actual.getCoords()); + assertTrue("Cache " + geocode + ": reliable latlon wrong", actual.isReliableLatLon()); + assertEquals("Cache " + geocode + ": owning status wrong", expected.isOwner(), actual.isOwner()); + assertEquals("Cache " + geocode + ": owner user id wrong", expected.getOwnerUserId(), actual.getOwnerUserId()); + assertTrue("Cache " + geocode + ": hint wrong", StringUtils.equals(expected.getHint(), actual.getHint()) || StringUtils.equals(expected.getHint(), CryptUtils.rot13(actual.getHint()))); + assertTrue("Cache " + geocode + ": description wrong", actual.getDescription().startsWith(expected.getDescription())); + assertEquals("Cache " + geocode + ": short description wrong", expected.getShortDescription(), actual.getShortDescription()); + assertEquals("Cache " + geocode + ": cache id wrong", expected.getCacheId(), actual.getCacheId()); + assertEquals("Cache " + geocode + ": location wrong", expected.getLocation(), actual.getLocation()); + assertEquals("Cache " + geocode + ": found status wrong", expected.isFound(), actual.isFound()); + assertEquals("Cache " + geocode + ": favorite status wrong", expected.isFavorite(), actual.isFavorite()); + assertEquals("Cache " + geocode + ": watchlist status wrong", expected.isOnWatchlist(), actual.isOnWatchlist()); for (String attribute : expected.getAttributes()) { assertTrue("Expected attribute '" + attribute + "' not found in " + actual.getGeocode(), actual.getAttributes().contains(attribute)); } for (LogType logType : expected.getLogCounts().keySet()) { - assertTrue(actual.getLogCounts().get(logType) >= expected.getLogCounts().get(logType)); + assertTrue("Cache " + geocode + ": logcount for type " + logType.toString() + " wrong", actual.getLogCounts().get(logType) >= expected.getLogCounts().get(logType)); } // The inventories can differ too often, therefore we don't compare them. Also, the personal note @@ -55,7 +56,7 @@ public abstract class Compare { final int actualSpoilersSize = null != actual.getSpoilers() ? actual.getSpoilers().size() : 0; final int expectedSpoilersSize = null != expected.getSpoilers() ? expected.getSpoilers().size() : 0; - assertEquals(expectedSpoilersSize, actualSpoilersSize); + assertEquals("Cache " + geocode + ": spoiler count wrong", expectedSpoilersSize, actualSpoilersSize); } } |
