Author: gagan
Date: Thu Sep 16 16:32:02 2010
New Revision: 997830
URL: http://svn.apache.org/viewvc?rev=997830&view=rev
Log:
Patch by vikaas.arora.\nhttp://codereview.appspot.com/2119049/\nExtend Http
Cache key to contain other Image request parameter
Modified:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/AbstractHttpCache.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/AbstractHttpCacheTest.java
Modified:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/AbstractHttpCache.java
URL:
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/AbstractHttpCache.java?rev=997830&r1=997829&r2=997830&view=diff
==============================================================================
---
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/AbstractHttpCache.java
(original)
+++
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/AbstractHttpCache.java
Thu Sep 16 16:32:02 2010
@@ -149,7 +149,8 @@ public abstract class AbstractHttpCache
.setLegacyParam(8, getTokenName(request))
.setParam("rh", request.getParam(RESIZE_HEIGHT))
.setParam("rw", request.getParam(RESIZE_WIDTH))
- .setParam("rq", request.getParam(RESIZE_QUALITY));
+ .setParam("rq", request.getParam(RESIZE_QUALITY))
+ .setParam("rm", request.getRewriteMimeType());
return keyBuilder.build();
}
Modified:
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/AbstractHttpCacheTest.java
URL:
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/AbstractHttpCacheTest.java?rev=997830&r1=997829&r2=997830&view=diff
==============================================================================
---
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/AbstractHttpCacheTest.java
(original)
+++
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/AbstractHttpCacheTest.java
Thu Sep 16 16:32:02 2010
@@ -33,6 +33,7 @@ import org.apache.shindig.common.uri.Uri
import org.apache.shindig.gadgets.AuthType;
import org.apache.shindig.gadgets.oauth.OAuthArguments;
import org.apache.shindig.gadgets.spec.RequestAuthenticationInfo;
+import org.apache.shindig.gadgets.uri.UriCommon.Param;
import org.easymock.EasyMock;
import org.junit.Test;
@@ -40,6 +41,7 @@ import java.util.Map;
public class AbstractHttpCacheTest {
protected static final Uri DEFAULT_URI =
Uri.parse("http://example.org/file.txt");
+ protected static final Uri IMAGE_URI =
Uri.parse("http://example.org/image.png");
private static final Uri APP_URI =
Uri.parse("http://example.org/gadget.xml");
private static final String MODULE_ID = "100";
private static final String SERVICE_NAME = "service";
@@ -57,6 +59,49 @@ public class AbstractHttpCacheTest {
assertEquals(key.build(), cache.createKey(request));
}
+ private HttpRequest getMockImageRequest(String height, String width, String
quality,
+ String mimeType) {
+ HttpRequest request = EasyMock.createMock(HttpRequest.class);
+ expect(request.getUri()).andReturn(IMAGE_URI).anyTimes();
+ expect(request.getAuthType()).andReturn(AuthType.NONE).anyTimes();
+ expect(request.getSecurityToken()).andReturn(null).anyTimes();
+
expect(request.getParam(Param.RESIZE_HEIGHT.getKey())).andReturn(height).anyTimes();
+
expect(request.getParam(Param.RESIZE_WIDTH.getKey())).andReturn(width).anyTimes();
+
expect(request.getParam(Param.RESIZE_QUALITY.getKey())).andReturn(quality).anyTimes();
+ expect(request.getRewriteMimeType()).andReturn(mimeType).anyTimes();
+ replay(request);
+ return request;
+ }
+
+ @Test
+ public void createKeySimpleImageRequest() throws Exception {
+ // Mock the Request with Image Resize (Quality) params, without rewrite
mimeType.
+ HttpRequest request = getMockImageRequest("100", "80", "70", null);
+ CacheKeyBuilder key = new CacheKeyBuilder()
+ .setLegacyParam(0, IMAGE_URI)
+ .setLegacyParam(1, AuthType.NONE)
+ .setParam("rh", "100")
+ .setParam("rw", "80")
+ .setParam("rq", "70");
+
+ assertEquals(key.build(), cache.createKey(request));
+ }
+
+ @Test
+ public void createKeyImageRequestRewrite() throws Exception {
+ // Mock the Request with Image Resize (Quality) params and specified
rewrite mimeType.
+ HttpRequest request = getMockImageRequest("100", "80", "70", "image/jpg");
+ CacheKeyBuilder key = new CacheKeyBuilder()
+ .setLegacyParam(0, IMAGE_URI)
+ .setLegacyParam(1, AuthType.NONE)
+ .setParam("rh", "100")
+ .setParam("rw", "80")
+ .setParam("rq", "70")
+ .setParam("rm", "image/jpg");
+
+ assertEquals(key.build(), cache.createKey(request));
+ }
+
@Test
public void createKeySignedOwner() throws Exception {
// Using a mock instead of a fake object makes the test less brittle if
the interface should
@@ -259,7 +304,7 @@ public class AbstractHttpCacheTest {
assertEquals(0, cache.map.size());
}
-
+
@Test
public void addResponseIfModifiedSince() {
HttpRequest request = new HttpRequest(DEFAULT_URI);
@@ -354,8 +399,8 @@ public class AbstractHttpCacheTest {
.create();
cache.map.put(key, response);
- // The cache itself still hold and return staled value,
- // caller responsible to decide what to do about it
+ // The cache itself still hold and return staled value,
+ // caller responsible to decide what to do about it
assertEquals(response, cache.removeResponse(request));
assertEquals(0, cache.map.size());
}