Author: zhoresh
Date: Mon Nov 22 22:21:46 2010
New Revision: 1037920

URL: http://svn.apache.org/viewvc?rev=1037920&view=rev
Log:
Ref: http://codereview.appspot.com/3222041/
Add render type to GadgetHandler metadata request

Modified:
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandler.java
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerApi.java
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java
    
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerTest.java

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandler.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandler.java?rev=1037920&r1=1037919&r2=1037920&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandler.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandler.java
 Mon Nov 22 22:21:46 2010
@@ -477,12 +477,27 @@ public class GadgetsHandler {
     }
   }
 
+  @VisibleForTesting
+  static GadgetsHandlerApi.RenderingType getRenderingType(String value)
+      throws ProcessingException {
+    GadgetsHandlerApi.RenderingType type = 
GadgetsHandlerApi.RenderingType.DEFAULT;
+    if (value != null) {
+      try {
+        type = GadgetsHandlerApi.RenderingType.valueOf(value.toUpperCase());
+      } catch (IllegalArgumentException e) {
+        throw new ProcessingException("Error parsing rendering type parameter",
+            HttpServletResponse.SC_BAD_REQUEST);
+      }
+    }
+    return type;
+  }
 
   protected class MetadataRequestData extends AbstractRequest
       implements GadgetsHandlerApi.MetadataRequest {
     protected final Locale locale;
     protected final boolean ignoreCache;
     protected final boolean debug;
+    protected final GadgetsHandlerApi.RenderingType renderingType;
 
     public MetadataRequestData(String url, BaseRequestItem request)
         throws ProcessingException {
@@ -494,6 +509,7 @@ public class GadgetsHandler {
               ? new Locale(lang) : GadgetSpec.DEFAULT_LOCALE;
       this.ignoreCache = getBooleanParam(request, "ignoreCache");
       this.debug = getBooleanParam(request, "debug");
+      this.renderingType = 
GadgetsHandler.getRenderingType(request.getParameter("render"));
     }
 
     public int getModuleId() {
@@ -520,5 +536,9 @@ public class GadgetsHandler {
       return beanDelegator.createDelegator(
         request.getToken(), GadgetsHandlerApi.TokenData.class);
     }
+
+    public GadgetsHandlerApi.RenderingType getRenderingType() {
+      return renderingType;
+    }
   }
 }

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerApi.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerApi.java?rev=1037920&r1=1037919&r2=1037920&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerApi.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerApi.java
 Mon Nov 22 22:21:46 2010
@@ -67,6 +67,14 @@ public class GadgetsHandlerApi {
     public boolean getDebug();
     public String getView();
     public TokenData getToken();
+    public RenderingType getRenderingType();
+  }
+
+  public enum RenderingType {
+    DEFAULT,
+    SANITIZED,
+    INLINE_CAJOLED,
+    IFRAME_CAJOLED
   }
 
   public interface TokenData {

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java?rev=1037920&r1=1037919&r2=1037920&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java
 Mon Nov 22 22:21:46 2010
@@ -333,6 +333,11 @@ public class GadgetsHandlerService {
     public SecurityToken getToken() {
       return token;
     }
+
+    @Override
+    public boolean getSanitize() {
+      return (request.getRenderingType() == 
GadgetsHandlerApi.RenderingType.SANITIZED);
+    }
   }
 
   private SecurityToken convertToken(GadgetsHandlerApi.TokenData token,

Modified: 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerTest.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerTest.java?rev=1037920&r1=1037919&r2=1037920&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerTest.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerTest.java
 Mon Nov 22 22:21:46 2010
@@ -151,6 +151,21 @@ public class GadgetsHandlerTest extends 
   }
 
   @Test
+  public void testGetRenderingType() throws Exception {
+    assertEquals(GadgetsHandlerApi.RenderingType.DEFAULT, 
GadgetsHandler.getRenderingType(null));
+    assertEquals(GadgetsHandlerApi.RenderingType.SANITIZED,
+        GadgetsHandler.getRenderingType("sanitized"));
+    assertEquals(GadgetsHandlerApi.RenderingType.INLINE_CAJOLED,
+        GadgetsHandler.getRenderingType("inline_cajoled"));
+    try {
+      GadgetsHandler.getRenderingType("unknown");
+      fail("Should have failed");
+    } catch (ProcessingException e) {
+      // As expected
+    }
+  }
+
+  @Test
   public void testTokenEmptyRequest() throws Exception {
     registerGadgetsHandler(null);
     JSONObject request = makeTokenRequest();


Reply via email to