Skip to content

Commit de6e87b

Browse files
authored
refactor RouteOptions.toUrl (#1314)
1 parent 7bc9a68 commit de6e87b

2 files changed

Lines changed: 26 additions & 2 deletions

File tree

services-directions-models/src/main/java/com/mapbox/api/directions/v5/models/RouteOptions.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -854,8 +854,14 @@ public static RouteOptions fromUrl(@NonNull URL url) {
854854
@NonNull
855855
public URL toUrl(@NonNull String accessToken) {
856856
StringBuilder sb = new StringBuilder()
857-
.append(baseUrl())
858-
.append("/directions/v5")
857+
.append(baseUrl());
858+
859+
Character lastBaseUrlChar = baseUrl().charAt(baseUrl().length() - 1);
860+
if (!lastBaseUrlChar.equals('/')) {
861+
sb.append('/');
862+
}
863+
864+
sb.append("directions/v5")
859865
.append(String.format("/%s", user()))
860866
.append(String.format("/%s", profile()))
861867
.append(String.format("/%s", coordinates()))

services-directions-models/src/test/java/com/mapbox/api/directions/v5/models/RouteOptionsTest.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -364,6 +364,24 @@ public void routeOptionsWithDefaults_toUrl() {
364364
assertEquals(expectedUrl, url.toString());
365365
}
366366

367+
@Test
368+
public void baseUrlWithLastSlash() {
369+
String expectedUrl = "https://mapbox.com/directions/v5/mapbox/driving/-122.4003312,37.7736941;-122.4187529,37.7689715?access_token=pk.token&geometries=polyline6";
370+
List<Point> coordinates = new ArrayList<>();
371+
coordinates.add(Point.fromLngLat(-122.4003312, 37.7736941));
372+
coordinates.add(Point.fromLngLat(-122.4187529, 37.7689715));
373+
374+
RouteOptions options = RouteOptions.builder()
375+
.baseUrl("https://mapbox.com/")
376+
.profile(DirectionsCriteria.PROFILE_DRIVING)
377+
.coordinatesList(coordinates)
378+
.build();
379+
380+
URL url = options.toUrl(ACCESS_TOKEN);
381+
382+
assertEquals(expectedUrl, url.toString());
383+
}
384+
367385
/**
368386
* Fills up all the options using string variants. Values need ot be equal to the ones in {@link #optionsJson}.
369387
*/

0 commit comments

Comments
 (0)