1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
package cgeo.geocaching.connector.oc;
import cgeo.CGeoTestCase;
import cgeo.geocaching.Geocache;
import cgeo.geocaching.Settings;
import cgeo.geocaching.enumerations.CacheType;
import org.apache.commons.lang3.StringUtils;
import android.text.Html;
import java.util.Collection;
public class OCXMLTest extends CGeoTestCase {
public static void testOCGetCache() {
final String geoCode = "OCDE76";
final Geocache cache = OCXMLClient.getCache(geoCode);
assertNotNull(cache);
assertEquals(geoCode, cache.getGeocode());
assertEquals("Gitarrenspielplatz", cache.getName());
assertEquals(CacheType.TRADITIONAL, cache.getType());
assertEquals(2.0, cache.getDifficulty(), 0.1);
assertEquals(2.0, cache.getTerrain(), 0.1);
}
public static void testOCLogAttendedAsFound() {
final String oldOCName = Settings.getOCConnectorUserName();
try {
Settings.setOCConnectorUserName("ra_sch");
final String geoCode = "OCD541";
final Geocache cache = OCXMLClient.getCache(geoCode);
assertNotNull(cache);
assertTrue(cache.isFound());
} finally {
Settings.setOCConnectorUserName(oldOCName);
}
}
public static void testOCOwner() {
final String oldOCName = Settings.getOCConnectorUserName();
try {
Settings.setOCConnectorUserName("andi12.2");
final String geoCode = "OCC9BE";
final Geocache cache = OCXMLClient.getCache(geoCode);
assertNotNull(cache);
assertTrue(cache.isOwner());
assertEquals("180571", cache.getOwnerUserId());
} finally {
Settings.setOCConnectorUserName(oldOCName);
}
}
public static void testOC0537Description() {
final String geoCode = "OC0537";
final Geocache cache = OCXMLClient.getCache(geoCode);
assertNotNull(cache);
assertFalse(cache.getDescription().length() < 100);
}
public static void testNoArchivedInNearby() {
final boolean oldExcludeDisabled = Settings.isExcludeDisabledCaches();
final boolean oldExcludeMine = Settings.isExcludeMyCaches();
try {
Settings.setExcludeDisabledCaches(false);
Settings.setExcludeMine(false);
// get an archived cache
final Geocache cache = OCXMLClient.getCache("OCD541");
assertNotNull(cache);
assertTrue(cache.isArchived());
// Get nearby for this cache
final Collection<Geocache> caches = OCXMLClient.getCachesAround(cache.getCoords(), 0.5);
// Should not be in the result!
assertFalse(caches.contains(cache));
} finally {
Settings.setExcludeDisabledCaches(oldExcludeDisabled);
Settings.setExcludeMine(oldExcludeMine);
}
}
public static void testFetchTwiceDuplicatesDescription() {
final String geoCode = "OCEFBA";
final String description = "Bei dem Cache kannst du einen kleinen Schatz bergen. Bitte lege aber einen ander Schatz in das Döschen. Achtung vor Automuggels.";
deleteCacheFromDB(geoCode);
Geocache cache = OCXMLClient.getCache(geoCode);
assertNotNull(cache);
try {
assertEquals(geoCode, cache.getGeocode());
// ignore copyright as the date part will change all the time
assertEquals(description, removeCopyrightAndTags(cache.getDescription()));
cache.store(null);
// reload, make sure description is not duplicated
cache = OCXMLClient.getCache(geoCode);
assertNotNull(cache);
assertEquals(description, removeCopyrightAndTags(cache.getDescription()));
} finally {
deleteCacheFromDB(geoCode);
}
}
private static String removeCopyrightAndTags(String input) {
return Html.fromHtml(StringUtils.substringBefore(input, "©")).toString().trim();
}
public static void testRemoveMarkup() {
assertEquals("", OC11XMLParser.stripMarkup(""));
assertEquals("Test", OC11XMLParser.stripMarkup("Test"));
assertEquals("<b>bold and others not removed</b>", OC11XMLParser.stripMarkup("<b>bold and others not removed</b>"));
assertEquals("unnecessary paragraph", OC11XMLParser.stripMarkup("<p>unnecessary paragraph</p>"));
assertEquals("unnecessary span", OC11XMLParser.stripMarkup("<span>unnecessary span</span>"));
assertEquals("nested", OC11XMLParser.stripMarkup("<span><span>nested</span></span>"));
assertEquals("mixed", OC11XMLParser.stripMarkup("<span> <p> mixed </p> </span>"));
assertEquals("<p>not</p><p>removable</p>", OC11XMLParser.stripMarkup("<p>not</p><p>removable</p>"));
}
}
|