Showing
2 changed files
with
20 additions
and
16 deletions
| ... | ... | @@ -6,17 +6,18 @@ import java.net.URISyntaxException; |
| 6 | 6 | public class URIUtils { |
| 7 | 7 | // -------------------------- STATIC METHODS -------------------------- |
| 8 | 8 | |
| 9 | - public static URI buildURI(URI base, String path) | |
| 10 | - { | |
| 11 | - return buildURI(base, path, null); | |
| 12 | - } | |
| 9 | + public static URI buildURI(URI base, String path) | |
| 10 | + { | |
| 11 | + return buildURI(base, path, null); | |
| 12 | + } | |
| 13 | 13 | |
| 14 | - public static URI buildURI(URI base, String path, String query) | |
| 15 | - { | |
| 16 | - try { | |
| 17 | - return new URI(base.getScheme(), base.getHost(), base.getPath().replaceAll("/+$", "") + path, query, null); | |
| 18 | - } catch (URISyntaxException e) { | |
| 19 | - throw new RuntimeException(e); | |
| 14 | + public static URI buildURI(URI base, String path, String query) | |
| 15 | + { | |
| 16 | + try { | |
| 17 | + return new URI(base.getScheme(), base.getUserInfo(), base.getHost(), base.getPort(), base.getPath().replaceAll("/+$", "") + path, query, | |
| 18 | + base.getFragment()); | |
| 19 | + } catch (URISyntaxException e) { | |
| 20 | + throw new RuntimeException(e); | |
| 21 | + } | |
| 20 | 22 | } |
| 21 | - } | |
| 22 | 23 | } | ... | ... |
| ... | ... | @@ -17,16 +17,19 @@ public class URIUtilsTest { |
| 17 | 17 | public void buildURI() throws URISyntaxException |
| 18 | 18 | { |
| 19 | 19 | // Given |
| 20 | - final URI base = new URI("http://localhost:8080/youtrack/"); | |
| 20 | + final URI baseA = new URI("http://localhost:8080/youtrack/"); | |
| 21 | + final URI baseB = new URI("http://localhost/youtrack/"); | |
| 21 | 22 | final String pathA = "/rest/admin/bundle/QA note types"; |
| 22 | 23 | final String queryA = "q=" + Filter.stateFilter(StateValues.NotWontFix).maxResults(20); |
| 23 | 24 | |
| 24 | 25 | // When |
| 25 | - final URI uriA = URIUtils.buildURI(base, pathA); | |
| 26 | - final URI uriB = URIUtils.buildURI(base, pathA, queryA); | |
| 26 | + final URI uriA = URIUtils.buildURI(baseA, pathA); | |
| 27 | + final URI uriB = URIUtils.buildURI(baseA, pathA, queryA); | |
| 28 | + final URI uriC = URIUtils.buildURI(baseB, pathA, queryA); | |
| 27 | 29 | |
| 28 | 30 | // Then |
| 29 | - assertEquals("http://localhost/youtrack/rest/admin/bundle/QA%20note%20types", uriA.toString()); | |
| 30 | - assertEquals("http://localhost/youtrack/rest/admin/bundle/QA%20note%20types?q=state:-%7BWon't%20fix%7D&max=20", uriB.toString()); | |
| 31 | + assertEquals("http://localhost:8080/youtrack/rest/admin/bundle/QA%20note%20types", uriA.toString()); | |
| 32 | + assertEquals("http://localhost:8080/youtrack/rest/admin/bundle/QA%20note%20types?q=state:-%7BWon't%20fix%7D&max=20", uriB.toString()); | |
| 33 | + assertEquals("http://localhost/youtrack/rest/admin/bundle/QA%20note%20types?q=state:-%7BWon't%20fix%7D&max=20", uriC.toString()); | |
| 31 | 34 | } |
| 32 | 35 | } | ... | ... |
Please
register
or
login
to post a comment