diff --git a/src/de/schildbach/pte/VbbProvider.java b/src/de/schildbach/pte/VbbProvider.java
index dc736124..bcff849b 100644
--- a/src/de/schildbach/pte/VbbProvider.java
+++ b/src/de/schildbach/pte/VbbProvider.java
@@ -306,7 +306,7 @@ public final class VbbProvider implements NetworkProvider
+ "(\\d+) Min\\.[\n\\s]?" // footway
+ "Fussweg\n?" //
+ ".*?(?:\n?" // arrivalId
- + "(.*?)|(\\w.*?)).*?" // arrival
+ + "(.*?)|(\\w.*?)|(.*?)).*?" // arrival
+ ").*?", Pattern.DOTALL);
public GetConnectionDetailsResult getConnectionDetails(final String uri) throws IOException
@@ -387,7 +387,7 @@ public final class VbbProvider implements NetworkProvider
{
final int arrivalId = mDetFine.group(12) != null ? Integer.parseInt(mDetFine.group(12)) : 0;
- final String arrival = ParserUtils.resolveEntities(selectNotNull(mDetFine.group(13), mDetFine.group(14)));
+ final String arrival = ParserUtils.resolveEntities(selectNotNull(mDetFine.group(13), mDetFine.group(14), mDetFine.group(15)));
if (parts.size() > 0 && parts.get(parts.size() - 1) instanceof Connection.Footway)
{
diff --git a/test/de/schildbach/pte/VbbProviderTest.java b/test/de/schildbach/pte/VbbProviderTest.java
index 5b92901c..135b84bf 100644
--- a/test/de/schildbach/pte/VbbProviderTest.java
+++ b/test/de/schildbach/pte/VbbProviderTest.java
@@ -29,14 +29,7 @@ import org.junit.Test;
public class VbbProviderTest
{
@Test
- public void fusswegWithSpace()
- {
- assertFineConnectionDetails("6 Min. Fussweg
"
- + "S Messe Nord/ICC (Berlin)
");
- }
-
- @Test
- public void fussweg()
+ public void footwayWithLink()
{
assertFineConnectionDetails("10405 Bln Pankow, Christburger Str. 123\n"
+ "
\n"
@@ -44,7 +37,32 @@ public class VbbProviderTest
+ "Fussweg\n"
+ "
\n"
+ "\n"
- + "Prenzlauer Allee/Danziger Str. (Berlin)\n" + "\n" + "
");
+ + "Prenzlauer Allee/Danziger Str. (Berlin)\n" //
+ + "\n" //
+ + "
");
+ }
+
+ @Test
+ public void footwayWithoutLink()
+ {
+ assertFineConnectionDetails("18 Min.\n" //
+ + "Fussweg\n" //
+ + "
\n" //
+ + "Berlin, Deutschlandhalle\n" //
+ + "
Messedamm 26; 14055 Berlin\n" //
+ + "
"); //
+ }
+
+ @Test
+ public void footwayStripped()
+ {
+ assertFineConnectionDetails("6 Min. " //
+ + "Fussweg" //
+ + "
" //
+ + "" //
+ + "S Messe Nord/ICC (Berlin) "//
+ + "" //
+ + "
");
}
@Test