11/*
2- * Copyright 2002-2017 the original author or authors.
2+ * Copyright 2002-2018 the original author or authors.
33 *
44 * Licensed under the Apache License, Version 2.0 (the "License");
55 * you may not use this file except in compliance with the License.
@@ -128,7 +128,7 @@ public void fromOpaqueUri() throws URISyntaxException {
128128 assertEquals ("Invalid result URI" , uri , result .toUri ());
129129 }
130130
131- @ Test // SPR-9317
131+ @ Test // SPR-9317
132132 public void fromUriEncodedQuery () throws URISyntaxException {
133133 URI uri = new URI ("http://www.example.org/?param=aGVsbG9Xb3JsZA%3D%3D" );
134134 String fromUri = UriComponentsBuilder .fromUri (uri ).build ().getQueryParams ().get ("param" ).get (0 );
@@ -184,7 +184,7 @@ public void fromUriString() {
184184 assertEquals ("28" , result .getFragment ());
185185 }
186186
187- @ Test // SPR-9832
187+ @ Test // SPR-9832
188188 public void fromUriStringQueryParamWithReservedCharInValue () throws URISyntaxException {
189189 String uri = "http://www.google.com/ig/calculator?q=1USD=?EUR" ;
190190 UriComponents result = UriComponentsBuilder .fromUriString (uri ).build ();
@@ -193,15 +193,15 @@ public void fromUriStringQueryParamWithReservedCharInValue() throws URISyntaxExc
193193 assertEquals ("1USD=?EUR" , result .getQueryParams ().getFirst ("q" ));
194194 }
195195
196- @ Test // SPR-14828
196+ @ Test // SPR-14828
197197 public void fromUriStringQueryParamEncodedAndContainingPlus () throws Exception {
198198 String httpUrl = "http://localhost:8080/test/print?value=%EA%B0%80+%EB%82%98" ;
199199 URI uri = UriComponentsBuilder .fromHttpUrl (httpUrl ).build (true ).toUri ();
200200
201201 assertEquals (httpUrl , uri .toString ());
202202 }
203203
204- @ Test // SPR-10779
204+ @ Test // SPR-10779
205205 public void fromHttpUrlStringCaseInsesitiveScheme () {
206206 assertEquals ("http" , UriComponentsBuilder .fromHttpUrl ("HTTP://www.google.com" ).build ().getScheme ());
207207 assertEquals ("https" , UriComponentsBuilder .fromHttpUrl ("HTTPS://www.google.com" ).build ().getScheme ());
@@ -214,8 +214,8 @@ public void fromHttpUrlStringInvalidIPv6Host() throws URISyntaxException {
214214 UriComponentsBuilder .fromHttpUrl ("http://[1abc:2abc:3abc::5ABC:6abc:8080/resource" ).build ().encode ();
215215 }
216216
217- @ Test // SPR-10539
218- public void fromUriStringIPv6Host () throws URISyntaxException {
217+ @ Test // SPR-10539
218+ public void fromUriStringIPv6Host () {
219219 UriComponents result = UriComponentsBuilder
220220 .fromUriString ("http://[1abc:2abc:3abc::5ABC:6abc]:8080/resource" ).build ().encode ();
221221 assertEquals ("[1abc:2abc:3abc::5ABC:6abc]" , result .getHost ());
@@ -229,7 +229,7 @@ public void fromUriStringIPv6Host() throws URISyntaxException {
229229 assertEquals ("[::192.168.1.1]" , resultIPv4compatible .getHost ());
230230 }
231231
232- @ Test // SPR-11970
232+ @ Test // SPR-11970
233233 public void fromUriStringNoPathWithReservedCharInQuery () {
234234 UriComponents result = UriComponentsBuilder .fromUriString ("http://example.com?foo=bar@baz" ).build ();
235235 assertTrue (StringUtils .isEmpty (result .getUserInfo ()));
@@ -239,7 +239,7 @@ public void fromUriStringNoPathWithReservedCharInQuery() {
239239 }
240240
241241 @ Test
242- public void fromHttpRequest () throws URISyntaxException {
242+ public void fromHttpRequest () {
243243 MockHttpServletRequest request = new MockHttpServletRequest ();
244244 request .setScheme ("http" );
245245 request .setServerName ("localhost" );
@@ -255,7 +255,7 @@ public void fromHttpRequest() throws URISyntaxException {
255255 assertEquals ("a=1" , result .getQuery ());
256256 }
257257
258- @ Test // SPR-12771
258+ @ Test // SPR-12771
259259 public void fromHttpRequestResetsPortBeforeSettingIt () throws Exception {
260260 MockHttpServletRequest request = new MockHttpServletRequest ();
261261 request .addHeader ("X-Forwarded-Proto" , "https" );
@@ -275,7 +275,7 @@ public void fromHttpRequestResetsPortBeforeSettingIt() throws Exception {
275275 assertEquals ("/rest/mobile/users/1" , result .getPath ());
276276 }
277277
278- @ Test // SPR-14761
278+ @ Test // SPR-14761
279279 public void fromHttpRequestWithForwardedIPv4Host () {
280280 MockHttpServletRequest request = new MockHttpServletRequest ();
281281 request .setScheme ("http" );
@@ -290,7 +290,7 @@ public void fromHttpRequestWithForwardedIPv4Host() {
290290 assertEquals ("http://192.168.0.1/mvc-showcase" , result .toString ());
291291 }
292292
293- @ Test // SPR-14761
293+ @ Test // SPR-14761
294294 public void fromHttpRequestWithForwardedIPv6 () {
295295 MockHttpServletRequest request = new MockHttpServletRequest ();
296296 request .setScheme ("http" );
@@ -305,7 +305,7 @@ public void fromHttpRequestWithForwardedIPv6() {
305305 assertEquals ("http://[1abc:2abc:3abc::5ABC:6abc]/mvc-showcase" , result .toString ());
306306 }
307307
308- @ Test // SPR-14761
308+ @ Test // SPR-14761
309309 public void fromHttpRequestWithForwardedIPv6Host () {
310310 MockHttpServletRequest request = new MockHttpServletRequest ();
311311 request .setScheme ("http" );
@@ -320,7 +320,7 @@ public void fromHttpRequestWithForwardedIPv6Host() {
320320 assertEquals ("http://[1abc:2abc:3abc::5ABC:6abc]/mvc-showcase" , result .toString ());
321321 }
322322
323- @ Test // SPR-14761
323+ @ Test // SPR-14761
324324 public void fromHttpRequestWithForwardedIPv6HostAndPort () {
325325 MockHttpServletRequest request = new MockHttpServletRequest ();
326326 request .setScheme ("http" );
@@ -335,7 +335,6 @@ public void fromHttpRequestWithForwardedIPv6HostAndPort() {
335335 assertEquals ("http://[1abc:2abc:3abc::5ABC:6abc]:8080/mvc-showcase" , result .toString ());
336336 }
337337
338-
339338 @ Test
340339 public void fromHttpRequestWithForwardedHost () {
341340 MockHttpServletRequest request = new MockHttpServletRequest ();
@@ -351,7 +350,7 @@ public void fromHttpRequestWithForwardedHost() {
351350 assertEquals ("http://anotherHost/mvc-showcase" , result .toString ());
352351 }
353352
354- @ Test // SPR-10701
353+ @ Test // SPR-10701
355354 public void fromHttpRequestWithForwardedHostIncludingPort () {
356355 MockHttpServletRequest request = new MockHttpServletRequest ();
357356 request .setScheme ("http" );
@@ -367,7 +366,7 @@ public void fromHttpRequestWithForwardedHostIncludingPort() {
367366 assertEquals (443 , result .getPort ());
368367 }
369368
370- @ Test // SPR-11140
369+ @ Test // SPR-11140
371370 public void fromHttpRequestWithForwardedHostMultiValuedHeader () {
372371 MockHttpServletRequest request = new MockHttpServletRequest ();
373372 request .setScheme ("http" );
@@ -382,7 +381,7 @@ public void fromHttpRequestWithForwardedHostMultiValuedHeader() {
382381 assertEquals (-1 , result .getPort ());
383382 }
384383
385- @ Test // SPR-11855
384+ @ Test // SPR-11855
386385 public void fromHttpRequestWithForwardedHostAndPort () {
387386 MockHttpServletRequest request = new MockHttpServletRequest ();
388387 request .setScheme ("http" );
@@ -398,7 +397,7 @@ public void fromHttpRequestWithForwardedHostAndPort() {
398397 assertEquals (9090 , result .getPort ());
399398 }
400399
401- @ Test // SPR-11872
400+ @ Test // SPR-11872
402401 public void fromHttpRequestWithForwardedHostWithDefaultPort () {
403402 MockHttpServletRequest request = new MockHttpServletRequest ();
404403 request .setScheme ("http" );
@@ -413,7 +412,7 @@ public void fromHttpRequestWithForwardedHostWithDefaultPort() {
413412 assertEquals (-1 , result .getPort ());
414413 }
415414
416- @ Test // SPR-16262
415+ @ Test // SPR-16262
417416 public void fromHttpRequestWithForwardedProtoWithDefaultPort () {
418417 MockHttpServletRequest request = new MockHttpServletRequest ();
419418 request .setScheme ("http" );
@@ -447,7 +446,7 @@ public void fromHttpRequestWithForwardedHostWithForwardedScheme() {
447446 assertEquals (-1 , result .getPort ());
448447 }
449448
450- @ Test // SPR-12771
449+ @ Test // SPR-12771
451450 public void fromHttpRequestWithForwardedProtoAndDefaultPort () {
452451 MockHttpServletRequest request = new MockHttpServletRequest ();
453452 request .setScheme ("http" );
@@ -464,7 +463,7 @@ public void fromHttpRequestWithForwardedProtoAndDefaultPort() {
464463 assertEquals ("https://84.198.58.199/mvc-showcase" , result .toString ());
465464 }
466465
467- @ Test // SPR-12813
466+ @ Test // SPR-12813
468467 public void fromHttpRequestWithForwardedPortMultiValueHeader () {
469468 MockHttpServletRequest request = new MockHttpServletRequest ();
470469 request .setScheme ("http" );
@@ -480,7 +479,7 @@ public void fromHttpRequestWithForwardedPortMultiValueHeader() {
480479 assertEquals ("http://a.example.org/mvc-showcase" , result .toString ());
481480 }
482481
483- @ Test // SPR-12816
482+ @ Test // SPR-12816
484483 public void fromHttpRequestWithForwardedProtoMultiValueHeader () {
485484 MockHttpServletRequest request = new MockHttpServletRequest ();
486485 request .setScheme ("http" );
@@ -497,7 +496,7 @@ public void fromHttpRequestWithForwardedProtoMultiValueHeader() {
497496 assertEquals ("https://a.example.org/mvc-showcase" , result .toString ());
498497 }
499498
500- @ Test // SPR-12742
499+ @ Test // SPR-12742
501500 public void fromHttpRequestWithTrailingSlash () throws Exception {
502501 UriComponents before = UriComponentsBuilder .fromPath ("/foo/" ).build ();
503502 UriComponents after = UriComponentsBuilder .newInstance ().uriComponents (before ).build ();
@@ -567,7 +566,7 @@ public void pathSegmentsSomeEmpty() {
567566 assertEquals (Arrays .asList ("foo" , "bar" ), result .getPathSegments ());
568567 }
569568
570- @ Test // SPR-12398
569+ @ Test // SPR-12398
571570 public void pathWithDuplicateSlashes () throws URISyntaxException {
572571 UriComponents uriComponents = UriComponentsBuilder .fromPath ("/foo/////////bar" ).build ();
573572 assertEquals ("/foo/bar" , uriComponents .getPath ());
@@ -761,7 +760,7 @@ public void testClone() throws URISyntaxException {
761760 assertEquals ("f2" , result2 .getFragment ());
762761 }
763762
764- @ Test // SPR-11856
763+ @ Test // SPR-11856
765764 public void fromHttpRequestForwardedHeader () throws Exception {
766765 MockHttpServletRequest request = new MockHttpServletRequest ();
767766 request .addHeader ("Forwarded" , "proto=https; host=84.198.58.199" );
@@ -900,4 +899,14 @@ public void fromHttpRequestForwardedHeaderWithProtoAndServerPort() throws Except
900899 assertEquals (-1 , result .getPort ());
901900 assertEquals ("https://example.com/rest/mobile/users/1" , result .toUriString ());
902901 }
902+
903+ @ Test // SPR-16364
904+ public void uriComponentsNotEqualAfterNormalization () {
905+ UriComponents uri1 = UriComponentsBuilder .fromUriString ("http://test.com" ).build ().normalize ();
906+ UriComponents uri2 = UriComponentsBuilder .fromUriString ("http://test.com/" ).build ();
907+ assertTrue (uri1 .getPathSegments ().isEmpty ());
908+ assertTrue (uri2 .getPathSegments ().isEmpty ());
909+ assertNotEquals (uri1 , uri2 );
910+ }
911+
903912}
0 commit comments