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