Author: etnu
Date: Fri May 29 00:04:05 2009
New Revision: 779801
URL: http://svn.apache.org/viewvc?rev=779801&view=rev
Log:
Fixed a problem with MakeRequestHandler (makeRequest, HttpRequest, etc.) not
properly handling any response bodies other than 'OK'. Really, any response can
have a body (even "No Content", as bizarre as that sounds).
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/MakeRequestHandler.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/servlet/MakeRequestHandler.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/MakeRequestHandler.java?rev=779801&r1=779800&r2=779801&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/MakeRequestHandler.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/MakeRequestHandler.java
Fri May 29 00:04:05 2009
@@ -18,6 +18,9 @@
*/
package org.apache.shindig.gadgets.servlet;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+
import org.apache.shindig.auth.AuthInfo;
import org.apache.shindig.auth.SecurityToken;
import org.apache.shindig.common.JsonSerializer;
@@ -34,9 +37,6 @@
import org.apache.shindig.gadgets.rewrite.RequestRewriterRegistry;
import org.apache.shindig.gadgets.rewrite.RewritingException;
-import com.google.inject.Inject;
-import com.google.inject.Singleton;
-
import java.io.IOException;
import java.util.Collections;
import java.util.Map;
@@ -141,7 +141,7 @@
// Set the default content type for post requests when a content type is
not specified
if ("POST".equals(req.getMethod()) && req.getHeader("Content-Type")==null)
{
- req.addHeader("Content-Type", "application/x-www-form-urlencoded");
+ req.addHeader("Content-Type", "application/x-www-form-urlencoded");
}
req.setIgnoreCache("1".equals(request.getParameter(NOCACHE_PARAM)));
@@ -182,10 +182,8 @@
protected String convertResponseToJson(SecurityToken authToken,
HttpServletRequest request,
HttpResponse results) throws GadgetException {
String originalUrl = request.getParameter(ProxyBase.URL_PARAM);
- String body = "";
- if (results.getHttpStatusCode() == 200) {
- body = results.getResponseAsString();
-
+ String body = results.getResponseAsString();
+ if (body.length() > 0) {
if ("FEED".equals(request.getParameter(CONTENT_TYPE_PARAM))) {
body = processFeed(originalUrl, request, body);
}
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=779801&r1=779800&r2=779801&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 May 29 00:04:05 2009
@@ -22,6 +22,8 @@
import static org.easymock.EasyMock.capture;
import static org.easymock.EasyMock.expect;
+import com.google.common.collect.Lists;
+
import org.apache.shindig.auth.AuthInfo;
import org.apache.shindig.auth.SecurityToken;
import org.apache.shindig.common.testing.FakeGadgetToken;
@@ -44,8 +46,6 @@
import javax.servlet.http.HttpServletRequest;
-import com.google.common.collect.Lists;
-
/**
* Tests for MakeRequestHandler.
*/
@@ -109,7 +109,24 @@
assertTrue(rewriter.responseWasRewritten());
}
- public void testGetRequestWIthRefresh() throws Exception {
+ public void testGetRequestWithUncommonStatusCode() throws Exception {
+ HttpRequest req = new HttpRequest(REQUEST_URL);
+ HttpResponse response = new HttpResponseBuilder()
+ .setHttpStatusCode(HttpResponse.SC_CREATED)
+ .setResponseString(RESPONSE_BODY)
+ .create();
+ expect(pipeline.execute(req)).andReturn(response);
+ replay();
+
+ handler.fetch(request, recorder);
+
+ JSONObject results = extractJsonFromResponse();
+ assertEquals(HttpResponse.SC_CREATED, results.getInt("rc"));
+ assertEquals(RESPONSE_BODY, results.get("body"));
+ assertTrue(rewriter.responseWasRewritten());
+ }
+
+ public void testGetRequestWithRefresh() throws Exception {
expect(request.getParameter(ProxyBase.REFRESH_PARAM)).andReturn("120").anyTimes();
Capture<HttpRequest> requestCapture = new Capture<HttpRequest>();