From c342b278b84b59165b04419515c16bff944a44e2 Mon Sep 17 00:00:00 2001 From: Bananeweizen Date: Sun, 18 Aug 2013 10:16:34 +0200 Subject: fix #3139: Search by geocode is case sensitive --- tests/src/cgeo/geocaching/cgDataTest.java | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'tests/src') 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() { -- cgit v1.1