Skip to content

Commit 81c2f9f

Browse files
authored
Merge pull request #1240 from romeara/dev/romeara/oauth-param-to-ref
Add Overload to OAuthParameters.toReference which Accepts an Existing Reference
2 parents 0ce99ae + 91561b5 commit 81c2f9f

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

modules/org.restlet.ext.oauth/src/org/restlet/ext/oauth/OAuthParameters.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import java.util.logging.Logger;
3030

3131
import org.restlet.data.Form;
32+
import org.restlet.data.Parameter;
3233
import org.restlet.data.Reference;
3334
import org.restlet.ext.oauth.internal.Scopes;
3435
import org.restlet.representation.Representation;
@@ -118,6 +119,17 @@ public Reference toReference(String uri) {
118119
reference.setQuery(query);
119120
return reference;
120121
}
122+
123+
public Reference toReference(Reference ref) {
124+
Reference reference = new Reference(ref);
125+
126+
//Add each parameter to avoid overwriting existing parameters
127+
for(Parameter param : form){
128+
reference.addQueryParameter(param);
129+
}
130+
131+
return reference;
132+
}
121133

122134
public Representation toRepresentation() {
123135
return form.getWebRepresentation();

modules/org.restlet.test/src/org/restlet/test/ext/oauth/OAuthParametersTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,16 @@ public void testToReference() {
6464
assertEquals("val2", form.getFirstValue("bar"));
6565
assertEquals("val3", form.getFirstValue("buz"));
6666
}
67+
68+
@Test
69+
public void testToReferenceFromReference() {
70+
Reference originalReference = new Reference("http://localhost/test?existing=thing");
71+
72+
Reference reference = parameters.toReference(originalReference);
73+
Form form = reference.getQueryAsForm();
74+
assertEquals("thing", form.getFirstValue("existing"));
75+
assertEquals("val1", form.getFirstValue("foo"));
76+
assertEquals("val2", form.getFirstValue("bar"));
77+
assertEquals("val3", form.getFirstValue("buz"));
78+
}
6779
}

0 commit comments

Comments
 (0)