aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorStephan Merker <merker.stephan@googlemail.com>2011-11-13 22:15:45 +0100
committerStephan Merker <merker.stephan@googlemail.com>2011-11-13 22:15:45 +0100
commit02160d42a27c5d5f78057d98960f007ab2f83090 (patch)
treed56334a81933806afe4cd7ce323796d1e0dd9bf3 /tests
parent18954b5d86fe2e860d0a410b711e7d0610f5803b (diff)
downloadcgeo-02160d42a27c5d5f78057d98960f007ab2f83090.zip
cgeo-02160d42a27c5d5f78057d98960f007ab2f83090.tar.gz
cgeo-02160d42a27c5d5f78057d98960f007ab2f83090.tar.bz2
import zipped GPX files (as send by pocket queries)
- accepts zip files named like 123467.zip - imports cache and waypoint files contained in zip
Diffstat (limited to 'tests')
-rw-r--r--tests/res/raw/pq7545915.zipbin0 -> 5086 bytes
-rw-r--r--tests/src/cgeo/geocaching/cgeogpxesTest.java5
-rw-r--r--tests/src/cgeo/geocaching/files/GPXImporterTest.java72
3 files changed, 65 insertions, 12 deletions
diff --git a/tests/res/raw/pq7545915.zip b/tests/res/raw/pq7545915.zip
new file mode 100644
index 0000000..e23751f
--- /dev/null
+++ b/tests/res/raw/pq7545915.zip
Binary files differ
diff --git a/tests/src/cgeo/geocaching/cgeogpxesTest.java b/tests/src/cgeo/geocaching/cgeogpxesTest.java
index bc0f99e..884bd03 100644
--- a/tests/src/cgeo/geocaching/cgeogpxesTest.java
+++ b/tests/src/cgeo/geocaching/cgeogpxesTest.java
@@ -15,12 +15,17 @@ public class cgeogpxesTest extends ActivityInstrumentationTestCase2<cgeogpxes> {
assertTrue(importGpxActivity.filenameBelongsToList(".gpx"));
assertTrue(importGpxActivity.filenameBelongsToList("1234567.loc"));
assertTrue(importGpxActivity.filenameBelongsToList("1234567.LOC"));
+ assertTrue(importGpxActivity.filenameBelongsToList("1234567.zip"));
+ assertTrue(importGpxActivity.filenameBelongsToList("1234567.ZIP"));
assertFalse(importGpxActivity.filenameBelongsToList("1234567.gpy"));
assertFalse(importGpxActivity.filenameBelongsToList("1234567.agpx"));
assertFalse(importGpxActivity.filenameBelongsToList("1234567"));
assertFalse(importGpxActivity.filenameBelongsToList(""));
assertFalse(importGpxActivity.filenameBelongsToList("gpx"));
+ assertFalse(importGpxActivity.filenameBelongsToList("test.zip"));
+ assertFalse(importGpxActivity.filenameBelongsToList("zip"));
+ assertFalse(importGpxActivity.filenameBelongsToList(".zip"));
assertFalse(importGpxActivity.filenameBelongsToList("1234567-wpts.gpx"));
}
diff --git a/tests/src/cgeo/geocaching/files/GPXImporterTest.java b/tests/src/cgeo/geocaching/files/GPXImporterTest.java
index d23521b..76648e6 100644
--- a/tests/src/cgeo/geocaching/files/GPXImporterTest.java
+++ b/tests/src/cgeo/geocaching/files/GPXImporterTest.java
@@ -21,18 +21,32 @@ public class GPXImporterTest extends AbstractResourceInstrumentationTestCase {
private int listId;
private File tempDir;
- public static void testGetWaypointsFileForGpx() {
- assertEquals(new File("1234567-wpts.gpx"), GPXImporter.getWaypointsFileForGpx(new File("1234567.gpx")));
- assertEquals(new File("/mnt/sdcard/1234567-wpts.gpx"), GPXImporter.getWaypointsFileForGpx(new File("/mnt/sdcard/1234567.gpx")));
- assertEquals(new File("/mnt/sdcard/1-wpts.gpx"), GPXImporter.getWaypointsFileForGpx(new File("/mnt/sdcard/1.gpx")));
- assertEquals(new File("/mnt/sd.card/1-wpts.gpx"), GPXImporter.getWaypointsFileForGpx(new File("/mnt/sd.card/1.gpx")));
- assertEquals(new File("1234567.9-wpts.gpx"), GPXImporter.getWaypointsFileForGpx(new File("1234567.9.gpx")));
- assertEquals(new File("1234567-wpts.gpx"), GPXImporter.getWaypointsFileForGpx(new File("1234567.GPX")));
- assertEquals(new File("gpx.gpx-wpts.gpx"), GPXImporter.getWaypointsFileForGpx(new File("gpx.gpx.gpx")));
- assertNull(GPXImporter.getWaypointsFileForGpx(new File("123.gpy")));
- assertNull(GPXImporter.getWaypointsFileForGpx(new File("gpx")));
- assertNull(GPXImporter.getWaypointsFileForGpx(new File(".gpx")));
- assertNull(GPXImporter.getWaypointsFileForGpx(new File("/mnt/sdcard/.gpx")));
+ public void testGetWaypointsFileNameForGpxFileName() {
+ assertEquals("1234567-wpts.gpx", GPXImporter.getWaypointsFileNameForGpxFileName("1234567.gpx"));
+ assertEquals("/mnt/sdcard/1234567-wpts.gpx", GPXImporter.getWaypointsFileNameForGpxFileName("/mnt/sdcard/1234567.gpx"));
+ assertEquals("/mnt/sdcard/1-wpts.gpx", GPXImporter.getWaypointsFileNameForGpxFileName("/mnt/sdcard/1.gpx"));
+ assertEquals("/mnt/sd.card/1-wpts.gpx", GPXImporter.getWaypointsFileNameForGpxFileName("/mnt/sd.card/1.gpx"));
+ assertEquals("1234567.9-wpts.gpx", GPXImporter.getWaypointsFileNameForGpxFileName("1234567.9.gpx"));
+ assertEquals("1234567-wpts.gpx", GPXImporter.getWaypointsFileNameForGpxFileName("1234567.GPX"));
+ assertEquals("gpx.gpx-wpts.gpx", GPXImporter.getWaypointsFileNameForGpxFileName("gpx.gpx.gpx"));
+ assertEquals("/mnt/sdcard/-wpts.gpx", GPXImporter.getWaypointsFileNameForGpxFileName("/mnt/sdcard/.gpx"));
+ assertNull(GPXImporter.getWaypointsFileNameForGpxFileName("123.gpy"));
+ assertNull(GPXImporter.getWaypointsFileNameForGpxFileName("gpx"));
+ assertNull(GPXImporter.getWaypointsFileNameForGpxFileName(".gpx"));
+ }
+
+ public void testGetGpxFileNameForZipFileName() {
+ assertEquals("1234567.gpx", GPXImporter.getGpxFileNameForZipFileName("1234567.zip"));
+ assertEquals("/mnt/sdcard/1234567.gpx", GPXImporter.getGpxFileNameForZipFileName("/mnt/sdcard/1234567.zip"));
+ assertEquals("1.gpx", GPXImporter.getGpxFileNameForZipFileName("1.zip"));
+ assertEquals("/mnt/sd.card/1.gpx", GPXImporter.getGpxFileNameForZipFileName("/mnt/sd.card/1.zip"));
+ assertEquals("1234567.9.gpx", GPXImporter.getGpxFileNameForZipFileName("1234567.9.zip"));
+ assertEquals("1234567.gpx", GPXImporter.getGpxFileNameForZipFileName("1234567.ZIP"));
+ assertEquals("zip.zip.gpx", GPXImporter.getGpxFileNameForZipFileName("zip.zip.zip"));
+ assertEquals("/mnt/sdcard/.gpx", GPXImporter.getGpxFileNameForZipFileName("/mnt/sdcard/.zip"));
+ assertNull(GPXImporter.getGpxFileNameForZipFileName("123.zap"));
+ assertNull(GPXImporter.getGpxFileNameForZipFileName("zip"));
+ assertNull(GPXImporter.getGpxFileNameForZipFileName(".zip"));
}
public void testImportGpx() throws IOException {
@@ -130,6 +144,40 @@ public class GPXImporterTest extends AbstractResourceInstrumentationTestCase {
assertEquals(GPXImporter.IMPORT_STEP_CANCELED, importStepHandler.messages.get(1).what);
}
+ public void testImportGpxZip() throws IOException {
+ File pq7545915 = new File(tempDir, "7545915.zip");
+ copyResourceToFile(R.raw.pq7545915, pq7545915);
+
+ GPXImporter.ImportGpxZipFileThread importThread = new GPXImporter.ImportGpxZipFileThread(pq7545915, listId, importStepHandler, progressHandler);
+ importThread.run();
+ importStepHandler.waitForCompletion();
+
+ assertEquals(4, importStepHandler.messages.size());
+ assertEquals(GPXImporter.IMPORT_STEP_READ_FILE, importStepHandler.messages.get(0).what);
+ assertEquals(GPXImporter.IMPORT_STEP_READ_WPT_FILE, importStepHandler.messages.get(1).what);
+ assertEquals(GPXImporter.IMPORT_STEP_STORE_CACHES, importStepHandler.messages.get(2).what);
+ assertEquals(GPXImporter.IMPORT_STEP_FINISHED, importStepHandler.messages.get(3).what);
+ cgSearch search = (cgSearch) importStepHandler.messages.get(3).obj;
+ assertEquals(Collections.singletonList("GC31J2H"), search.getGeocodes());
+
+ cgCache cache = cgeoapplication.getInstance().getCacheByGeocode("GC31J2H");
+ assertCacheProperties(cache);
+ assertEquals(1, cache.getWaypoints().size()); // this is the original pocket query result without test waypoint
+ }
+
+ public void testImportGpxZipErr() throws IOException {
+ // zip file name doesn't match name of gpx entry
+ File pq1 = new File(tempDir, "1.zip");
+ copyResourceToFile(R.raw.pq7545915, pq1);
+
+ GPXImporter.ImportGpxZipFileThread importThread = new GPXImporter.ImportGpxZipFileThread(pq1, listId, importStepHandler, progressHandler);
+ importThread.run();
+ importStepHandler.waitForCompletion();
+
+ assertEquals(1, importStepHandler.messages.size());
+ assertEquals(GPXImporter.IMPORT_STEP_FINISHED_WITH_ERROR, importStepHandler.messages.get(0).what);
+ }
+
static class TestHandler extends CancellableHandler {
private final List<Message> messages = new ArrayList<Message>();
private long lastMessage = System.currentTimeMillis();