diff --git a/src/de/schildbach/pte/BahnProvider.java b/src/de/schildbach/pte/BahnProvider.java
index 97f1ec35..1d7c2cf4 100644
--- a/src/de/schildbach/pte/BahnProvider.java
+++ b/src/de/schildbach/pte/BahnProvider.java
@@ -458,6 +458,7 @@ public final class BahnProvider implements NetworkProvider
+ "(?:, ([^<]*))?" // message
+ "(?:(?:, )?(?:heute )?(Gl\\. " + ParserUtils.P_PLATFORM + ")(?:\\s*)?)?" // position
+ "(?:,
]*>[^<]*)?" // (ersatzzug message)
+ + "(?:,
[^<]*]*>[^<]*)?" // (ersatzzug message)
, Pattern.DOTALL);
private static final Pattern P_DEPARTURES_URI_STATION_ID = Pattern.compile("input=(\\d+)");
diff --git a/test/de/schildbach/pte/BahnProviderTest.java b/test/de/schildbach/pte/BahnProviderTest.java
index 1c935c94..786f9722 100644
--- a/test/de/schildbach/pte/BahnProviderTest.java
+++ b/test/de/schildbach/pte/BahnProviderTest.java
@@ -66,6 +66,7 @@ public class BahnProviderTest
+ "
\n" //
+ "21:58 pünktl., Gl. 13");
+ assertNotNull(m.group(4)); // onTime
assertNotNull(m.group(7)); // position
}
@@ -81,6 +82,7 @@ public class BahnProviderTest
+ "
\n" //
+ "07:02 ca. +5, Fährt heute nur bis Düsseldorf Hbf, Gl. 10");
+ assertNotNull(m.group(5)); // delay
assertNotNull(m.group(6)); // message
assertNotNull(m.group(7)); // position
}
@@ -97,6 +99,7 @@ public class BahnProviderTest
+ "
\n" //
+ "17:10 pünktl., heute Gl. 7 ");
+ assertNotNull(m.group(4)); // onTime
assertNotNull(m.group(7)); // position
}
@@ -112,6 +115,7 @@ public class BahnProviderTest
+ "
\n" //
+ "19:57 pünktl., Änderung im Zuglauf!, heute Gl. 7 ");
+ assertNotNull(m.group(4)); // onTime
assertNotNull(m.group(6)); // message
assertNotNull(m.group(7)); // position
}
@@ -162,6 +166,22 @@ public class BahnProviderTest
assertNotNull(m.group(7)); // position
}
+ @Test
+ public void departureWithErsatzzugMessage()
+ {
+ final Matcher m = assertFineDepartures("" //
+ + "\n" //
+ + "RB 93328\n" //
+ + "\n" //
+ + ">>\n" //
+ + "München Hbf Gl.27-36\n" //
+ + "
\n" //
+ + "14:49 pünktl., Gl. 1,
Ersatzzug fürRB 5416");
+
+ assertNotNull(m.group(4)); // onTime
+ assertNotNull(m.group(7)); // position
+ }
+
private void assertFineConnectionDetails(String s)
{
Matcher m = BahnProvider.P_CONNECTION_DETAILS_FINE.matcher(s);
@@ -175,7 +195,7 @@ public class BahnProviderTest
Matcher m = BahnProvider.P_DEPARTURES_FINE.matcher(s);
assertTrue(m.matches());
- ParserUtils.printGroups(m);
+ // ParserUtils.printGroups(m);
assertNotNull(m.group(1)); // line
assertNotNull(m.group(2)); // destination