1
1
/*
2
- * Copyright 2002-2018 the original author or authors.
2
+ * Copyright 2002-2020 the original author or authors.
3
3
*
4
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
5
* you may not use this file except in compliance with the License.
@@ -737,30 +737,32 @@ public void parsesEmptyUri() {
737
737
assertThat (components .toString (), equalTo ("" ));
738
738
}
739
739
740
- @ Test
740
+ @ Test // gh-25243
741
741
public void testCloneAndMerge () {
742
742
UriComponentsBuilder builder1 = UriComponentsBuilder .newInstance ();
743
- builder1 .scheme ("http" ).host ("e1.com" ).path ("/p1" ).pathSegment ("ps1" ).queryParam ("q1" ).fragment ("f1" ).encode ();
743
+ builder1 .scheme ("http" ).host ("e1.com" ).path ("/p1" ).pathSegment ("ps1" ).queryParam ("q1" , "x" ).fragment ("f1" ).encode ();
744
744
745
- UriComponentsBuilder builder2 = ( UriComponentsBuilder ) builder1 .clone ();
745
+ UriComponentsBuilder builder2 = builder1 .cloneBuilder ();
746
746
builder2 .scheme ("https" ).host ("e2.com" ).path ("p2" ).pathSegment ("{ps2}" ).queryParam ("q2" ).fragment ("f2" );
747
747
748
+ builder1 .queryParam ("q1" , "y" ); // one more entry for an existing parameter
749
+
748
750
UriComponents result1 = builder1 .build ();
749
751
assertEquals ("http" , result1 .getScheme ());
750
752
assertEquals ("e1.com" , result1 .getHost ());
751
753
assertEquals ("/p1/ps1" , result1 .getPath ());
752
- assertEquals ("q1" , result1 .getQuery ());
754
+ assertEquals ("q1=x&q1=y " , result1 .getQuery ());
753
755
assertEquals ("f1" , result1 .getFragment ());
754
756
755
757
UriComponents result2 = builder2 .buildAndExpand ("ps2;a" );
756
758
assertEquals ("https" , result2 .getScheme ());
757
759
assertEquals ("e2.com" , result2 .getHost ());
758
760
assertEquals ("/p1/ps1/p2/ps2%3Ba" , result2 .getPath ());
759
- assertEquals ("q1&q2" , result2 .getQuery ());
761
+ assertEquals ("q1=x &q2" , result2 .getQuery ());
760
762
assertEquals ("f2" , result2 .getFragment ());
761
763
}
762
764
763
- @ Test // gh-24772
765
+ @ Test // gh-24772
764
766
public void testDeepClone () {
765
767
HashMap <String , Object > vars = new HashMap <>();
766
768
vars .put ("ps1" , "foo" );
@@ -770,7 +772,7 @@ public void testDeepClone() {
770
772
builder1 .scheme ("http" ).host ("e1.com" ).userInfo ("user:pwd" ).path ("/p1" ).pathSegment ("{ps1}" )
771
773
.pathSegment ("{ps2}" ).queryParam ("q1" ).fragment ("f1" ).uriVariables (vars ).encode ();
772
774
773
- UriComponentsBuilder builder2 = ( UriComponentsBuilder ) builder1 .clone ();
775
+ UriComponentsBuilder builder2 = builder1 .cloneBuilder ();
774
776
775
777
UriComponents result1 = builder1 .build ();
776
778
assertEquals ("http" , result1 .getScheme ());
0 commit comments