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());
+  }
 }