diff options
author | rsudev <rasch@munin-soft.de> | 2013-11-23 22:12:24 +0100 |
---|---|---|
committer | rsudev <rasch@munin-soft.de> | 2013-11-23 22:13:06 +0100 |
commit | 652722134c0d18dbe77dd952903a71ae14755d27 (patch) | |
tree | d3613d8d906b938de5d612b5f75b3cc72605f9c2 /tests | |
parent | 6240d934fc7e0d6b52fdf3b2cf21d0e72fdbf7c7 (diff) | |
download | cgeo-652722134c0d18dbe77dd952903a71ae14755d27.zip cgeo-652722134c0d18dbe77dd952903a71ae14755d27.tar.gz cgeo-652722134c0d18dbe77dd952903a71ae14755d27.tar.bz2 |
Implements stable keys for opencaching waypoints
additionally extend ex- and import (gpx) to also contain visited and
userdefined.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/res/raw/ocddd2.gpx | 133 | ||||
-rw-r--r-- | tests/src/cgeo/geocaching/export/GpxSerializerTest.java | 10 | ||||
-rw-r--r-- | tests/src/cgeo/geocaching/files/GPXImporterTest.java | 23 |
3 files changed, 165 insertions, 1 deletions
diff --git a/tests/res/raw/ocddd2.gpx b/tests/res/raw/ocddd2.gpx new file mode 100644 index 0000000..9ce18b1 --- /dev/null +++ b/tests/res/raw/ocddd2.gpx @@ -0,0 +1,133 @@ +<?xml version="1.0" encoding="utf-8"?> +<gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:cgeo="http://www.cgeo.org/wptext/1/0" version="1.0" creator="Opencaching.de - http://www.opencaching.de" xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd http://www.groundspeak.com/cache/1/0/1 http://www.groundspeak.com/cache/1/0/1/cache.xsd" xmlns="http://www.topografix.com/GPX/1/0"> + <name>Cache listing generated from Opencaching.de</name> + <desc>This is a waypoint file generated from Opencaching.de</desc> + <author>Opencaching.de</author> + <email>contact@opencaching.de</email> + <url>http://www.opencaching.de</url> + <urlname>Opencaching.de - Geocaching in Deutschland, Oesterreich und der Schweiz</urlname> + <time>2013-11-10T14:52:05Z</time> + <keywords>cache, geocache, opencaching, waypoint</keywords> + <wpt lat="48.88417" lon="9.17660"> + <time>2012-03-23T00:00:00Z</time> + <name>OCDDD2</name> + <desc>Kaiserstein und Grabhügel Ludwigsburg</desc> + <src>www.opencaching.de</src> + <url>http://www.opencaching.de/viewcache.php?cacheid=159890</url> + <urlname>Kaiserstein und Grabhügel Ludwigsburg</urlname> + <sym>Geocache</sym> + <type>Geocache|Virtual Cache</type> + <groundspeak:cache id="159890" available="True" archived="False" xmlns:groundspeak="http://www.groundspeak.com/cache/1/0/1"> + <groundspeak:name>Kaiserstein und Grabhügel Ludwigsburg</groundspeak:name> + <groundspeak:placed_by>Emmett</groundspeak:placed_by> + <groundspeak:owner id="114440">Emmett</groundspeak:owner> + <groundspeak:type>Virtual Cache</groundspeak:type> + <groundspeak:container>Virtual</groundspeak:container> + <groundspeak:attributes> + <groundspeak:attribute id="106" inc="1">Only loggable at Opencaching</groundspeak:attribute> + <groundspeak:attribute id="25" inc="1">Parking available</groundspeak:attribute> + <groundspeak:attribute id="13" inc="1">Available at all times</groundspeak:attribute> + <groundspeak:attribute id="62" inc="0">Seasonal access</groundspeak:attribute> + </groundspeak:attributes> + <groundspeak:difficulty>1.5</groundspeak:difficulty> + <groundspeak:terrain>1.5</groundspeak:terrain> + <groundspeak:country>Germany</groundspeak:country> + <groundspeak:state>Baden-Württemberg</groundspeak:state> + <groundspeak:short_description html="True">Virtueller Cache am Römerhügelweg Ludwigsburg</groundspeak:short_description> + <groundspeak:long_description html="True">Im Süden der Stadt Ludwigsburg am heutigen Römerhügelweg liegen zwei Stellen, an denen zum Gedenken an zu ihrer Zeit gesellschaftlich bedeutende Menschen gebaut wurde.<br />
+<br />
+Zum einen der inzwischen abgetragene Grabhügel aus der späten Hallstattzeit, 6. Jahrhundert v. Chr. Informationen über ihn findet Ihr vor Ort.<br />
+<br />
+Zum anderen gegenüber ein Kaiserstein. Zwischen 1867 und 1918 wurden im deutschsprachigen Raum mehr als 1000 Kaiser-Wilhelm-Denkmäler errichtet.<br />
+<br />
+Um den Code zum Loggen zu erhalten, sucht vor Ort die Antworten auf folgende Fragen:<br />
+1. Am Kaiserstein (N 48 53.050 E 009 10.596) ist eine metallene Tafel angebracht. Wieviele Buchstaben hat die letzte Zeile ihrer Inschrift?<br />
+2. Südlich des Wasserturms ist eine Tafel mit 2 numerierten Abbildungen zu sehen (N 48 53.070 E 009 10.594). Was ist das 2. Wort der 8. Zeile des (unteren) Abschnittes links der Abbildung 2?<br />
+3. An der Rückseite des Kaisersteins steht eine Sitzgelegenheit. Wieviele Beine hat sie?<br />
+Der Code besteht aus den 3 Antworten, direkt hintereinandergeschrieben (Beispiel für das Format: 48Cache9 ).<br />
+<br />
+Parkmöglichkeiten: N 48 53.125 E 009 10.224 oder N 48 53.023 E 009 10.870 abends und am Wochenende, siehe Beschilderung<br />
+<br />
+Viel Spaß!<p><em>© <a href='http://www.opencaching.de/viewprofile.php?userid=114440' target='_blank'>Emmett</a>, <a href='http://www.opencaching.de/viewcache.php?cacheid=159890' target='_blank'>Opencaching.de</a>, <a href='http://creativecommons.org/licenses/by-nc-nd/3.0/de/' target='_blank'>CC BY-NC-ND</a>, Stand: 10.11.2013; alle Logeinträge © jeweiliger Autor</em></p> +<br /></groundspeak:long_description> + <groundspeak:logs> + <groundspeak:log id="871676"> + <groundspeak:date>2013-03-05T00:00:00Z</groundspeak:date> + <groundspeak:type>Found it</groundspeak:type> + <groundspeak:finder id="253417">andierdbeere</groundspeak:finder> + <groundspeak:text encoded="False"><p>Dankeschön für die Suche!</p> +<p>Habe den Cache am ersten schönen Frühlingstag gemacht!</p> +<p>Andi</p></groundspeak:text> + </groundspeak:log> + <groundspeak:log id="855833"> + <groundspeak:date>2012-10-20T00:00:00Z</groundspeak:date> + <groundspeak:type>Found it</groundspeak:type> + <groundspeak:finder id="248085">Lazumako</groundspeak:finder> + <groundspeak:text encoded="False">Geschafft!!! <br />
+:-)</groundspeak:text> + </groundspeak:log> + <groundspeak:log id="821979"> + <groundspeak:date>2012-05-12T00:00:00Z</groundspeak:date> + <groundspeak:type>Found it</groundspeak:type> + <groundspeak:finder id="233619">R2-D2</groundspeak:finder> + <groundspeak:text encoded="False"><p>War mein erster Cache überhaupt.</p> +<p>Hat echt Spaß gemacht. Gut für Grundschulkinder geeignet.</p> +<p>12.05.2012</p> +<p>R2-D2</p></groundspeak:text> + </groundspeak:log> + </groundspeak:logs> + <groundspeak:travelbugs> + </groundspeak:travelbugs> + </groundspeak:cache> + </wpt> + <wpt lat="48.88542" lon="9.17040"> + <time>2012-03-23T00:00:00Z</time> + <name>OCDDD2-1</name> + <cmt>Parkmöglichkeit</cmt> + <desc>Parkplatz</desc> + <url>http://www.opencaching.de/viewcache.php?cacheid=159890</url> + <urlname>OCDDD2 Kaiserstein und Grabhügel Ludwigsburg</urlname> + <sym>Parking Area</sym> + <type>Waypoint|Parking Area</type> + <gsak:wptExtension xmlns:gsak="http://www.gsak.net/xmlv1/4"> + <gsak:Parent>OCDDD2</gsak:Parent> + </gsak:wptExtension> + </wpt> + <wpt lat="48.88372" lon="9.18117"> + <time>2012-03-23T00:00:00Z</time> + <name>OCDDD2-2</name> + <cmt>Parkmöglichkeit abends und am Wochenende</cmt> + <desc>Parkplatz</desc> + <url>http://www.opencaching.de/viewcache.php?cacheid=159890</url> + <urlname>OCDDD2 Kaiserstein und Grabhügel Ludwigsburg</urlname> + <sym>Parking Area</sym> + <type>Waypoint|Parking Area</type> + <gsak:wptExtension xmlns:gsak="http://www.gsak.net/xmlv1/4"> + <gsak:Parent>OCDDD2</gsak:Parent> + </gsak:wptExtension> + </wpt> + <wpt lat="48.88450" lon="9.17657"> + <time>2012-03-23T00:00:00Z</time> + <name>OCDDD2-3</name> + <cmt>Tafel</cmt> + <desc>Station oder Referenzpunkt</desc> + <url>http://www.opencaching.de/viewcache.php?cacheid=159890</url> + <urlname>OCDDD2 Kaiserstein und Grabhügel Ludwigsburg</urlname> + <sym>Flag, Green</sym> + <type>Waypoint|Flag, Green</type> + <gsak:wptExtension xmlns:gsak="http://www.gsak.net/xmlv1/4"> + <gsak:Parent>OCDDD2</gsak:Parent> + </gsak:wptExtension> + </wpt> + <wpt lat="48.885" lon="9.174999999999999"> + <name>01</name> + <cmt>Ttt</cmt> + <desc>Wegpunkt 4</desc> + <sym>Question to Answer</sym> + <type>Waypoint|Question to Answer</type> + <gsak:wptExtension xmlns:gsak="http://www.gsak.net/xmlv1/4"> + <gsak:Parent>OCDDD2</gsak:Parent> + </gsak:wptExtension> + <cgeo:userdefined>true</cgeo:userdefined> + </wpt> +</gpx>
\ No newline at end of file diff --git a/tests/src/cgeo/geocaching/export/GpxSerializerTest.java b/tests/src/cgeo/geocaching/export/GpxSerializerTest.java index 5c83b35..9e3c3a4 100644 --- a/tests/src/cgeo/geocaching/export/GpxSerializerTest.java +++ b/tests/src/cgeo/geocaching/export/GpxSerializerTest.java @@ -22,7 +22,15 @@ public class GpxSerializerTest extends AbstractResourceInstrumentationTestCase { public static void testWriteEmptyGPX() throws Exception { final StringWriter writer = new StringWriter(); new GpxSerializer().writeGPX(Collections.<String> emptyList(), writer, null); - assertEquals("<?xml version='1.0' encoding='UTF-8' standalone='yes' ?><gpx version=\"1.0\" creator=\"c:geo - http://www.cgeo.org/\" xsi:schemaLocation=\"http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd http://www.groundspeak.com/cache/1/0 http://www.groundspeak.com/cache/1/0/1/cache.xsd\" xmlns=\"http://www.topografix.com/GPX/1/0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:groundspeak=\"http://www.groundspeak.com/cache/1/0\" />", writer.getBuffer().toString()); + assertEquals("<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>" + + "<gpx version=\"1.0\" creator=\"c:geo - http://www.cgeo.org/\" " + + "xsi:schemaLocation=\"http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd " + + "http://www.groundspeak.com/cache/1/0 http://www.groundspeak.com/cache/1/0/1/cache.xsd " + + "http://www.gsak.net/xmlv1/4 http://www.gsak.net/xmlv1/4/gsak.xsd\" " + + "xmlns=\"http://www.topografix.com/GPX/1/0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " + + "xmlns:groundspeak=\"http://www.groundspeak.com/cache/1/0\" xmlns:gsak=\"http://www.gsak.net/xmlv1/4\" " + + "xmlns:cgeo=\"http://www.cgeo.org/wptext/1/0\" />", + writer.getBuffer().toString()); } public void testProgressReporting() throws IOException, ParserException { diff --git a/tests/src/cgeo/geocaching/files/GPXImporterTest.java b/tests/src/cgeo/geocaching/files/GPXImporterTest.java index 8f5d821..ee42d23 100644 --- a/tests/src/cgeo/geocaching/files/GPXImporterTest.java +++ b/tests/src/cgeo/geocaching/files/GPXImporterTest.java @@ -80,6 +80,29 @@ public class GPXImporterTest extends AbstractResourceInstrumentationTestCase { assertTrue(cache.getWaypoints().isEmpty()); } + public void testImportOcGpx() throws IOException { + final String geocode = "OCDDD2"; + removeCacheCompletely(geocode); + final File ocddd2 = new File(tempDir, "ocddd2.gpx"); + copyResourceToFile(R.raw.ocddd2, ocddd2); + + final GPXImporter.ImportGpxFileThread importThread = new GPXImporter.ImportGpxFileThread(ocddd2, listId, importStepHandler, progressHandler); + runImportThread(importThread); + + assertEquals(4, importStepHandler.messages.size()); + final Iterator<Message> iMsg = importStepHandler.messages.iterator(); + assertEquals(GPXImporter.IMPORT_STEP_START, iMsg.next().what); + assertEquals(GPXImporter.IMPORT_STEP_READ_FILE, iMsg.next().what); + assertEquals(GPXImporter.IMPORT_STEP_STORE_STATIC_MAPS, iMsg.next().what); + assertEquals(GPXImporter.IMPORT_STEP_FINISHED, iMsg.next().what); + final SearchResult search = (SearchResult) importStepHandler.messages.get(3).obj; + assertEquals(Collections.singletonList(geocode), new ArrayList<String>(search.getGeocodes())); + final Geocache cache = DataStore.loadCache(geocode, LoadFlags.LOAD_CACHE_OR_DB); + assertCacheProperties(cache); + + assertEquals("Incorrect number of waypoints imported", 4, cache.getWaypoints().size()); + } + private void runImportThread(GPXImporter.ImportThread importThread) { importThread.start(); try { |