aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2013-08-18 10:16:34 +0200
committerBananeweizen <bananeweizen@gmx.de>2013-08-18 10:16:34 +0200
commitc342b278b84b59165b04419515c16bff944a44e2 (patch)
tree9bf542af75e41bfd8d688d52a802091af1e306a6 /tests
parenta5f3c56e00431215de4a0e1c3528c0cb60e4deb2 (diff)
downloadcgeo-c342b278b84b59165b04419515c16bff944a44e2.zip
cgeo-c342b278b84b59165b04419515c16bff944a44e2.tar.gz
cgeo-c342b278b84b59165b04419515c16bff944a44e2.tar.bz2
fix #3139: Search by geocode is case sensitive
Diffstat (limited to 'tests')
-rw-r--r--tests/src/cgeo/geocaching/cgDataTest.java31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/src/cgeo/geocaching/cgDataTest.java b/tests/src/cgeo/geocaching/cgDataTest.java
index c82053e..cacf061 100644
--- a/tests/src/cgeo/geocaching/cgDataTest.java
+++ b/tests/src/cgeo/geocaching/cgDataTest.java
@@ -9,6 +9,8 @@ import cgeo.geocaching.enumerations.LoadFlags.SaveFlag;
import cgeo.geocaching.geopoint.Geopoint;
import cgeo.geocaching.geopoint.Viewport;
+import org.apache.commons.lang3.StringUtils;
+
import java.util.ArrayList;
import java.util.Collections;
import java.util.EnumSet;
@@ -125,6 +127,35 @@ public class cgDataTest extends CGeoTestCase {
}
}
+ // Check that loading a cache by case insensitive geo code works correctly (see #3139)
+ public static void testGeocodeCaseInsensitive() {
+
+ final String GEOCODE_CACHE = "TEST";
+ final String upperCase = GEOCODE_CACHE;
+ final String lowerCase = StringUtils.lowerCase(upperCase);
+ assertFalse(upperCase.equals(lowerCase));
+
+ // create cache and trackable
+ final Geocache cache = new Geocache();
+ cache.setGeocode(upperCase);
+ cache.setDetailed(true);
+
+ try {
+ final Geocache oldCache = cgData.loadCache(upperCase, LoadFlags.LOAD_ALL_DB_ONLY);
+ assertNull("Database contained old cache!", oldCache);
+
+ cgData.saveCache(cache, EnumSet.of(SaveFlag.SAVE_DB));
+ final Geocache cacheWithOriginalCode = cgData.loadCache(upperCase, LoadFlags.LOAD_ALL_DB_ONLY);
+ assertNotNull("Cache was not saved correctly!", cacheWithOriginalCode);
+
+ final Geocache cacheLowerCase = cgData.loadCache(lowerCase, LoadFlags.LOAD_ALL_DB_ONLY);
+ assertNotNull("Could not find cache by case insensitive geocode", cacheLowerCase);
+
+ } finally {
+ cgData.removeCache(upperCase, LoadFlags.REMOVE_ALL);
+ }
+ }
+
// Loading logs for an empty geocode should return an empty list, not null!
public static void testLoadLogsFromEmptyGeocode() {