You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by be...@apache.org on 2009/01/10 03:12:45 UTC
svn commit: r733223 - in /incubator/shindig/trunk/java/gadgets/src:
main/java/org/apache/shindig/gadgets/oauth/
test/java/org/apache/shindig/gadgets/oauth/
test/java/org/apache/shindig/gadgets/servlet/
Author: beaton
Date: Fri Jan 9 18:12:45 2009
New Revision: 733223
URL: http://svn.apache.org/viewvc?rev=733223&view=rev
Log:
Expose all makeRequest and Preload options to fetching pipeline.
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthArguments.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/OAuthArgumentsTest.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/MakeRequestHandlerTest.java
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthArguments.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthArguments.java?rev=733223&r1=733222&r2=733223&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthArguments.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthArguments.java Fri Jan 9 18:12:45 2009
@@ -24,6 +24,7 @@
import com.google.common.collect.Maps;
+import java.util.Enumeration;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
@@ -80,6 +81,9 @@
/** Include information about the viewer? */
private boolean signViewer = false;
+
+ /** Arbitrary name/value pairs associated with the request */
+ private final Map<String, String> requestOptions;
/**
* Parse OAuthArguments from parameters to the makeRequest servlet.
@@ -98,8 +102,22 @@
bypassSpecCache = "1".equals(getRequestParam(request, BYPASS_SPEC_CACHE_PARAM, null));
signOwner = Boolean.parseBoolean(getRequestParam(request, SIGN_OWNER_PARAM, "true"));
signViewer = Boolean.parseBoolean(getRequestParam(request, SIGN_VIEWER_PARAM, "true"));
+ requestOptions = Maps.newHashMap();
+ Enumeration<String> params = getParameterNames(request);
+ while (params.hasMoreElements()) {
+ String name = params.nextElement();
+ requestOptions.put(name, request.getParameter(name));
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ private Enumeration<String> getParameterNames(HttpServletRequest request) {
+ return request.getParameterNames();
}
+ /**
+ * Parse OAuthArguments from parameters to Preload, proxied content rendering, and OSML tags.
+ */
public OAuthArguments(RequestAuthenticationInfo info) throws GadgetException {
Map<String, String> attrs = Maps.newTreeMap(String.CASE_INSENSITIVE_ORDER);
attrs.putAll(info.getAttributes());
@@ -112,6 +130,7 @@
bypassSpecCache = false;
signOwner = info.isSignOwner();
signViewer = info.isSignViewer();
+ requestOptions = Maps.newHashMap(info.getAttributes());
}
/**
@@ -173,6 +192,7 @@
* method in real code, consider writing a new constructor instead.
*/
public OAuthArguments() {
+ requestOptions = Maps.newHashMap();
}
@@ -189,6 +209,7 @@
bypassSpecCache = orig.bypassSpecCache;
signOwner = orig.signOwner;
signViewer = orig.signViewer;
+ requestOptions = Maps.newHashMap(orig.requestOptions);
}
public boolean mustUseToken() {
@@ -270,4 +291,16 @@
public void setSignViewer(boolean signViewer) {
this.signViewer = signViewer;
}
+
+ public void setRequestOption(String name, String value) {
+ requestOptions.put(name, value);
+ }
+
+ public void removeRequestOption(String name) {
+ requestOptions.remove(name);
+ }
+
+ public String getRequestOption(String name) {
+ return requestOptions.get(name);
+ }
}
Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/OAuthArgumentsTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/OAuthArgumentsTest.java?rev=733223&r1=733222&r2=733223&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/OAuthArgumentsTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/OAuthArgumentsTest.java Fri Jan 9 18:12:45 2009
@@ -47,6 +47,7 @@
"OAUTH_REQuest_token='requesttoken' " +
"oauth_request_token_secret='tokensecret' " +
"OAUTH_USE_TOKEN='never' " +
+ "random='stuff'" +
"/>";
Preload preload = new Preload(XmlUtil.parse(xml), Uri.parse(""));
@@ -58,6 +59,7 @@
assertEquals(UseToken.NEVER, params.getUseToken());
assertNull(params.getOrigClientState());
assertFalse(params.getBypassSpecCache());
+ assertEquals("stuff", params.getRequestOption("random"));
}
private FakeHttpServletRequest makeDummyRequest() throws Exception {
@@ -71,6 +73,7 @@
req.setParameter("bypassSpecCache", true, "1");
req.setParameter("signOwner", true, "false");
req.setParameter("signViewer", true, "false");
+ req.setParameter("random", true, "stuff");
return req;
}
@@ -88,6 +91,7 @@
assertEquals(true, args.getBypassSpecCache());
assertEquals(false, args.getSignOwner());
assertEquals(false, args.getSignViewer());
+ assertEquals("stuff", args.getRequestOption("random"));
}
@Test
@@ -103,6 +107,7 @@
assertEquals(false, args.getBypassSpecCache());
assertEquals(true, args.getSignOwner());
assertEquals(true, args.getSignViewer());
+ assertNull(args.getRequestOption("random"));
}
@Test
@@ -152,6 +157,11 @@
args.setUseToken(UseToken.IF_AVAILABLE);
assertEquals(UseToken.IF_AVAILABLE, args.getUseToken());
+
+ args.setRequestOption("foo", "bar");
+ assertEquals("bar", args.getRequestOption("foo"));
+ args.removeRequestOption("foo");
+ assertNull(args.getRequestOption("foo"));
}
@Test
@@ -169,6 +179,18 @@
assertEquals(false, args.getSignOwner());
assertEquals(false, args.getSignViewer());
}
+
+ @Test
+ public void testCopyConstructor_options() throws Exception {
+ HttpServletRequest req = makeDummyRequest();
+ OAuthArguments args = new OAuthArguments(AuthType.OAUTH, req);
+ args = new OAuthArguments(args);
+
+ args.setRequestOption("foo", "bar");
+ args.setRequestOption("quux", "baz");
+ assertEquals("bar", args.getRequestOption("foo"));
+ assertEquals("baz", args.getRequestOption("quux"));
+ }
@Test
public void testParseUseToken() throws Exception {
Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/MakeRequestHandlerTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/MakeRequestHandlerTest.java?rev=733223&r1=733222&r2=733223&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/MakeRequestHandlerTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/MakeRequestHandlerTest.java Fri Jan 9 18:12:45 2009
@@ -30,6 +30,7 @@
import org.apache.shindig.gadgets.http.HttpRequest;
import org.apache.shindig.gadgets.http.HttpResponse;
import org.apache.shindig.gadgets.http.HttpResponseBuilder;
+import org.easymock.IAnswer;
import org.json.JSONArray;
import org.json.JSONException;
@@ -37,6 +38,10 @@
import org.junit.Test;
import java.util.Collections;
+import java.util.Enumeration;
+import java.util.Vector;
+
+import javax.servlet.http.HttpServletRequest;
/**
* Tests for MakeRequestHandler.
@@ -224,6 +229,18 @@
assertTrue(rewriter.responseWasRewritten());
}
+ private void expectParameters(HttpServletRequest request, String... params) {
+ final Vector<String> v = new Vector<String>();
+ for (String p : params) {
+ v.add(p);
+ }
+ expect(request.getParameterNames()).andStubAnswer(new IAnswer<Enumeration<String>>() {
+ public Enumeration<String> answer() throws Throwable{
+ return v.elements();
+ }
+ });
+ }
+
public void testSignedGetRequest() throws Exception {
expect(request.getAttribute(AuthInfo.Attribute.SECURITY_TOKEN.getId()))
@@ -234,6 +251,7 @@
.setAuthType(AuthType.SIGNED);
expect(pipeline.execute(expected))
.andReturn(new HttpResponse(RESPONSE_BODY));
+ expectParameters(request, MakeRequestHandler.AUTHZ_PARAM);
replay();
handler.fetch(request, recorder);
@@ -251,6 +269,8 @@
.andReturn(DUMMY_TOKEN).atLeastOnce();
expect(request.getParameter(MakeRequestHandler.AUTHZ_PARAM))
.andReturn(AuthType.SIGNED.toString()).atLeastOnce();
+ expectParameters(request, MakeRequestHandler.METHOD_PARAM, MakeRequestHandler.POST_DATA_PARAM,
+ MakeRequestHandler.AUTHZ_PARAM);
replay();
handler.fetch(request, recorder);
@@ -271,6 +291,7 @@
.andReturn(authToken).atLeastOnce();
expect(request.getParameter(MakeRequestHandler.AUTHZ_PARAM))
.andReturn(AuthType.SIGNED.toString()).atLeastOnce();
+ expectParameters(request, MakeRequestHandler.AUTHZ_PARAM);
replay();
handler.fetch(request, recorder);
@@ -292,6 +313,7 @@
.andReturn(AuthType.OAUTH.toString()).atLeastOnce();
// This isn't terribly accurate, but is close enough for this test.
expect(request.getParameterMap()).andStubReturn(Collections.EMPTY_MAP);
+ expectParameters(request);
replay();
handler.fetch(request, recorder);