@ -26,6 +26,7 @@ import org.junit.Test;
import org.springframework.util.LinkedMultiValueMap ;
import org.springframework.util.LinkedMultiValueMap ;
import org.springframework.util.MultiValueMap ;
import org.springframework.util.MultiValueMap ;
import org.springframework.util.StringUtils ;
import static org.hamcrest.Matchers.* ;
import static org.hamcrest.Matchers.* ;
import static org.junit.Assert.* ;
import static org.junit.Assert.* ;
@ -216,6 +217,17 @@ public class UriComponentsBuilderTests {
assertEquals ( "[::192.168.1.1]" , resultIPv4compatible . getHost ( ) ) ;
assertEquals ( "[::192.168.1.1]" , resultIPv4compatible . getHost ( ) ) ;
}
}
// SPR-11970
@Test
public void fromUriStringNoPathWithReservedCharInQuery ( ) {
UriComponents result = UriComponentsBuilder . fromUriString ( "http://example.com?foo=bar@baz" ) . build ( ) ;
assertTrue ( StringUtils . isEmpty ( result . getUserInfo ( ) ) ) ;
assertEquals ( "example.com" , result . getHost ( ) ) ;
assertTrue ( result . getQueryParams ( ) . containsKey ( "foo" ) ) ;
assertEquals ( "bar@baz" , result . getQueryParams ( ) . getFirst ( "foo" ) ) ;
}
@Test
@Test
public void path ( ) throws URISyntaxException {
public void path ( ) throws URISyntaxException {
UriComponentsBuilder builder = UriComponentsBuilder . fromPath ( "/foo/bar" ) ;
UriComponentsBuilder builder = UriComponentsBuilder . fromPath ( "/foo/bar" ) ;