aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2014-02-28 22:16:13 +0100
committerSamuel Tardieu <sam@rfc1149.net>2014-02-28 22:16:13 +0100
commit8df3d95d50180e8130342684afadb5d8d95616ac (patch)
treee2b2d1d60cb895bcaeedf835d6885a19f716c180 /tests
parentce4c2d36b88e126aa245f7549a9a873e761e5c57 (diff)
downloadcgeo-8df3d95d50180e8130342684afadb5d8d95616ac.zip
cgeo-8df3d95d50180e8130342684afadb5d8d95616ac.tar.gz
cgeo-8df3d95d50180e8130342684afadb5d8d95616ac.tar.bz2
fix #3594: personal note parsing is too loose
Diffstat (limited to 'tests')
-rw-r--r--tests/src/cgeo/geocaching/WaypointTest.java34
-rw-r--r--tests/src/cgeo/geocaching/geopoint/GeoPointParserTest.java2
2 files changed, 35 insertions, 1 deletions
diff --git a/tests/src/cgeo/geocaching/WaypointTest.java b/tests/src/cgeo/geocaching/WaypointTest.java
index 3ddc32c..9868f81 100644
--- a/tests/src/cgeo/geocaching/WaypointTest.java
+++ b/tests/src/cgeo/geocaching/WaypointTest.java
@@ -1,9 +1,12 @@
package cgeo.geocaching;
import cgeo.geocaching.enumerations.WaypointType;
+import cgeo.geocaching.geopoint.Geopoint;
import android.test.AndroidTestCase;
+import java.util.Collection;
+
public class WaypointTest extends AndroidTestCase {
public static void testOrder() {
@@ -42,4 +45,35 @@ public class WaypointTest extends AndroidTestCase {
waypoint.setGeocode("p1");
assertEquals("P1", waypoint.getGeocode());
}
+
+ public static void testParseNoWaypointFromNote() {
+ final String note = "1 T 126\n" +
+ "2 B 12\n" +
+ "3 S 630\n" +
+ "4c P 51\n" +
+ "L 1\n" +
+ "E 14\n" +
+ "J 11\n" +
+ "U 12\n" +
+ "D 1\n" +
+ "M 7\n" +
+ "N 5\n" +
+ "5 IFG 257";
+ assertTrue(Waypoint.parseWaypointsFromNote(note).isEmpty());
+ }
+
+ public static void testParseWaypointFromNote() {
+ final String note = "Dummy note\nn 45° 3.5 e 27° 7.5\nNothing else";
+ final Collection<Waypoint> waypoints = Waypoint.parseWaypointsFromNote(note);
+ assertEquals(1, waypoints.size());
+ final Geopoint coords = waypoints.iterator().next().getCoords();
+ assertEquals(45, coords.getLatDeg());
+ assertEquals(3.5, coords.getLatMinRaw());
+ assertEquals(27, coords.getLonDeg());
+ assertEquals(7.5, coords.getLonMinRaw());
+ final String note2 = "Waypoint on two lines\nN 45°3.5\nE 27°7.5\nNothing else";
+ final Collection<Waypoint> waypoints2 = Waypoint.parseWaypointsFromNote(note2);
+ assertEquals(1, waypoints2.size());
+ assertEquals(coords, waypoints2.iterator().next().getCoords());
+ }
}
diff --git a/tests/src/cgeo/geocaching/geopoint/GeoPointParserTest.java b/tests/src/cgeo/geocaching/geopoint/GeoPointParserTest.java
index 1de2e26..c471dfa 100644
--- a/tests/src/cgeo/geocaching/geopoint/GeoPointParserTest.java
+++ b/tests/src/cgeo/geocaching/geopoint/GeoPointParserTest.java
@@ -102,7 +102,7 @@ public class GeoPointParserTest extends AndroidTestCase {
}
public static void testMeridian() {
- assertEquals(new Geopoint(123, 0), GeopointParser.parse("N 123° 00.000 00° 00.000"));
+ assertEquals(new Geopoint(23, 0), GeopointParser.parse("N 23° 00.000 00° 00.000"));
}
public static void testEquatorMeridian() {