You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by rb...@apache.org on 2012/01/31 03:23:25 UTC

svn commit: r1238135 - in /shindig/trunk: features/src/main/javascript/features/container.site.gadget/ features/src/main/javascript/features/container.util/ features/src/test/javascript/features/container/ java/gadgets/src/main/java/org/apache/shindig/...

Author: rbaxter85
Date: Tue Jan 31 02:23:24 2012
New Revision: 1238135

URL: http://svn.apache.org/viewvc?rev=1238135&view=rev
Log:
SHINDIG-1549
Changes to support rendering gadgets without default views in the common container

Modified:
    shindig/trunk/features/src/main/javascript/features/container.site.gadget/gadget_holder.js
    shindig/trunk/features/src/main/javascript/features/container.util/constant.js
    shindig/trunk/features/src/main/javascript/features/container.util/util.js
    shindig/trunk/features/src/test/javascript/features/container/gadget_holder_test.js
    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/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/IframeUriManager.java
    shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/FakeIframeUriManager.java
    shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerServiceTest.java
    shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerTest.java
    shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManagerTest.java
    shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/UriManagerTestBase.java

Modified: shindig/trunk/features/src/main/javascript/features/container.site.gadget/gadget_holder.js
URL: http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/container.site.gadget/gadget_holder.js?rev=1238135&r1=1238134&r2=1238135&view=diff
==============================================================================
--- shindig/trunk/features/src/main/javascript/features/container.site.gadget/gadget_holder.js (original)
+++ shindig/trunk/features/src/main/javascript/features/container.site.gadget/gadget_holder.js Tue Jan 31 02:23:24 2012
@@ -161,12 +161,12 @@ osapi.container.GadgetHolder.IFRAME_ID_P
  * @private
  */
 osapi.container.GadgetHolder.prototype.doNormalIframeHtml_ = function() {
-  this.el_.innerHTML = this.createIframeHtml(this.getIframeUrl_());
+  var uri = this.getIframeUrl_();
+  this.el_.innerHTML = this.createIframeHtml(uri);
 
   // Set up RPC channel. RPC relay url is on gmodules, relative to base of the
   // container. Assumes container has set up forwarding to gmodules at /gadgets.
-  var iframeUri = shindig.uri(
-      this.gadgetInfo_[osapi.container.MetadataResponse.IFRAME_URL]);
+  var iframeUri = shindig.uri(uri);
   var relayUri = shindig.uri()
       .setSchema(iframeUri.getSchema())
       .setAuthority(iframeUri.getAuthority())
@@ -232,7 +232,7 @@ osapi.container.GadgetHolder.prototype.h
  * @return {string} the rendering iframe URL.
  */
 osapi.container.GadgetHolder.prototype.getIframeUrl_ = function() {
-  var uri = shindig.uri(this.gadgetInfo_[osapi.container.MetadataResponse.IFRAME_URL]);
+  var uri = shindig.uri(this.gadgetInfo_[osapi.container.MetadataResponse.IFRAME_URLS][this.getView()]);
   uri.setQP('debug', this.renderParams_[osapi.container.RenderParam.DEBUG] ? '1' : '0');
   uri.setQP('nocache', this.renderParams_[osapi.container.RenderParam.NO_CACHE] ? '1' : '0');
   uri.setQP('testmode', this.renderParams_[osapi.container.RenderParam.TEST_MODE] ? '1' : '0');

Modified: shindig/trunk/features/src/main/javascript/features/container.util/constant.js
URL: http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/container.util/constant.js?rev=1238135&r1=1238134&r2=1238135&view=diff
==============================================================================
--- shindig/trunk/features/src/main/javascript/features/container.util/constant.js (original)
+++ shindig/trunk/features/src/main/javascript/features/container.util/constant.js Tue Jan 31 02:23:24 2012
@@ -46,7 +46,7 @@ osapi.container.MetadataParam = {
  */
 
 osapi.container.MetadataResponse = {
-  IFRAME_URL: 'iframeUrl',
+  IFRAME_URLS: 'iframeUrls',
   NEEDS_TOKEN_REFRESH: 'needsTokenRefresh',
   VIEWS: 'views',
   EXPIRE_TIME_MS: 'expireTimeMs',

Modified: shindig/trunk/features/src/main/javascript/features/container.util/util.js
URL: http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/container.util/util.js?rev=1238135&r1=1238134&r2=1238135&view=diff
==============================================================================
--- shindig/trunk/features/src/main/javascript/features/container.util/util.js (original)
+++ shindig/trunk/features/src/main/javascript/features/container.util/util.js Tue Jan 31 02:23:24 2012
@@ -73,7 +73,7 @@ osapi.container.util.newMetadataRequest 
     'container': window.__CONTAINER,
     'ids': gadgetUrls,
     'fields': [
-      'iframeUrl',
+      'iframeUrls',
       'modulePrefs.*',
       'needsTokenRefresh',
       'userPrefs.*',

Modified: shindig/trunk/features/src/test/javascript/features/container/gadget_holder_test.js
URL: http://svn.apache.org/viewvc/shindig/trunk/features/src/test/javascript/features/container/gadget_holder_test.js?rev=1238135&r1=1238134&r2=1238135&view=diff
==============================================================================
--- shindig/trunk/features/src/test/javascript/features/container/gadget_holder_test.js (original)
+++ shindig/trunk/features/src/test/javascript/features/container/gadget_holder_test.js Tue Jan 31 02:23:24 2012
@@ -58,7 +58,7 @@ GadgetHolderTest.prototype.testNew = fun
 GadgetHolderTest.prototype.testRenderWithoutRenderParams = function() {
   var element = {};
   var gadgetInfo = {
-      'iframeUrl' : 'http://shindig/gadgets/ifr?url=gadget.xml',
+      'iframeUrls' : {'default' : 'http://shindig/gadgets/ifr?url=gadget.xml'},
       'url' : 'gadget.xml'
   };
   this.setupGadgetsRpcSetupReceiver();
@@ -67,7 +67,7 @@ GadgetHolderTest.prototype.testRenderWit
   };
   var site = new osapi.container.GadgetSite(null, null, {gadgetEl: element});
   var holder = new osapi.container.GadgetHolder(site, element, '__gadgetOnLoad');
-  holder.render(gadgetInfo, {}, {});
+  holder.render(gadgetInfo, {}, {'view' : 'default'});
   this.assertEquals('<iframe' +
       ' marginwidth="0"' +
       ' hspace="0"' +
@@ -79,14 +79,14 @@ GadgetHolderTest.prototype.testRenderWit
       ' id="__gadget_123"' +
       ' name="__gadget_123"' +
       ' src="http://shindig/gadgets/ifr?url=gadget.xml&debug=0&nocache=0&testmode=0' +
-          '&parent=http%3A//container.com&mid=0"' +
+          '&view=default&parent=http%3A//container.com&mid=0"' +
       ' ></iframe>',
       element.innerHTML);
 };
 
 GadgetHolderTest.prototype.testRenderWithRenderRequests = function() {
   var gadgetInfo = {
-      'iframeUrl' : 'http://shindig/gadgets/ifr?url=gadget.xml',
+      'iframeUrls' : {'default' : 'http://shindig/gadgets/ifr?url=gadget.xml'},
       'url' : 'gadget.xml'
   };
   var renderParams = {
@@ -96,7 +96,8 @@ GadgetHolderTest.prototype.testRenderWit
       'height' : 111,
       'nocache' : true,
       'testmode' : true,
-      'width' : 222
+      'width' : 222,
+      'view' : 'default'
   };
   this.setupGadgetsRpcSetupReceiver();
   var element = {
@@ -119,7 +120,7 @@ GadgetHolderTest.prototype.testRenderWit
       ' width="222"' +
       ' name="__gadget_123"' +
       ' src="http://shindig/gadgets/ifr?url=gadget.xml&debug=1&nocache=1&testmode=1' +
-          '&libs=caja&caja=1&parent=http%3A//container.com&mid=0"' +
+          '&view=default&libs=caja&caja=1&parent=http%3A//container.com&mid=0"' +
       ' ></iframe>',
       element.innerHTML);
 };

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=1238135&r1=1238134&r2=1238135&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 Tue Jan 31 02:23:24 2012
@@ -73,7 +73,7 @@ public class GadgetsHandler {
   static final String FAILURE_JS = "Failed to get js data.";
 
   private static final List<String> DEFAULT_METADATA_FIELDS =
-      ImmutableList.of("iframeUrl", "userPrefs.*", "modulePrefs.*", "views.*");
+      ImmutableList.of("iframeUrls", "userPrefs.*", "modulePrefs.*", "views.*");
 
   private static final List<String> DEFAULT_TOKEN_FIELDS = ImmutableList.of("token");
 

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=1238135&r1=1238134&r2=1238135&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 Tue Jan 31 02:23:24 2012
@@ -90,7 +90,7 @@ public class GadgetsHandlerApi {
   }
 
   public interface MetadataResponse extends BaseResponse {
-    public String getIframeUrl();
+    public Map<String, String> getIframeUrls();
     public String getChecksum();
     public ModulePrefs getModulePrefs();
     public Map<String, UserPref> getUserPrefs();

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=1238135&r1=1238134&r2=1238135&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 Tue Jan 31 02:23:24 2012
@@ -191,7 +191,7 @@ public class GadgetsHandlerService {
   /**
    * Get gadget metadata information and iframe url. Support filtering of fields
    * @param request request parameters
-   * @return gadget metadata nd iframe url
+   * @return gadget metadata and iframe urls
    * @throws ProcessingException
    */
   public GadgetsHandlerApi.MetadataResponse getMetadata(GadgetsHandlerApi.MetadataRequest request)
@@ -202,19 +202,15 @@ public class GadgetsHandlerService {
     GadgetContext context = new MetadataGadgetContext(request);
     Gadget gadget = processor.process(context);
 
-    boolean needIfrUrl = isFieldIncluded(fields, "iframeurl");
-    if (needIfrUrl) {
+    boolean needIfrUrls = isFieldIncluded(fields, "iframeurls");
+    if (needIfrUrls) {
       if(!gadgetAdminStore.checkFeatureAdminInfo(gadget)) {
         throw new ProcessingException("Gadget is not trusted to render in this container.",
               HttpResponse.SC_BAD_REQUEST);
       }
-
-      if(gadget.getCurrentView() == null) {
-        throw new ProcessingException("View " + request.getView() + " does not exist",
-                HttpResponse.SC_BAD_REQUEST);
-      }
     }
-    String iframeUrl = needIfrUrl ? iframeUriManager.makeRenderingUri(gadget).toString() : null;
+    Map<String, Uri> uris = needIfrUrls ?
+            iframeUriManager.makeAllRenderingUris(gadget) : null;
     Boolean needsTokenRefresh =
         isFieldIncluded(fields, "needstokenrefresh") ?
             gadget.getAllFeatures().contains("auth-refresh") : null;
@@ -224,7 +220,7 @@ public class GadgetsHandlerService {
     Integer tokenTTL = isFieldIncluded(fields, "tokenTTL") ?
         securityTokenCodec.getTokenTimeToLive() : null;
 
-    return createMetadataResponse(context.getUrl(), gadget.getSpec(), iframeUrl,
+    return createMetadataResponse(context.getUrl(), gadget.getSpec(), uris,
         needsTokenRefresh, fields, timeSource.currentTimeMillis() + specRefreshInterval, tokenTTL,
         rpcServiceIds);
   }
@@ -564,14 +560,14 @@ public class GadgetsHandlerService {
 
   @VisibleForTesting
   GadgetsHandlerApi.MetadataResponse createMetadataResponse(
-      Uri url, GadgetSpec spec, String iframeUrl, Boolean needsTokenRefresh,
+      Uri url, GadgetSpec spec, Map<String, Uri> iframeUris, Boolean needsTokenRefresh,
       Set<String> fields, Long expireTime, Integer tokenTTL, Set<String> rpcServiceIds) {
     return (GadgetsHandlerApi.MetadataResponse) beanFilter.createFilteredBean(
         beanDelegator.createDelegator(spec, GadgetsHandlerApi.MetadataResponse.class,
             ImmutableMap.<String, Object>builder()
                 .put("url", url)
                 .put("error", BeanDelegator.NULL)
-                .put("iframeurl", BeanDelegator.nullable(iframeUrl))
+                .put("iframeurls", BeanDelegator.nullable(iframeUris))
                 .put("needstokenrefresh", BeanDelegator.nullable(needsTokenRefresh))
                 .put("responsetimems", timeSource.currentTimeMillis())
                 .put("expiretimems", BeanDelegator.nullable(expireTime))

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java?rev=1238135&r1=1238134&r2=1238135&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java Tue Jan 31 02:23:24 2012
@@ -18,6 +18,7 @@
  */
 package org.apache.shindig.gadgets.uri;
 
+import java.util.Map;
 import java.util.Set;
 
 import org.apache.commons.lang3.StringUtils;
@@ -37,6 +38,7 @@ import org.apache.shindig.gadgets.spec.U
 import org.apache.shindig.gadgets.spec.View;
 import org.apache.shindig.gadgets.uri.UriCommon.Param;
 
+import com.google.caja.util.Maps;
 import com.google.inject.ImplementedBy;
 import com.google.inject.Inject;
 import com.google.inject.name.Named;
@@ -87,12 +89,14 @@ public class DefaultIframeUriManager imp
   }
 
   public Uri makeRenderingUri(Gadget gadget) {
-    UriBuilder uri;
     View view = gadget.getCurrentView();
+    return buildUri(view, gadget);
+  }
 
+  protected Uri buildUri(View view, Gadget gadget) {
+    UriBuilder uri;
     GadgetContext context = gadget.getContext();
     String container = context.getContainer();
-
     if (View.ContentType.URL.equals(view.getType())) {
       // A. type=url. Initializes all except standard parameters.
       uri = new UriBuilder(view.getHref());
@@ -305,4 +309,20 @@ public class DefaultIframeUriManager imp
       return useTemplates;
     }
   }
+
+  /**
+   * Returns a list of all URIs for rendering this gadget.  The map is
+   * keyed by the view name.
+   * @param gadget The gadget to generate the URIs for.
+   * @return A map of URIs indexed by the view name.
+   */
+  public Map<String, Uri> makeAllRenderingUris(Gadget gadget) {
+    Map<String, Uri> uris = Maps.newHashMap();
+    Map<String, View> views = gadget.getSpec().getViews();
+    for(String key : views.keySet()) {
+      View view = views.get(key);
+      uris.put(key, buildUri(view, gadget));
+    }
+    return uris;
+  }
 }

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/IframeUriManager.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/IframeUriManager.java?rev=1238135&r1=1238134&r2=1238135&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/IframeUriManager.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/IframeUriManager.java Tue Jan 31 02:23:24 2012
@@ -18,6 +18,8 @@
  */
 package org.apache.shindig.gadgets.uri;
 
+import java.util.Map;
+
 import org.apache.shindig.common.uri.Uri;
 import org.apache.shindig.gadgets.Gadget;
 
@@ -32,15 +34,23 @@ public interface IframeUriManager {
    * @return The generated iframe url.
    */
   Uri makeRenderingUri(Gadget gadget);
-  
+
+  /**
+   * Generates iframe uris for all views in the gadget.
+   * @param gadget The gadget to generate the URI for.
+   *
+   * @return A map of views to iframe uris.
+   */
+  Map<String, Uri> makeAllRenderingUris (Gadget gadget);
+
   /**
    * Validates the provided rendering Uri. May include
    * locked-domain, version param, and/or other checks.
-   * 
+   *
    * @Return Validation status of the Uri.
    */
   UriStatus validateRenderingUri(Uri uri);
-  
+
   public interface Versioner {
     /**
      * @param gadgetUri Gadget whose content to version.

Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/FakeIframeUriManager.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/FakeIframeUriManager.java?rev=1238135&r1=1238134&r2=1238135&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/FakeIframeUriManager.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/FakeIframeUriManager.java Tue Jan 31 02:23:24 2012
@@ -19,15 +19,23 @@
 
 package org.apache.shindig.gadgets.servlet;
 
+import java.util.Map;
+
 import org.apache.shindig.common.uri.Uri;
 import org.apache.shindig.gadgets.Gadget;
 import org.apache.shindig.gadgets.uri.IframeUriManager;
 import org.apache.shindig.gadgets.uri.UriStatus;
 
+import com.google.caja.util.Maps;
+
 public class FakeIframeUriManager implements IframeUriManager {
   protected boolean throwRandomFault = false;
   public static final Uri DEFAULT_IFRAME_URI = Uri.parse("http://example.org/gadgets/foo-does-not-matter");
   protected Uri iframeUrl = DEFAULT_IFRAME_URI;
+  public static Map<String, Uri> IFRAME_URIS = Maps.newHashMap();
+  static {
+    IFRAME_URIS.put("default", DEFAULT_IFRAME_URI);
+  }
 
   FakeIframeUriManager() { }
 
@@ -41,4 +49,8 @@ public class FakeIframeUriManager implem
   public UriStatus validateRenderingUri(Uri uri) {
     throw new UnsupportedOperationException();
   }
+
+  public Map<String, Uri> makeAllRenderingUris(Gadget gadget) {
+    return IFRAME_URIS;
+  }
 }

Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerServiceTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerServiceTest.java?rev=1238135&r1=1238134&r2=1238135&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerServiceTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerServiceTest.java Tue Jan 31 02:23:24 2012
@@ -185,7 +185,7 @@ public class GadgetsHandlerServiceTest e
     setupMockGadgetAdminStore(true);
     setupMockRegistry(ImmutableList.<String> of("auth-refresh"));
     GadgetsHandlerApi.MetadataResponse response = gadgetHandler.getMetadata(request);
-    assertEquals(FakeIframeUriManager.DEFAULT_IFRAME_URI.toString(), response.getIframeUrl());
+    assertEquals(FakeIframeUriManager.IFRAME_URIS, response.getIframeUrls());
     assertTrue(response.getNeedsTokenRefresh());
     assertEquals(1, response.getViews().size());
     assertEquals(FakeProcessor.SPEC_TITLE, response.getModulePrefs().getTitle());
@@ -210,7 +210,7 @@ public class GadgetsHandlerServiceTest e
     setupMockRegistry(Lists.newArrayList("example-feature", "example-feature2"));
 
     GadgetsHandlerApi.MetadataResponse response = gadgetHandlerWithAdmin.getMetadata(request);
-    assertEquals(FakeIframeUriManager.DEFAULT_IFRAME_URI.toString(), response.getIframeUrl());
+    assertEquals(FakeIframeUriManager.IFRAME_URIS, response.getIframeUrls());
     assertEquals(1, response.getViews().size());
     assertEquals(FakeProcessor.SPEC_TITLE, response.getModulePrefs().getTitle());
     assertEquals(FakeProcessor.LINK_HREF,
@@ -241,7 +241,7 @@ public class GadgetsHandlerServiceTest e
             CONTAINER, null, createAuthContext(null, null), ImmutableList.of("views.*"));
     setupMockRegistry(new ArrayList<String>());
     GadgetsHandlerApi.MetadataResponse response = gadgetHandler.getMetadata(request);
-    assertNull(response.getIframeUrl());
+    assertNull(response.getIframeUrls());
     assertNull(response.getUserPrefs());
     assertNull(response.getModulePrefs());
     assertNull(response.getUrl());
@@ -296,7 +296,7 @@ public class GadgetsHandlerServiceTest e
     setupMockGadgetAdminStore(true);
     setupMockRegistry(Lists.newArrayList("auth-refresh"));
     GadgetsHandlerApi.MetadataResponse response = gadgetHandler.getMetadata(request);
-    assertEquals(FakeIframeUriManager.DEFAULT_IFRAME_URI.toString(), response.getIframeUrl());
+    assertEquals(FakeIframeUriManager.IFRAME_URIS, response.getIframeUrls());
     verify();
   }
 

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=1238135&r1=1238134&r2=1238135&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 Tue Jan 31 02:23:24 2012
@@ -409,7 +409,9 @@ public class GadgetsHandlerTest extends 
     JSONObject response = new JSONObject(converter.convertToString(responseObj));
 
     JSONObject gadget = response.getJSONObject(GADGET1_URL);
-    assertEquals(FakeIframeUriManager.DEFAULT_IFRAME_URI.toString(), gadget.getString("iframeUrl"));
+    JSONObject iframeUrls = gadget.getJSONObject("iframeUrls");
+    assertEquals(FakeIframeUriManager.DEFAULT_IFRAME_URI.toString(),
+            iframeUrls.getString("default"));
     assertEquals(FakeProcessor.SPEC_TITLE, gadget.getJSONObject("modulePrefs").getString("title"));
     assertFalse(gadget.has("error"));
     assertFalse(gadget.has("url")); // filtered out

Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManagerTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManagerTest.java?rev=1238135&r1=1238134&r2=1238135&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManagerTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManagerTest.java Tue Jan 31 02:23:24 2012
@@ -33,6 +33,7 @@ import static org.easymock.EasyMock.repl
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
 import java.util.List;
@@ -126,6 +127,45 @@ public class DefaultIframeUriManagerTest
     assertEquals(TYPE_HTML_NUM_BASE_PARAMS, uri.getQueryParameters().size());
     assertEquals(1, uri.getFragmentParameters().size());
 
+    Map<String, Uri> uris = manager.makeAllRenderingUris(gadget);
+    assertNotNull(uris);
+
+    UriBuilder htmlGadgetUri = new UriBuilder(uris.get(VIEW));
+    assertEquals("", htmlGadgetUri.getScheme());
+    assertEquals(UNLOCKED_DOMAIN, htmlGadgetUri.getAuthority());
+    assertEquals(IFRAME_PATH, htmlGadgetUri.getPath());
+    assertEquals(SPEC_URI.toString(), htmlGadgetUri.getQueryParameter(Param.URL.getKey()));
+    assertEquals(CONTAINER, htmlGadgetUri.getQueryParameter(Param.CONTAINER.getKey()));
+    assertEquals(VIEW, htmlGadgetUri.getQueryParameter(Param.VIEW.getKey()));
+    assertEquals(LANG, htmlGadgetUri.getQueryParameter(Param.LANG.getKey()));
+    assertEquals(COUNTRY, htmlGadgetUri.getQueryParameter(Param.COUNTRY.getKey()));
+    assertEquals("0", htmlGadgetUri.getQueryParameter(Param.DEBUG.getKey()));
+    assertEquals("0", htmlGadgetUri.getQueryParameter(Param.NO_CACHE.getKey()));
+    assertEquals("0", htmlGadgetUri.getQueryParameter(Param.SANITIZE.getKey()));
+    assertEquals(prefVal, htmlGadgetUri.getFragmentParameter("up_" + prefKey));
+
+    // Only the params that are needed.
+    assertEquals(TYPE_HTML_NUM_BASE_PARAMS, htmlGadgetUri.getQueryParameters().size());
+    assertEquals(1, htmlGadgetUri.getFragmentParameters().size());
+
+    UriBuilder urlGadgetUri = new UriBuilder(uris.get(ANOTHER_VIEW));
+    assertEquals("http", urlGadgetUri.getScheme());
+    assertEquals("example.com", urlGadgetUri.getAuthority());
+    assertEquals("/gadget.xml", urlGadgetUri.getPath());
+    assertNull(urlGadgetUri.getQueryParameter(Param.URL.getKey()));
+    assertEquals(CONTAINER, urlGadgetUri.getQueryParameter(Param.CONTAINER.getKey()));
+    assertEquals(ANOTHER_VIEW, urlGadgetUri.getQueryParameter(Param.VIEW.getKey()));
+    assertEquals(LANG, urlGadgetUri.getQueryParameter(Param.LANG.getKey()));
+    assertEquals(COUNTRY, urlGadgetUri.getQueryParameter(Param.COUNTRY.getKey()));
+    assertEquals("0", urlGadgetUri.getQueryParameter(Param.DEBUG.getKey()));
+    assertEquals("0", urlGadgetUri.getQueryParameter(Param.NO_CACHE.getKey()));
+    assertEquals("0", urlGadgetUri.getQueryParameter(Param.SANITIZE.getKey()));
+    assertEquals(prefVal, urlGadgetUri.getQueryParameter("up_" + prefKey));
+
+    // Only the params that are needed.
+    assertEquals(TYPE_URL_NUM_BASE_PARAMS + 1, urlGadgetUri.getQueryParameters().size());
+    assertEquals(0, urlGadgetUri.getFragmentParameters().size());
+
     assertFalse(manager.tokenForRenderingCalled());
     assertTrue(manager.schemeCalled());
     assertTrue(manager.addExtrasCalled());
@@ -170,6 +210,27 @@ public class DefaultIframeUriManagerTest
     assertEquals(TYPE_HTML_NUM_BASE_PARAMS + 1, uri.getQueryParameters().size());
     assertEquals(1, uri.getFragmentParameters().size());
 
+    Map<String, Uri> uris = manager.makeAllRenderingUris(gadget);
+    assertNotNull(uris);
+
+    UriBuilder htmlGadgetUri = new UriBuilder(uris.get(VIEW));
+    assertEquals("0", htmlGadgetUri.getQueryParameter(Param.SANITIZE.getKey()));
+    assertEquals("1", htmlGadgetUri.getQueryParameter(Param.CAJOLE.getKey()));
+    assertEquals(prefVal, htmlGadgetUri.getFragmentParameter("up_" + prefKey));
+
+    // Cajoled is and added param
+    assertEquals(TYPE_HTML_NUM_BASE_PARAMS + 1, htmlGadgetUri.getQueryParameters().size());
+    assertEquals(1, htmlGadgetUri.getFragmentParameters().size());
+
+    UriBuilder urlGadgetUri = new UriBuilder(uris.get(ANOTHER_VIEW));
+    assertEquals("0", urlGadgetUri.getQueryParameter(Param.SANITIZE.getKey()));
+    assertEquals("1", urlGadgetUri.getQueryParameter(Param.CAJOLE.getKey()));
+    assertEquals(prefVal, urlGadgetUri.getQueryParameter("up_" + prefKey));
+
+    // Cajoled is and added param
+    assertEquals(TYPE_URL_NUM_BASE_PARAMS + 2, urlGadgetUri.getQueryParameters().size());
+    assertEquals(0, urlGadgetUri.getFragmentParameters().size());
+
     assertFalse(manager.tokenForRenderingCalled());
     assertTrue(manager.schemeCalled());
     assertTrue(manager.addExtrasCalled());
@@ -226,6 +287,49 @@ public class DefaultIframeUriManagerTest
     assertEquals(TYPE_HTML_NUM_BASE_PARAMS, uriTpl.getQueryParameters().size());
     assertEquals(1, uriTpl.getFragmentParameters().size());
 
+    Map<String, Uri> uris = managerTpl.makeAllRenderingUris(gadget);
+    assertNotNull(uris);
+
+    UriBuilder htmlGadgetUri = new UriBuilder(uris.get(VIEW));
+    assertEquals("", htmlGadgetUri.getScheme());
+    assertEquals(UNLOCKED_DOMAIN, htmlGadgetUri.getAuthority());
+    assertEquals(IFRAME_PATH, htmlGadgetUri.getPath());
+    assertEquals(SPEC_URI.toString(), htmlGadgetUri.getQueryParameter(Param.URL.getKey()));
+    assertEquals(CONTAINER, htmlGadgetUri.getQueryParameter(Param.CONTAINER.getKey()));
+    assertEquals(tplKey(Param.VIEW.getKey()), htmlGadgetUri.getQueryParameter(Param.VIEW.getKey()));
+    assertEquals(tplKey(Param.LANG.getKey()), htmlGadgetUri.getQueryParameter(Param.LANG.getKey()));
+    assertEquals(tplKey(Param.COUNTRY.getKey()), htmlGadgetUri.getQueryParameter(Param.COUNTRY.getKey()));
+    assertEquals(tplKey(Param.DEBUG.getKey()), htmlGadgetUri.getQueryParameter(Param.DEBUG.getKey()));
+    assertEquals(tplKey(Param.NO_CACHE.getKey()),
+            htmlGadgetUri.getQueryParameter(Param.NO_CACHE.getKey()));
+    assertEquals(tplKey(Param.SANITIZE.getKey()),
+            htmlGadgetUri.getQueryParameter(Param.SANITIZE.getKey()));
+    assertEquals(tplKey("up_" + prefKey), htmlGadgetUri.getFragmentParameter("up_" + prefKey));
+
+    // Only the params that are needed.
+    assertEquals(TYPE_HTML_NUM_BASE_PARAMS, htmlGadgetUri.getQueryParameters().size());
+    assertEquals(1, htmlGadgetUri.getFragmentParameters().size());
+
+    UriBuilder urlGadgetUri = new UriBuilder(uris.get(ANOTHER_VIEW));
+    assertEquals("http", urlGadgetUri.getScheme());
+    assertEquals("example.com", urlGadgetUri.getAuthority());
+    assertEquals("/gadget.xml", urlGadgetUri.getPath());
+    assertNull(urlGadgetUri.getQueryParameter(Param.URL.getKey()));
+    assertEquals(CONTAINER, urlGadgetUri.getQueryParameter(Param.CONTAINER.getKey()));
+    assertEquals(tplKey(Param.VIEW.getKey()), urlGadgetUri.getQueryParameter(Param.VIEW.getKey()));
+    assertEquals(tplKey(Param.LANG.getKey()), urlGadgetUri.getQueryParameter(Param.LANG.getKey()));
+    assertEquals(tplKey(Param.COUNTRY.getKey()), urlGadgetUri.getQueryParameter(Param.COUNTRY.getKey()));
+    assertEquals(tplKey(Param.DEBUG.getKey()), urlGadgetUri.getQueryParameter(Param.DEBUG.getKey()));
+    assertEquals(tplKey(Param.NO_CACHE.getKey()),
+            urlGadgetUri.getQueryParameter(Param.NO_CACHE.getKey()));
+    assertEquals(tplKey(Param.SANITIZE.getKey()),
+            urlGadgetUri.getQueryParameter(Param.SANITIZE.getKey()));
+    assertEquals(tplKey("up_" + prefKey), urlGadgetUri.getQueryParameter("up_" + prefKey));
+
+    // Only the params that are needed.
+    assertEquals(TYPE_URL_NUM_BASE_PARAMS + 1, urlGadgetUri.getQueryParameters().size());
+    assertEquals(0, urlGadgetUri.getFragmentParameters().size());
+
     assertFalse(managerTpl.tokenForRenderingCalled());
     assertTrue(managerTpl.schemeCalled());
     assertTrue(managerTpl.addExtrasCalled());
@@ -283,6 +387,49 @@ public class DefaultIframeUriManagerTest
     assertFalse(manager.tokenForRenderingCalled());
     assertFalse(manager.schemeCalled());
     assertTrue(manager.addExtrasCalled());
+
+    Map<String, Uri> uris = manager.makeAllRenderingUris(gadget);
+    assertNotNull(uris);
+
+    UriBuilder urlGadgetUri = new UriBuilder(uris.get(VIEW));
+    assertEquals("http", urlGadgetUri.getScheme());
+    assertEquals("example.com", urlGadgetUri.getAuthority());
+    assertEquals("/gadget", urlGadgetUri.getPath());
+    assertEquals(CONTAINER, urlGadgetUri.getQueryParameter(Param.CONTAINER.getKey()));
+    assertEquals(VIEW, urlGadgetUri.getQueryParameter(Param.VIEW.getKey()));
+    assertEquals(LANG, urlGadgetUri.getQueryParameter(Param.LANG.getKey()));
+    assertEquals(COUNTRY, urlGadgetUri.getQueryParameter(Param.COUNTRY.getKey()));
+    assertEquals("rpc:setprefs", urlGadgetUri.getQueryParameter(Param.LIBS.getKey()));
+    assertEquals("1", urlGadgetUri.getQueryParameter(Param.DEBUG.getKey()));
+    assertEquals("1", urlGadgetUri.getQueryParameter(Param.NO_CACHE.getKey()));
+    assertEquals("1", urlGadgetUri.getQueryParameter(Param.SANITIZE.getKey()));
+    assertEquals(prefVal, urlGadgetUri.getFragmentParameter("up_" + prefKey));
+
+    // Only the params that are needed.
+    assertEquals(TYPE_URL_NUM_BASE_PARAMS, urlGadgetUri.getQueryParameters().size());
+    assertEquals(1, urlGadgetUri.getFragmentParameters().size());
+
+    UriBuilder htmlGadgetUri = new UriBuilder(uris.get(ANOTHER_VIEW));
+    assertEquals("", htmlGadgetUri.getScheme());
+    assertEquals(UNLOCKED_DOMAIN, htmlGadgetUri.getAuthority());
+    assertEquals(IFRAME_PATH, htmlGadgetUri.getPath());
+    assertEquals(CONTAINER, htmlGadgetUri.getQueryParameter(Param.CONTAINER.getKey()));
+    assertEquals(ANOTHER_VIEW, htmlGadgetUri.getQueryParameter(Param.VIEW.getKey()));
+    assertEquals(LANG, htmlGadgetUri.getQueryParameter(Param.LANG.getKey()));
+    assertEquals(COUNTRY, htmlGadgetUri.getQueryParameter(Param.COUNTRY.getKey()));
+    assertNull(htmlGadgetUri.getQueryParameter(Param.LIBS.getKey()));
+    assertEquals("1", htmlGadgetUri.getQueryParameter(Param.DEBUG.getKey()));
+    assertEquals("1", htmlGadgetUri.getQueryParameter(Param.NO_CACHE.getKey()));
+    assertEquals("1", htmlGadgetUri.getQueryParameter(Param.SANITIZE.getKey()));
+    assertEquals(prefVal, htmlGadgetUri.getQueryParameter("up_" + prefKey));
+
+    // Only the params that are needed.
+    assertEquals(TYPE_HTML_NUM_BASE_PARAMS + 1, htmlGadgetUri.getQueryParameters().size());
+    assertEquals(0, htmlGadgetUri.getFragmentParameters().size());
+
+    assertFalse(manager.tokenForRenderingCalled());
+    assertTrue(manager.schemeCalled());
+    assertTrue(manager.addExtrasCalled());
   }
 
   @Test
@@ -338,6 +485,49 @@ public class DefaultIframeUriManagerTest
     assertFalse(managerTpl.tokenForRenderingCalled());
     assertFalse(managerTpl.schemeCalled());
     assertTrue(managerTpl.addExtrasCalled());
+
+    Map<String, Uri> uris = managerTpl.makeAllRenderingUris(gadget);
+    assertNotNull(uris);
+
+    UriBuilder urlGadgetUri = new UriBuilder(uris.get(VIEW));
+    assertEquals("http", urlGadgetUri.getScheme());
+    assertEquals("example.com", urlGadgetUri.getAuthority());
+    assertEquals("/gadget", urlGadgetUri.getPath());
+    assertEquals(CONTAINER, urlGadgetUri.getQueryParameter(Param.CONTAINER.getKey()));
+    assertEquals("", urlGadgetUri.getQueryParameter(Param.LIBS.getKey()));
+    assertEquals(tplKey(Param.VIEW.getKey()), urlGadgetUri.getQueryParameter(Param.VIEW.getKey()));
+    assertEquals(tplKey(Param.LANG.getKey()), urlGadgetUri.getQueryParameter(Param.LANG.getKey()));
+    assertEquals(tplKey(Param.COUNTRY.getKey()), urlGadgetUri.getQueryParameter(Param.COUNTRY.getKey()));
+    assertEquals(tplKey(Param.DEBUG.getKey()), urlGadgetUri.getQueryParameter(Param.DEBUG.getKey()));
+    assertEquals(tplKey(Param.NO_CACHE.getKey()),
+            urlGadgetUri.getQueryParameter(Param.NO_CACHE.getKey()));
+    assertEquals(tplKey("up_" + prefKey), urlGadgetUri.getFragmentParameter("up_" + prefKey));
+
+    // Only the params that are needed.
+    assertEquals(TYPE_URL_NUM_BASE_PARAMS, urlGadgetUri.getQueryParameters().size());
+    assertEquals(1, urlGadgetUri.getFragmentParameters().size());
+
+    UriBuilder htmlGadgetUri = new UriBuilder(uris.get(ANOTHER_VIEW));
+    assertEquals("", htmlGadgetUri.getScheme());
+    assertEquals(UNLOCKED_DOMAIN, htmlGadgetUri.getAuthority());
+    assertEquals(IFRAME_PATH, htmlGadgetUri.getPath());
+    assertEquals(CONTAINER, htmlGadgetUri.getQueryParameter(Param.CONTAINER.getKey()));
+    assertNull(htmlGadgetUri.getQueryParameter(Param.LIBS.getKey()));
+    assertEquals(tplKey(Param.VIEW.getKey()), htmlGadgetUri.getQueryParameter(Param.VIEW.getKey()));
+    assertEquals(tplKey(Param.LANG.getKey()), htmlGadgetUri.getQueryParameter(Param.LANG.getKey()));
+    assertEquals(tplKey(Param.COUNTRY.getKey()), htmlGadgetUri.getQueryParameter(Param.COUNTRY.getKey()));
+    assertEquals(tplKey(Param.DEBUG.getKey()), htmlGadgetUri.getQueryParameter(Param.DEBUG.getKey()));
+    assertEquals(tplKey(Param.NO_CACHE.getKey()),
+            htmlGadgetUri.getQueryParameter(Param.NO_CACHE.getKey()));
+    assertEquals(tplKey("up_" + prefKey), htmlGadgetUri.getQueryParameter("up_" + prefKey));
+
+    // Only the params that are needed.
+    assertEquals(TYPE_HTML_NUM_BASE_PARAMS + 1, htmlGadgetUri.getQueryParameters().size());
+    assertEquals(0, htmlGadgetUri.getFragmentParameters().size());
+
+    assertFalse(managerTpl.tokenForRenderingCalled());
+    assertTrue(managerTpl.schemeCalled());
+    assertTrue(managerTpl.addExtrasCalled());
   }
 
   @Test
@@ -353,6 +543,23 @@ public class DefaultIframeUriManagerTest
     assertEquals(tplKey(Param.SECURITY_TOKEN.getKey()),
         uri.getFragmentParameter(Param.SECURITY_TOKEN.getKey()));
     assertTrue(manager.tokenForRenderingCalled());
+
+    Map<String, Uri> uris = manager.makeAllRenderingUris(gadget);
+    assertNotNull(uris);
+
+    UriBuilder htmlGadgetUri = new UriBuilder(uris.get(VIEW));
+    assertEquals(TYPE_HTML_NUM_BASE_PARAMS, htmlGadgetUri.getQueryParameters().size());
+    assertEquals(1, htmlGadgetUri.getFragmentParameters().size());
+    assertEquals(tplKey(Param.SECURITY_TOKEN.getKey()),
+            htmlGadgetUri.getFragmentParameter(Param.SECURITY_TOKEN.getKey()));
+
+    UriBuilder urlGadgetUri = new UriBuilder(uris.get(ANOTHER_VIEW));
+    assertEquals(TYPE_URL_NUM_BASE_PARAMS, urlGadgetUri.getQueryParameters().size());
+    assertEquals(1, urlGadgetUri.getFragmentParameters().size());
+    assertEquals(tplKey(Param.SECURITY_TOKEN.getKey()),
+            urlGadgetUri.getFragmentParameter(Param.SECURITY_TOKEN.getKey()));
+
+    assertTrue(manager.tokenForRenderingCalled());
   }
 
   @Test
@@ -368,6 +575,23 @@ public class DefaultIframeUriManagerTest
     assertEquals(tplKey(Param.SECURITY_TOKEN.getKey()),
         uri.getQueryParameter(Param.SECURITY_TOKEN.getKey()));
     assertTrue(manager.tokenForRenderingCalled());
+
+    Map<String, Uri> uris = manager.makeAllRenderingUris(gadget);
+    assertNotNull(uris);
+
+    UriBuilder htmlGadgetUri = new UriBuilder(uris.get(VIEW));
+    assertEquals(TYPE_HTML_NUM_BASE_PARAMS + 1, htmlGadgetUri.getQueryParameters().size());
+    assertEquals(0, htmlGadgetUri.getFragmentParameters().size());
+    assertEquals(tplKey(Param.SECURITY_TOKEN.getKey()),
+            htmlGadgetUri.getQueryParameter(Param.SECURITY_TOKEN.getKey()));
+
+    UriBuilder urlGadgetUri = new UriBuilder(uris.get(ANOTHER_VIEW));
+    assertEquals(TYPE_URL_NUM_BASE_PARAMS + 1, urlGadgetUri.getQueryParameters().size());
+    assertEquals(0, urlGadgetUri.getFragmentParameters().size());
+    assertEquals(tplKey(Param.SECURITY_TOKEN.getKey()),
+            urlGadgetUri.getQueryParameter(Param.SECURITY_TOKEN.getKey()));
+
+    assertTrue(manager.tokenForRenderingCalled());
   }
 
   @Test
@@ -383,6 +607,25 @@ public class DefaultIframeUriManagerTest
     assertEquals(tplKey(Param.SECURITY_TOKEN.getKey()),
         uri.getFragmentParameter(Param.SECURITY_TOKEN.getKey()));
     assertTrue(manager.tokenForRenderingCalled());
+
+    manager.setTokenForRendering(false);
+    Map<String, Uri> uris = manager.makeAllRenderingUris(gadget);
+    assertNotNull(uris);
+
+    UriBuilder htmlGadgetUri = new UriBuilder(uris.get(VIEW));
+    assertEquals(TYPE_HTML_NUM_BASE_PARAMS, htmlGadgetUri.getQueryParameters().size());
+    assertEquals(1, htmlGadgetUri.getFragmentParameters().size());
+    assertEquals(tplKey(Param.SECURITY_TOKEN.getKey()),
+            htmlGadgetUri.getFragmentParameter(Param.SECURITY_TOKEN.getKey()));
+
+    UriBuilder urlGadgetUri = new UriBuilder(uris.get(ANOTHER_VIEW));
+    assertEquals(TYPE_URL_NUM_BASE_PARAMS, urlGadgetUri.getQueryParameters().size());
+    assertEquals(1, urlGadgetUri.getFragmentParameters().size());
+    assertEquals(tplKey(Param.SECURITY_TOKEN.getKey()),
+            urlGadgetUri.getFragmentParameter(Param.SECURITY_TOKEN.getKey()));
+
+    assertTrue(manager.tokenForRenderingCalled());
+
   }
 
   @Test
@@ -405,6 +648,27 @@ public class DefaultIframeUriManagerTest
     // Basic sanity checks on params
     assertEquals(TYPE_HTML_NUM_BASE_PARAMS, uri.getQueryParameters().size());
     assertEquals(0, uri.getFragmentParameters().size());
+
+    Map<String, Uri> uris = manager.makeAllRenderingUris(gadget);
+    assertNotNull(uris);
+
+    UriBuilder htmlGadgetUri = new UriBuilder(uris.get(VIEW));
+    assertEquals("", htmlGadgetUri.getScheme());
+    assertEquals(LD_PREFIX + LD_SUFFIX, htmlGadgetUri.getAuthority());
+    assertEquals(IFRAME_PATH, htmlGadgetUri.getPath());
+
+    // Basic sanity checks on params
+    assertEquals(TYPE_HTML_NUM_BASE_PARAMS, htmlGadgetUri.getQueryParameters().size());
+    assertEquals(0, htmlGadgetUri.getFragmentParameters().size());
+
+    UriBuilder urlGadgetUri = new UriBuilder(uris.get(ANOTHER_VIEW));
+    assertEquals("http", urlGadgetUri.getScheme());
+    assertEquals("example.com", urlGadgetUri.getAuthority());
+    assertEquals("/gadget.xml", urlGadgetUri.getPath());
+
+    // Basic sanity checks on params
+    assertEquals(TYPE_URL_NUM_BASE_PARAMS, urlGadgetUri.getQueryParameters().size());
+    assertEquals(0, urlGadgetUri.getFragmentParameters().size());
   }
 
   @Test
@@ -426,6 +690,27 @@ public class DefaultIframeUriManagerTest
     // Basic sanity checks on params
     assertEquals(TYPE_HTML_NUM_BASE_PARAMS, uri.getQueryParameters().size());
     assertEquals(0, uri.getFragmentParameters().size());
+
+    Map<String, Uri> uris = manager.makeAllRenderingUris(gadget);
+    assertNotNull(uris);
+
+    UriBuilder htmlGadgetUri = new UriBuilder(uris.get(VIEW));
+    assertEquals("", htmlGadgetUri.getScheme());
+    assertEquals(LD_PREFIX + LD_SUFFIX, htmlGadgetUri.getAuthority());
+    assertEquals(IFRAME_PATH, htmlGadgetUri.getPath());
+
+    // Basic sanity checks on params
+    assertEquals(TYPE_HTML_NUM_BASE_PARAMS, htmlGadgetUri.getQueryParameters().size());
+    assertEquals(0, htmlGadgetUri.getFragmentParameters().size());
+
+    UriBuilder urlGadgetUri = new UriBuilder(uris.get(ANOTHER_VIEW));
+    assertEquals("http", urlGadgetUri.getScheme());
+    assertEquals("example.com", urlGadgetUri.getAuthority());
+    assertEquals("/gadget.xml", urlGadgetUri.getPath());
+
+    // Basic sanity checks on params
+    assertEquals(TYPE_URL_NUM_BASE_PARAMS, urlGadgetUri.getQueryParameters().size());
+    assertEquals(0, urlGadgetUri.getFragmentParameters().size());
   }
 
   @Test
@@ -447,6 +732,27 @@ public class DefaultIframeUriManagerTest
     // Basic sanity checks on params
     assertEquals(TYPE_HTML_NUM_BASE_PARAMS, uri.getQueryParameters().size());
     assertEquals(0, uri.getFragmentParameters().size());
+
+    Map<String, Uri> uris = manager.makeAllRenderingUris(gadget);
+    assertNotNull(uris);
+
+    UriBuilder htmlGadgetUri = new UriBuilder(uris.get(VIEW));
+    assertEquals("", htmlGadgetUri.getScheme());
+    assertEquals(UNLOCKED_DOMAIN, htmlGadgetUri.getAuthority());
+    assertEquals(IFRAME_PATH, htmlGadgetUri.getPath());
+
+    // Basic sanity checks on params
+    assertEquals(TYPE_HTML_NUM_BASE_PARAMS, htmlGadgetUri.getQueryParameters().size());
+    assertEquals(0, htmlGadgetUri.getFragmentParameters().size());
+
+    UriBuilder urlGadgetUri = new UriBuilder(uris.get(ANOTHER_VIEW));
+    assertEquals("http", urlGadgetUri.getScheme());
+    assertEquals("example.com", urlGadgetUri.getAuthority());
+    assertEquals("/gadget.xml", urlGadgetUri.getPath());
+
+    // Basic sanity checks on params
+    assertEquals(TYPE_URL_NUM_BASE_PARAMS, urlGadgetUri.getQueryParameters().size());
+    assertEquals(0, urlGadgetUri.getFragmentParameters().size());
   }
 
   @Test
@@ -460,6 +766,17 @@ public class DefaultIframeUriManagerTest
     UriBuilder uri = new UriBuilder(result);
     assertEquals(TYPE_HTML_NUM_BASE_PARAMS + 1, uri.getQueryParameters().size());
     assertEquals(version, uri.getQueryParameter(Param.VERSION.getKey()));
+
+    Map<String, Uri> uris = manager.makeAllRenderingUris(gadget);
+    assertNotNull(uris);
+
+    UriBuilder htmlGadgetUri = new UriBuilder(uris.get(VIEW));
+    assertEquals(TYPE_HTML_NUM_BASE_PARAMS + 1, htmlGadgetUri.getQueryParameters().size());
+    assertEquals(version, htmlGadgetUri.getQueryParameter(Param.VERSION.getKey()));
+
+    UriBuilder urlGadgetUri = new UriBuilder(uris.get(ANOTHER_VIEW));
+    assertEquals(TYPE_URL_NUM_BASE_PARAMS + 1, urlGadgetUri.getQueryParameters().size());
+    assertEquals(version, urlGadgetUri.getQueryParameter(Param.VERSION.getKey()));
   }
 
   @Test
@@ -483,6 +800,21 @@ public class DefaultIframeUriManagerTest
     assertEquals(0, uri.getFragmentParameters().size());
     assertEquals("inVal1", uri.getQueryParameter("up_specKey1"));
     assertEquals("specDefault2", uri.getQueryParameter("up_specKey2"));
+
+    Map<String, Uri> uris = manager.makeAllRenderingUris(gadget);
+    assertNotNull(uris);
+
+    UriBuilder htmlGadgetUri = new UriBuilder(uris.get(VIEW));
+    assertEquals(TYPE_HTML_NUM_BASE_PARAMS + 2, htmlGadgetUri.getQueryParameters().size());
+    assertEquals(0, htmlGadgetUri.getFragmentParameters().size());
+    assertEquals("inVal1", htmlGadgetUri.getQueryParameter("up_specKey1"));
+    assertEquals("specDefault2", htmlGadgetUri.getQueryParameter("up_specKey2"));
+
+    UriBuilder urlGadgetUri = new UriBuilder(uris.get(ANOTHER_VIEW));
+    assertEquals(TYPE_URL_NUM_BASE_PARAMS, urlGadgetUri.getQueryParameters().size());
+    assertEquals(2, urlGadgetUri.getFragmentParameters().size());
+    assertEquals("inVal1", urlGadgetUri.getFragmentParameter("up_specKey1"));
+    assertEquals("specDefault2", urlGadgetUri.getFragmentParameter("up_specKey2"));
   }
 
   @Test
@@ -506,6 +838,21 @@ public class DefaultIframeUriManagerTest
     assertEquals(2, uri.getFragmentParameters().size());
     assertEquals("inVal1", uri.getFragmentParameter("up_specKey1"));
     assertEquals("specDefault2", uri.getFragmentParameter("up_specKey2"));
+
+    Map<String, Uri> uris = manager.makeAllRenderingUris(gadget);
+    assertNotNull(uris);
+
+    UriBuilder htmlGadgetUri = new UriBuilder(uris.get(VIEW));
+    assertEquals(TYPE_HTML_NUM_BASE_PARAMS, htmlGadgetUri.getQueryParameters().size());
+    assertEquals(2, htmlGadgetUri.getFragmentParameters().size());
+    assertEquals("inVal1", htmlGadgetUri.getFragmentParameter("up_specKey1"));
+    assertEquals("specDefault2", htmlGadgetUri.getFragmentParameter("up_specKey2"));
+
+    UriBuilder urlGadgetUri = new UriBuilder(uris.get(ANOTHER_VIEW));
+    assertEquals(TYPE_URL_NUM_BASE_PARAMS + 2, urlGadgetUri.getQueryParameters().size());
+    assertEquals(0, urlGadgetUri.getFragmentParameters().size());
+    assertEquals("inVal1", urlGadgetUri.getQueryParameter("up_specKey1"));
+    assertEquals("specDefault2", urlGadgetUri.getQueryParameter("up_specKey2"));
   }
 
   @Test
@@ -518,6 +865,11 @@ public class DefaultIframeUriManagerTest
     assertNotNull(result);
     UriBuilder uri = new UriBuilder(result);
     assertEquals(scheme, uri.getScheme());
+
+    Map<String, Uri> uris = manager.makeAllRenderingUris(gadget);
+    assertNotNull(uris);
+    assertEquals(scheme, new UriBuilder(uris.get(VIEW)).getScheme());
+    assertFalse(scheme.equalsIgnoreCase(new UriBuilder(uris.get(ANOTHER_VIEW)).getScheme()));
   }
 
   @Test
@@ -617,6 +969,27 @@ public class DefaultIframeUriManagerTest
     // Basic sanity checks on params
     assertEquals(TYPE_HTML_NUM_BASE_PARAMS, uri.getQueryParameters().size());
     assertEquals(0, uri.getFragmentParameters().size());
+
+    Map<String, Uri> uris = manager.makeAllRenderingUris(gadget);
+    assertNotNull(uris);
+
+    UriBuilder htmlGadgetUri = new UriBuilder(uris.get(VIEW));
+    assertEquals("", htmlGadgetUri.getScheme());
+    assertEquals(UNLOCKED_DOMAIN, htmlGadgetUri.getAuthority());
+    assertEquals(IFRAME_PATH, htmlGadgetUri.getPath());
+
+    // Basic sanity checks on params
+    assertEquals(TYPE_HTML_NUM_BASE_PARAMS, htmlGadgetUri.getQueryParameters().size());
+    assertEquals(0, htmlGadgetUri.getFragmentParameters().size());
+
+    UriBuilder urlGadgetUri = new UriBuilder(uris.get(ANOTHER_VIEW));
+    assertEquals("http", urlGadgetUri.getScheme());
+    assertEquals("example.com", urlGadgetUri.getAuthority());
+    assertEquals("/gadget.xml", urlGadgetUri.getPath());
+
+    // Basic sanity checks on params
+    assertEquals(TYPE_URL_NUM_BASE_PARAMS, urlGadgetUri.getQueryParameters().size());
+    assertEquals(0, urlGadgetUri.getFragmentParameters().size());
   }
 
   private Uri makeValidationTestUri(String domain, String version) {

Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/UriManagerTestBase.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/UriManagerTestBase.java?rev=1238135&r1=1238134&r2=1238135&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/UriManagerTestBase.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/UriManagerTestBase.java Tue Jan 31 02:23:24 2012
@@ -45,6 +45,7 @@ public class UriManagerTestBase {
   protected static final String CONTAINER = "container";
   protected static final Uri SPEC_URI = Uri.parse("http://example.com/gadget.xml");
   protected static final String VIEW = "theview";
+  protected static final String ANOTHER_VIEW = "anotherview";
   protected static final String LANG = "en";
   protected static final String COUNTRY = "US";
 
@@ -78,10 +79,11 @@ public class UriManagerTestBase {
   }
 
   // Actually generates the mock gadget. Used for error (null value) tests.
-  protected Gadget mockGadget(String targetUrl, boolean isTypeUrl, String viewStr, String lang,
+  protected Gadget mockGadget(String targetUrl, boolean isTypeUrl, String currentViewStr, String lang,
       String country, boolean isDebug, boolean ignoreCache, boolean sanitize, boolean cajoled,
       Map<String, String> specPrefs, Map<String, String> inPrefs, boolean needsPrefSubst, List<String> features) {
-    View view = createMock(View.class);
+    View currentView = createMock(View.class);
+    View secondView = createMock(View.class);
     ModulePrefs modulePrefs = createMock(ModulePrefs.class);
     GadgetSpec spec = createMock(GadgetSpec.class);
     GadgetContext context = createMock(GadgetContext.class);
@@ -90,13 +92,18 @@ public class UriManagerTestBase {
     // Base URL/view.
     Uri targetUri = Uri.parse(targetUrl);
     if (isTypeUrl) {
-      expect(view.getType()).andReturn(ContentType.URL).anyTimes();
-      expect(view.getHref()).andReturn(targetUri).anyTimes();
+      expect(currentView.getType()).andReturn(ContentType.URL).anyTimes();
+      expect(currentView.getHref()).andReturn(targetUri).anyTimes();
+      expect(secondView.getType()).andReturn(ContentType.HTML).anyTimes();
+      expect(spec.getUrl()).andReturn(targetUri).anyTimes();
     } else {
-      expect(view.getType()).andReturn(ContentType.HTML).anyTimes();
+      expect(currentView.getType()).andReturn(ContentType.HTML).anyTimes();
       expect(spec.getUrl()).andReturn(targetUri).anyTimes();
+      expect(secondView.getType()).andReturn(ContentType.URL).anyTimes();
+      expect(secondView.getHref()).andReturn(targetUri).anyTimes();
     }
-    expect(view.getName()).andReturn(viewStr).anyTimes();
+    expect(currentView.getName()).andReturn(currentViewStr).anyTimes();
+    expect(secondView.getName()).andReturn(ANOTHER_VIEW).anyTimes();
 
     // Basic context info
     Locale locale = new Locale(lang, country);
@@ -131,16 +138,22 @@ public class UriManagerTestBase {
     UserPrefs ctxPrefs = new UserPrefs(inPrefs);
     expect(context.getUserPrefs()).andReturn(ctxPrefs).anyTimes();
     expect(context.getParameter(Param.REFRESH.getKey())).andReturn(null).anyTimes();
-    expect(view.needsUserPrefSubstitution()).andReturn(needsPrefSubst).anyTimes();
+    expect(currentView.needsUserPrefSubstitution()).andReturn(needsPrefSubst).anyTimes();
+    expect(secondView.needsUserPrefSubstitution()).andReturn(!needsPrefSubst).anyTimes();
+
+    Map<String, View> views = Maps.newHashMap();
+    views.put(VIEW, currentView);
+    views.put(ANOTHER_VIEW, secondView);
 
     // Link all the mocks together
+    expect(spec.getViews()).andReturn(views).anyTimes();
     expect(spec.getModulePrefs()).andReturn(modulePrefs).anyTimes();
-    expect(gadget.getCurrentView()).andReturn(view).anyTimes();
+    expect(gadget.getCurrentView()).andReturn(currentView).anyTimes();
     expect(gadget.getSpec()).andReturn(spec).anyTimes();
     expect(gadget.getContext()).andReturn(context).anyTimes();
 
     // Replay all
-    replay(view, modulePrefs, spec, context, gadget);
+    replay(currentView, secondView, modulePrefs, spec, context, gadget);
 
     // Return the gadget
     return gadget;