You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by ga...@apache.org on 2011/03/10 20:20:44 UTC
svn commit: r1080324 - in /shindig/trunk/java/gadgets/src:
main/java/org/apache/shindig/gadgets/servlet/HtmlAccelServlet.java
test/java/org/apache/shindig/gadgets/servlet/HtmlAccelServletTest.java
Author: gagan
Date: Thu Mar 10 19:20:44 2011
New Revision: 1080324
URL: http://svn.apache.org/viewvc?rev=1080324&view=rev
Log:
Patch by nikhilmadan23 | Issue 4271041: AccelServlet should pass through all headers including caching headers | http://codereview.appspot.com/4271041/
Modified:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/HtmlAccelServlet.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/HtmlAccelServletTest.java
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/HtmlAccelServlet.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/HtmlAccelServlet.java?rev=1080324&r1=1080323&r2=1080324&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/HtmlAccelServlet.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/HtmlAccelServlet.java Thu Mar 10 19:20:44 2011
@@ -55,7 +55,7 @@ public class HtmlAccelServlet extends In
if (logger.isLoggable(Level.FINE)) {
logger.fine("Accel request = " + request.toString());
}
-
+
HttpRequest req = ServletUtil.fromHttpServletRequest(request);
req.setContainer(AccelUriManager.CONTAINER);
HttpResponse response = null;
@@ -64,8 +64,8 @@ public class HtmlAccelServlet extends In
} catch (GadgetException e) {
response = ServletUtil.errorResponse(e);
}
-
- ServletUtil.copyToServletResponseAndOverrideCacheHeaders(response, servletResponse);
+
+ ServletUtil.copyToServletResponse(response, servletResponse);
}
@Override
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/HtmlAccelServletTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/HtmlAccelServletTest.java?rev=1080324&r1=1080323&r2=1080324&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/HtmlAccelServletTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/HtmlAccelServletTest.java Thu Mar 10 19:20:44 2011
@@ -20,6 +20,8 @@ package org.apache.shindig.gadgets.servl
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.Maps;
+
import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.config.BasicContainerConfig;
import org.apache.shindig.config.ContainerConfig;
@@ -334,4 +336,66 @@ public class HtmlAccelServletTest extend
assertEquals(200, recorder.getHttpStatusCode());
assertTrue(rewriter.responseWasRewritten());
}
+
+ @Test
+ public void testCacheControlExpiresAndDateHeadersPassed() throws Exception {
+ String url = "http://example.org/data.html";
+ String data = "<html><body>Hello World</body></html>";
+
+ ((FakeCaptureRewriter) rewriter).setContentToRewrite(REWRITE_CONTENT);
+ HttpRequest req = new HttpRequest(Uri.parse(url));
+ req.addHeader("Host", Uri.parse(url).getAuthority());
+
+ Map<String, String> headersMap = Maps.newHashMap();
+ headersMap.put("Set-Cookie", "name=value");
+ headersMap.put("Set-Cookie2", "name2=value2");
+ headersMap.put("Date", "Mon, 01 Jan 1970 00:00:00 GMT");
+ headersMap.put("Cache-Control", "private,max-age=10,no-transform,proxy-revalidate");
+ headersMap.put("Pragma", "no-cache");
+ headersMap.put("Expires", "123");
+
+ HttpResponse resp = new HttpResponseBuilder()
+ .setResponse(data.getBytes())
+ .addHeaders(headersMap)
+ .setHeader("Content-Type", "text/html")
+ .setHttpStatusCode(200)
+ .create();
+ expect(pipeline.execute(req)).andReturn(resp).once();
+ expectRequest("", url);
+ replay();
+
+ servlet.doGet(request, recorder);
+ verify();
+ for (Map.Entry<String, String> header : headersMap.entrySet()) {
+ assertEquals(recorder.getHeader(header.getKey()), header.getValue());
+ }
+ assertEquals(REWRITE_CONTENT, recorder.getResponseAsString());
+ assertEquals(200, recorder.getHttpStatusCode());
+ assertTrue(rewriter.responseWasRewritten());
+ }
+
+ @Test
+ public void testNoCacheControlHeaderSetIfAbsent() throws Exception {
+ String url = "http://example.org/data.html";
+ String data = "<html><body>Hello World</body></html>";
+
+ ((FakeCaptureRewriter) rewriter).setContentToRewrite(REWRITE_CONTENT);
+ HttpRequest req = new HttpRequest(Uri.parse(url));
+ req.addHeader("Host", Uri.parse(url).getAuthority());
+ HttpResponse resp = new HttpResponseBuilder()
+ .setResponse(data.getBytes())
+ .setHeader("Content-Type", "text/html")
+ .setHttpStatusCode(200)
+ .create();
+ expect(pipeline.execute(req)).andReturn(resp).once();
+ expectRequest("", url);
+ replay();
+
+ servlet.doGet(request, recorder);
+ verify();
+ assertNull(recorder.getHeader("Cache-Control"));
+ assertEquals(REWRITE_CONTENT, recorder.getResponseAsString());
+ assertEquals(200, recorder.getHttpStatusCode());
+ assertTrue(rewriter.responseWasRewritten());
+ }
}