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;