@@ -918,30 +918,32 @@ void parsesEmptyUri() {
918
918
assertThat (components .toString ()).isEqualTo ("" );
919
919
}
920
920
921
- @ Test
921
+ @ Test // gh-25243
922
922
void testCloneAndMerge () {
923
923
UriComponentsBuilder builder1 = UriComponentsBuilder .newInstance ();
924
- builder1 .scheme ("http" ).host ("e1.com" ).path ("/p1" ).pathSegment ("ps1" ).queryParam ("q1" ).fragment ("f1" ).encode ();
924
+ builder1 .scheme ("http" ).host ("e1.com" ).path ("/p1" ).pathSegment ("ps1" ).queryParam ("q1" , "x" ).fragment ("f1" ).encode ();
925
925
926
- UriComponentsBuilder builder2 = ( UriComponentsBuilder ) builder1 .clone ();
926
+ UriComponentsBuilder builder2 = builder1 .cloneBuilder ();
927
927
builder2 .scheme ("https" ).host ("e2.com" ).path ("p2" ).pathSegment ("{ps2}" ).queryParam ("q2" ).fragment ("f2" );
928
928
929
+ builder1 .queryParam ("q1" , "y" ); // one more entry for an existing parameter
930
+
929
931
UriComponents result1 = builder1 .build ();
930
932
assertThat (result1 .getScheme ()).isEqualTo ("http" );
931
933
assertThat (result1 .getHost ()).isEqualTo ("e1.com" );
932
934
assertThat (result1 .getPath ()).isEqualTo ("/p1/ps1" );
933
- assertThat (result1 .getQuery ()).isEqualTo ("q1" );
935
+ assertThat (result1 .getQuery ()).isEqualTo ("q1=x&q1=y " );
934
936
assertThat (result1 .getFragment ()).isEqualTo ("f1" );
935
937
936
938
UriComponents result2 = builder2 .buildAndExpand ("ps2;a" );
937
939
assertThat (result2 .getScheme ()).isEqualTo ("https" );
938
940
assertThat (result2 .getHost ()).isEqualTo ("e2.com" );
939
941
assertThat (result2 .getPath ()).isEqualTo ("/p1/ps1/p2/ps2%3Ba" );
940
- assertThat (result2 .getQuery ()).isEqualTo ("q1&q2" );
942
+ assertThat (result2 .getQuery ()).isEqualTo ("q1=x &q2" );
941
943
assertThat (result2 .getFragment ()).isEqualTo ("f2" );
942
944
}
943
945
944
- @ Test // gh-24772
946
+ @ Test // gh-24772
945
947
void testDeepClone () {
946
948
HashMap <String , Object > vars = new HashMap <>();
947
949
vars .put ("ps1" , "foo" );
@@ -951,7 +953,7 @@ void testDeepClone() {
951
953
builder1 .scheme ("http" ).host ("e1.com" ).userInfo ("user:pwd" ).path ("/p1" ).pathSegment ("{ps1}" )
952
954
.pathSegment ("{ps2}" ).queryParam ("q1" ).fragment ("f1" ).uriVariables (vars ).encode ();
953
955
954
- UriComponentsBuilder builder2 = ( UriComponentsBuilder ) builder1 .clone ();
956
+ UriComponentsBuilder builder2 = builder1 .cloneBuilder ();
955
957
956
958
UriComponents result1 = builder1 .build ();
957
959
assertThat (result1 .getScheme ()).isEqualTo ("http" );
0 commit comments