aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2013-02-06 07:45:29 +0100
committerBananeweizen <bananeweizen@gmx.de>2013-02-06 07:45:29 +0100
commit5b39718f872d3d884911fa60c2d1f72af97d4830 (patch)
treea8dc92c0ba2dcd64a504c038e65486d6f60fd218
parent174395866b46efe3eab0015a78531c88c199c5be (diff)
downloadcgeo-5b39718f872d3d884911fa60c2d1f72af97d4830.zip
cgeo-5b39718f872d3d884911fa60c2d1f72af97d4830.tar.gz
cgeo-5b39718f872d3d884911fa60c2d1f72af97d4830.tar.bz2
fix #2451, bad pattern for cache count parsing
-rw-r--r--main/src/cgeo/geocaching/connector/gc/GCConstants.java2
-rw-r--r--tests/src/cgeo/geocaching/connector/gc/GCConstantsTest.java14
2 files changed, 15 insertions, 1 deletions
diff --git a/main/src/cgeo/geocaching/connector/gc/GCConstants.java b/main/src/cgeo/geocaching/connector/gc/GCConstants.java
index 2b4ca46..65f0bdb 100644
--- a/main/src/cgeo/geocaching/connector/gc/GCConstants.java
+++ b/main/src/cgeo/geocaching/connector/gc/GCConstants.java
@@ -67,7 +67,7 @@ public final class GCConstants {
public static final String MEMBER_STATUS_RENEW = "<a id=\"ctl00_hlRenew";
public static final String MEMBER_STATUS_PM = "Premium Member";
/** Use replaceAll("[,.]","") on the resulting string before converting to an int */
- public static final Pattern PATTERN_CACHES_FOUND = Pattern.compile("<strong style=\"display:block\">.*?([\\d,.]+) Caches Found");
+ public static final Pattern PATTERN_CACHES_FOUND = Pattern.compile("<strong[^>]*>.*?([\\d,.]+) Caches Found");
public static final Pattern PATTERN_AVATAR_IMAGE_PROFILE_PAGE = Pattern.compile("<img src=\"(http://img.geocaching.com/user/avatar/[0-9a-f-]+\\.jpg)\"[^>]*\\salt=\"Avatar\"");
public static final Pattern PATTERN_LOGIN_NAME_LOGIN_PAGE = Pattern.compile("<h4>Success:</h4> <p>You are logged in as[^<]*<strong><span id=\"ctl00_ContentBody_lbUsername\"[^>]*>([^<]+)[^<]*</span>");
public static final Pattern PATTERN_CUSTOMDATE = Pattern.compile("<option selected=\"selected\" value=\"([ /Mdy-]+)\">");
diff --git a/tests/src/cgeo/geocaching/connector/gc/GCConstantsTest.java b/tests/src/cgeo/geocaching/connector/gc/GCConstantsTest.java
index 1f4f074..980fcaa 100644
--- a/tests/src/cgeo/geocaching/connector/gc/GCConstantsTest.java
+++ b/tests/src/cgeo/geocaching/connector/gc/GCConstantsTest.java
@@ -33,6 +33,20 @@ public class GCConstantsTest extends AndroidTestCase {
}
}
+ /**
+ * Test that we can parse the cache find count of the user.
+ * <p>
+ * This test requires a real user name and password to be stored on the device or emulator.
+ * </p>
+ */
+
+ public static void testCacheCountOnline() {
+ Login.logout();
+ Login.setActualCachesFound(0);
+ Login.login();
+ assertTrue(Login.getActualCachesFound() > 0);
+ }
+
public static void testConstants() {
String session = "userSession = new Groundspeak.Map.UserSession('aKWZ', userOptions:'XPTf', sessionToken:'123pNKwdktYGZL0xd-I7yqA6nm_JE1BDUtM4KcOkifin2TRCMutBd_PZE14Ohpffs2ZgkTnxTSnxYpBigK4hBA2', subscriberType: 3, enablePersonalization: true });";
assertEquals("aKWZ", BaseUtils.getMatch(session, GCConstants.PATTERN_USERSESSION, ""));