You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by zh...@apache.org on 2010/11/09 01:55:16 UTC
svn commit: r1032799 - in /shindig/trunk/java/gadgets/src:
main/java/org/apache/shindig/gadgets/render/
main/java/org/apache/shindig/gadgets/servlet/
main/java/org/apache/shindig/gadgets/uri/
test/java/org/apache/shindig/gadgets/render/ test/java/org/a...
Author: zhoresh
Date: Tue Nov 9 00:55:16 2010
New Revision: 1032799
URL: http://svn.apache.org/viewvc?rev=1032799&view=rev
Log:
Ref http://codereview.appspot.com/2911041/
Update JsUriManager interface to use JsUri
Modified:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriter.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsServlet.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsUriManager.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsVersioner.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/JsUriManager.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriterTest.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/JsServletTest.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultJsUriManagerTest.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultJsVersionerTest.java
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriter.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriter.java?rev=1032799&r1=1032798&r2=1032799&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriter.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriter.java Tue Nov 9 00:55:16 2010
@@ -40,6 +40,7 @@ import org.apache.shindig.gadgets.spec.M
import org.apache.shindig.gadgets.spec.UserPref;
import org.apache.shindig.gadgets.spec.View;
import org.apache.shindig.gadgets.uri.JsUriManager;
+import org.apache.shindig.gadgets.uri.JsUriManager.JsUri;
import org.apache.commons.lang.StringUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -228,7 +229,7 @@ public class RenderingGadgetRewriter imp
}
if (!externForcedLibs.isEmpty()) {
- String jsUrl = jsUriManager.makeExternJsUri(gadget.getContext(), externForcedLibs)
+ String jsUrl = jsUriManager.makeExternJsUri(new JsUri(gadget, externForcedLibs))
.toString();
Element libsTag = headTag.getOwnerDocument().createElement("script");
libsTag.setAttribute("src", jsUrl);
@@ -271,7 +272,7 @@ public class RenderingGadgetRewriter imp
externGadgetLibs.removeAll(externForcedLibs);
if (!externGadgetLibs.isEmpty()) {
- String jsUrl = jsUriManager.makeExternJsUri(gadget.getContext(), externGadgetLibs)
+ String jsUrl = jsUriManager.makeExternJsUri(new JsUri(gadget, externGadgetLibs))
.toString();
Element libsTag = headTag.getOwnerDocument().createElement("script");
libsTag.setAttribute("src", jsUrl);
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsServlet.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsServlet.java?rev=1032799&r1=1032798&r2=1032799&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsServlet.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsServlet.java Tue Nov 9 00:55:16 2010
@@ -26,9 +26,7 @@ import org.apache.shindig.common.servlet
import org.apache.shindig.common.servlet.InjectedServlet;
import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.common.uri.UriBuilder;
-import org.apache.shindig.gadgets.GadgetContext;
import org.apache.shindig.gadgets.GadgetException;
-import org.apache.shindig.gadgets.RenderingContext;
import org.apache.shindig.gadgets.uri.JsUriManager;
import org.apache.shindig.gadgets.uri.UriStatus;
import org.apache.shindig.gadgets.uri.JsUriManager.JsUri;
@@ -172,12 +170,10 @@ public class JsServlet extends InjectedS
return;
}
- GadgetContext ctx = makeContextObject(jsUri);
-
- Uri incUri = jsUriManager.makeExternJsUri(ctx, jsUri.getLibs());
+ Uri incUri = jsUriManager.makeExternJsUri(jsUri);
+ // Remove the JsLoad param so we want get here again
UriBuilder uriBuilder = new UriBuilder(incUri);
- uriBuilder.putQueryParameter(Param.ONLOAD.getKey(), onloadStr);
- uriBuilder.putQueryParameter(Param.NO_CACHE.getKey(), jsUri.isNoCache() ? "1" : "0");
+ uriBuilder.removeQueryParameter(Param.JSLOAD.getKey());
incUri = uriBuilder.toUri();
int refresh = getCacheTtlSecs(jsUri);
@@ -237,33 +233,4 @@ public class JsServlet extends InjectedS
break;
}
}
-
- private GadgetContext makeContextObject(final JsUri jsUri) {
- return new GadgetContext() {
- @Override
- public RenderingContext getRenderingContext() {
- return jsUri.getContext();
- }
-
- @Override
- public String getContainer() {
- return jsUri.getContainer();
- }
-
- @Override
- public Uri getUrl() {
- return jsUri.getGadget() != null ? Uri.parse(jsUri.getGadget()) : null;
- }
-
- @Override
- public boolean getIgnoreCache() {
- return jsUri.isNoCache();
- }
-
- @Override
- public boolean getDebug() {
- return jsUri.isDebug();
- }
- };
- }
}
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsUriManager.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsUriManager.java?rev=1032799&r1=1032798&r2=1032799&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsUriManager.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsUriManager.java Tue Nov 9 00:55:16 2010
@@ -25,7 +25,6 @@ import org.apache.commons.lang.StringUti
import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.common.uri.UriBuilder;
import org.apache.shindig.config.ContainerConfig;
-import org.apache.shindig.gadgets.GadgetContext;
import org.apache.shindig.gadgets.GadgetException;
import org.apache.shindig.gadgets.RenderingContext;
import org.apache.shindig.gadgets.GadgetException.Code;
@@ -54,7 +53,7 @@ public class DefaultJsUriManager impleme
this.versioner = versioner;
}
- public Uri makeExternJsUri(GadgetContext ctx, Collection<String> extern) {
+ public Uri makeExternJsUri(JsUri ctx) {
String container = ctx.getContainer();
String jsHost = getReqConfig(container, JS_HOST_PARAM);
String jsPathBase = getReqConfig(container, JS_PATH_PARAM);
@@ -67,7 +66,7 @@ public class DefaultJsUriManager impleme
if (!jsPathBase.endsWith("/")) {
jsPath.append('/');
}
- jsPath.append(addJsLibs(extern));
+ jsPath.append(addJsLibs(ctx.getLibs()));
jsPath.append(JS_SUFFIX);
uri.setPath(jsPath.toString());
@@ -76,24 +75,32 @@ public class DefaultJsUriManager impleme
// Pass through nocache param for dev purposes.
uri.addQueryParameter(Param.NO_CACHE.getKey(),
- ctx.getIgnoreCache() ? "1" : "0");
+ ctx.isNoCache() ? "1" : "0");
// Pass through debug param for debugging use.
uri.addQueryParameter(Param.DEBUG.getKey(),
- ctx.getDebug() ? "1" : "0");
+ ctx.isDebug() ? "1" : "0");
uri.addQueryParameter(Param.CONTAINER_MODE.getKey(),
- ctx.getRenderingContext() == RenderingContext.CONTAINER ? "1" : "0");
+ ctx.getContext() == RenderingContext.CONTAINER ? "1" : "0");
// Pass through gadget Uri
if (addGadgetUri()) {
- uri.addQueryParameter(Param.URL.getKey(), ctx.getUrl().toString());
+ uri.addQueryParameter(Param.URL.getKey(), ctx.getGadget());
+ }
+
+ if (ctx.getOnload() != null) {
+ uri.addQueryParameter(Param.ONLOAD.getKey(), ctx.getOnload());
+ }
+
+ if (ctx.isJsload()) {
+ uri.addQueryParameter(Param.JSLOAD.getKey(), "1");
}
// Finally, version it, but only if !nocache.
- if (versioner != null && !ctx.getIgnoreCache()) {
+ if (versioner != null && !ctx.isNoCache()) {
uri.addQueryParameter(Param.VERSION.getKey(),
- versioner.version(ctx.getUrl(), container, extern));
+ versioner.version(ctx.getGadget(), container, ctx.getLibs()));
}
return uri.toUri();
@@ -145,12 +152,8 @@ public class DefaultJsUriManager impleme
UriStatus status = UriStatus.VALID_UNVERSIONED;
String version = uri.getQueryParameter(Param.VERSION.getKey());
if (version != null && versioner != null) {
- Uri gadgetUri = null;
String gadgetParam = uri.getQueryParameter(Param.URL.getKey());
- if (gadgetParam != null) {
- gadgetUri = Uri.parse(gadgetParam);
- }
- status = versioner.validate(gadgetUri, container, libs, version);
+ status = versioner.validate(gadgetParam, container, libs, version);
}
return new JsUri(status, uri, libs);
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsVersioner.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsVersioner.java?rev=1032799&r1=1032798&r2=1032799&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsVersioner.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsVersioner.java Tue Nov 9 00:55:16 2010
@@ -20,7 +20,6 @@ package org.apache.shindig.gadgets.uri;
import java.util.Collection;
-import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.common.util.HashUtil;
import org.apache.shindig.gadgets.GadgetContext;
import org.apache.shindig.gadgets.RenderingContext;
@@ -42,54 +41,54 @@ import java.util.Map;
public class DefaultJsVersioner implements Versioner {
private final FeatureRegistry registry;
private final Map<List<FeatureResource>, String> versionCache;
-
+
@Inject
public DefaultJsVersioner(FeatureRegistry registry) {
this.registry = registry;
this.versionCache = Maps.newHashMap();
}
- public String version(Uri gadgetUri, final String container, Collection<String> extern) {
+ public String version(String gadgetUri, final String container, Collection<String> extern) {
GadgetContext ctx = new GadgetContext() {
@Override
public String getContainer() {
return container;
}
-
+
@Override
public RenderingContext getRenderingContext() {
return RenderingContext.GADGET;
}
};
-
+
// Registry itself will cache these requests.
List<FeatureResource> resources = registry.getFeatureResources(ctx, extern, null);
if (versionCache.containsKey(resources)) {
return versionCache.get(resources);
}
-
+
StringBuilder jsBuf = new StringBuilder();
for (FeatureResource resource : resources) {
jsBuf.append(resource.getContent()).append(resource.getDebugContent());
}
-
+
String checksum = HashUtil.checksum(jsBuf.toString().getBytes());
versionCache.put(resources, checksum);
return checksum;
}
-
- public UriStatus validate(Uri gadgetUri, String container,
+
+ public UriStatus validate(String gadgetUri, String container,
Collection<String> extern, String version) {
if (version == null || version.length() == 0) {
return UriStatus.VALID_UNVERSIONED;
}
-
+
// Punt up to version(), utilizing its cache.
String expectedVersion = version(gadgetUri, container, extern);
if (version.equals(expectedVersion)) {
return UriStatus.VALID_VERSIONED;
}
-
+
return UriStatus.INVALID_VERSION;
}
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/JsUriManager.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/JsUriManager.java?rev=1032799&r1=1032798&r2=1032799&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/JsUriManager.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/JsUriManager.java Tue Nov 9 00:55:16 2010
@@ -22,11 +22,12 @@ import java.util.Collection;
import java.util.Collections;
import org.apache.shindig.common.uri.Uri;
-import org.apache.shindig.gadgets.GadgetContext;
+import org.apache.shindig.gadgets.Gadget;
import org.apache.shindig.gadgets.GadgetException;
import org.apache.shindig.gadgets.RenderingContext;
import org.apache.shindig.gadgets.uri.UriCommon.Param;
+import com.google.common.base.Objects;
import com.google.inject.ImplementedBy;
/**
@@ -34,11 +35,10 @@ import com.google.inject.ImplementedBy;
*/
public interface JsUriManager {
/**
- * @param ctx The gadget context in which the requested JS will be externed.
- * @param extern The list of features that js is needed for.
+ * @param ctx The js parameters.
* @return The uri for the externed javascript that includes all listed extern libraries.
*/
- Uri makeExternJsUri(GadgetContext ctx, Collection<String> extern);
+ Uri makeExternJsUri(JsUri ctx);
/**
* Processes the inbound URL, for use by serving code in determining which JS to serve
@@ -74,6 +74,32 @@ public interface JsUriManager {
this(status, null, libs);
}
+ public JsUri(UriStatus status, Collection<String> libs, RenderingContext context,
+ String onload, boolean jsload) {
+ super(status, null);
+ this.context = context;
+ this.onload = onload;
+ this.jsload = jsload;
+ this.libs = libs;
+ }
+
+ public JsUri(Gadget gadget, Collection<String> libs) {
+ super(gadget);
+ this.onload = null;
+ this.jsload = false;
+ this.context = RenderingContext.GADGET;
+ this.libs = libs;
+ }
+
+ public JsUri(Integer refresh, boolean debug, boolean noCache, String container, String gadget,
+ Collection<String> libs, String onload, boolean jsload, RenderingContext context) {
+ super(null, refresh, debug, noCache, container, gadget);
+ this.onload = onload;
+ this.jsload = jsload;
+ this.context = context;
+ this.libs = libs;
+ }
+
public Collection<String> getLibs() {
return Collections.unmodifiableCollection(libs);
}
@@ -89,6 +115,22 @@ public interface JsUriManager {
public boolean isJsload() {
return jsload;
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof JsUri)) {
+ return false;
+ }
+ JsUri objUri = (JsUri) obj;
+ return (super.equals(obj)
+ && Objects.equal(this.libs, objUri.libs)
+ && Objects.equal(this.onload, objUri.onload)
+ && Objects.equal(this.jsload, objUri.jsload)
+ && Objects.equal(this.context, objUri.context));
+ }
}
@ImplementedBy(DefaultJsVersioner.class)
@@ -99,7 +141,7 @@ public interface JsUriManager {
* @param extern Collection of libs externed.
* @return Version string for the Uri.
*/
- String version(Uri gadgetUri, String container, Collection<String> extern);
+ String version(String gadgetUri, String container, Collection<String> extern);
/**
* @param gadgetUri Gadget for which extern Uri was generated.
@@ -107,6 +149,6 @@ public interface JsUriManager {
* @param version Version string generated by the Versioner.
* @return Validation status of the version.
*/
- UriStatus validate(Uri gadgetUri, String container, Collection<String> extern, String version);
+ UriStatus validate(String gadgetUri, String container, Collection<String> extern, String version);
}
}
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriterTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriterTest.java?rev=1032799&r1=1032798&r2=1032799&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriterTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriterTest.java Tue Nov 9 00:55:16 2010
@@ -32,7 +32,6 @@ import static org.easymock.EasyMock.same
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertNull;
import org.apache.shindig.common.JsonAssert;
import org.apache.shindig.common.PropertiesModule;
@@ -955,8 +954,8 @@ public class RenderingGadgetRewriterTest
List<String> emptyList = Lists.newArrayList();
expect(featureRegistry.getFeatureResources(same(gadgetContext), eq(externLibs), eq(emptyList)))
.andReturn(externResources);
- expect(featureRegistry.getFeatureResources(same(gadgetContext), eq(gadgetFeatures), eq(emptyList)))
- .andReturn(gadgetResources);
+ expect(featureRegistry.getFeatureResources(same(gadgetContext), eq(gadgetFeatures),
+ eq(emptyList))).andReturn(gadgetResources);
expect(featureRegistry.getFeatures(eq(allFeatures)))
.andReturn(allFeatures);
expect(featureRegistry.getFeatures(eq(allFeaturesAndLibs)))
@@ -999,8 +998,8 @@ public class RenderingGadgetRewriterTest
}
private static class FakeJsUriManager implements JsUriManager {
- public Uri makeExternJsUri(GadgetContext ctx, Collection<String> extern) {
- return Uri.parse("/js/" + Join.join(":", extern));
+ public Uri makeExternJsUri(JsUri ctx) {
+ return Uri.parse("/js/" + Join.join(":", ctx.getLibs()));
}
public JsUri processExternJsUri(Uri uri) {
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/JsServletTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/JsServletTest.java?rev=1032799&r1=1032798&r2=1032799&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/JsServletTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/JsServletTest.java Tue Nov 9 00:55:16 2010
@@ -24,15 +24,12 @@ import static org.easymock.EasyMock.isA;
import com.google.caja.util.Lists;
import org.apache.shindig.common.uri.Uri;
-import org.apache.shindig.gadgets.GadgetContext;
import org.apache.shindig.gadgets.RenderingContext;
import org.apache.shindig.gadgets.uri.JsUriManager;
import org.apache.shindig.gadgets.uri.JsUriManager.JsUri;
import org.junit.Before;
import org.junit.Test;
-import java.util.Collection;
-
import javax.servlet.http.HttpServletResponse;
public class JsServletTest extends ServletTestFixture {
@@ -84,47 +81,39 @@ public class JsServletTest extends Servl
@Test
@SuppressWarnings("unchecked")
public void testDoJsloadNormal() throws Exception {
- String url = "http://localhost/gadgets/js/feature.js?v=abc";
+ String url = "http://localhost/gadgets/js/feature.js?v=abc&nocache=0&onload=" + ONLOAD_PARAM;
JsUri jsUri = mockJsUri(CONTAINER_PARAM, RenderingContext.CONTAINER, true, true, false,
ONLOAD_PARAM, REFRESH_INTERVAL_SEC);
expect(jsUriManagerMock.processExternJsUri(isA(Uri.class))).andReturn(jsUri);
- expect(jsUriManagerMock.makeExternJsUri(isA(GadgetContext.class),
- isA(Collection.class))).andReturn(Uri.parse(url));
+ expect(jsUriManagerMock.makeExternJsUri(isA(JsUri.class)))
+ .andReturn(Uri.parse(url + "&jsload=1"));
httpUtilMock.setCachingHeaders(recorder, REFRESH_INTERVAL_SEC, false);
replay();
servlet.doGet(request, recorder);
assertEquals(HttpServletResponse.SC_OK, recorder.getHttpStatusCode());
- assertEquals(
- String.format(JsServlet.JSLOAD_JS_TPL, url
- + "&onload=" + ONLOAD_PARAM
- + "&nocache=0"),
- recorder.getResponseAsString());
+ assertEquals(String.format(JsServlet.JSLOAD_JS_TPL, url), recorder.getResponseAsString());
verify();
}
@Test
@SuppressWarnings("unchecked")
public void testDoJsloadWithJsLoadTimeout() throws Exception {
- String url = "http://localhost/gadgets/js/feature.js?v=abc";
+ String url = "http://localhost/gadgets/js/feature.js?v=abc&nocache=0&onload=" + ONLOAD_PARAM;
JsUri jsUri = mockJsUri(CONTAINER_PARAM, RenderingContext.CONTAINER, true, true,
false, ONLOAD_PARAM, -1); // Disable refresh interval.
expect(jsUriManagerMock.processExternJsUri(isA(Uri.class))).andReturn(jsUri);
- expect(jsUriManagerMock.makeExternJsUri(isA(GadgetContext.class),
- isA(Collection.class))).andReturn(Uri.parse(url));
+ expect(jsUriManagerMock.makeExternJsUri(isA(JsUri.class)))
+ .andReturn(Uri.parse(url + "&jsload=1"));
servlet.setJsloadTtlSecs(TIMEOUT_SEC); // Enable JS load timeout.
httpUtilMock.setCachingHeaders(recorder, TIMEOUT_SEC, false);
replay();
servlet.doGet(request, recorder);
assertEquals(HttpServletResponse.SC_OK, recorder.getHttpStatusCode());
- assertEquals(
- String.format(JsServlet.JSLOAD_JS_TPL, url
- + "&onload=" + ONLOAD_PARAM
- + "&nocache=0"),
- recorder.getResponseAsString());
+ assertEquals(String.format(JsServlet.JSLOAD_JS_TPL, url), recorder.getResponseAsString());
verify();
}
@@ -144,24 +133,20 @@ public class JsServletTest extends Servl
@Test
public void testDoJsloadNoCache() throws Exception {
- String url = "http://localhost/gadgets/js/feature.js?v=abc";
+ String url = "http://localhost/gadgets/js/feature.js?v=abc&nocache=1&onload=" + ONLOAD_PARAM;
JsUri jsUri = mockJsUri(CONTAINER_PARAM, RenderingContext.CONTAINER, true, true,
true, // Set to no cache.
ONLOAD_PARAM, REFRESH_INTERVAL_SEC);
expect(jsUriManagerMock.processExternJsUri(isA(Uri.class))).andReturn(jsUri);
- expect(jsUriManagerMock.makeExternJsUri(isA(GadgetContext.class),
- isA(Collection.class))).andReturn(Uri.parse(url));
+ expect(jsUriManagerMock.makeExternJsUri(isA(JsUri.class)))
+ .andReturn(Uri.parse(url + "&jsload=1"));
httpUtilMock.setCachingHeaders(recorder, 0, false); // TTL of 0 is set.
replay();
servlet.doGet(request, recorder);
assertEquals(HttpServletResponse.SC_OK, recorder.getHttpStatusCode());
- assertEquals(
- String.format(JsServlet.JSLOAD_JS_TPL, url
- + "&onload=" + ONLOAD_PARAM
- + "&nocache=1"),
- recorder.getResponseAsString());
+ assertEquals(String.format(JsServlet.JSLOAD_JS_TPL, url), recorder.getResponseAsString());
verify();
}
}
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultJsUriManagerTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultJsUriManagerTest.java?rev=1032799&r1=1032798&r2=1032799&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultJsUriManagerTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultJsUriManagerTest.java Tue Nov 9 00:55:16 2010
@@ -32,8 +32,6 @@ import com.google.common.collect.Lists;
import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.config.ContainerConfig;
-import org.apache.shindig.gadgets.Gadget;
-import org.apache.shindig.gadgets.GadgetContext;
import org.apache.shindig.gadgets.GadgetException;
import org.apache.shindig.gadgets.RenderingContext;
import org.apache.shindig.gadgets.uri.JsUriManager.JsUri;
@@ -46,32 +44,32 @@ import java.util.List;
public class DefaultJsUriManagerTest {
private static final String CONTAINER = "container";
- private static final Uri GADGET_URI = Uri.parse("http://example.com/gadget.xml");
+ private static final String GADGET_URI = "http://example.com/gadget.xml";
// makeJsUri tests
@Test(expected = RuntimeException.class)
public void makeMissingHostConfig() {
ContainerConfig config = mockConfig(null, "/gadgets/js");
DefaultJsUriManager manager = makeManager(config, null);
- GadgetContext ctx = mockGadgetContext(false, false);
- manager.makeExternJsUri(ctx, null);
+ JsUri ctx = mockGadgetContext(false, false, null);
+ manager.makeExternJsUri(ctx);
}
@Test(expected = RuntimeException.class)
public void makeMissingPathConfig() {
ContainerConfig config = mockConfig("foo", null);
DefaultJsUriManager manager = makeManager(config, null);
- GadgetContext ctx = mockGadgetContext(false, false);
- manager.makeExternJsUri(ctx, null);
+ JsUri ctx = mockGadgetContext(false, false, null);
+ manager.makeExternJsUri(ctx);
}
@Test
public void makeJsUriNoPathSlashNoVersion() {
ContainerConfig config = mockConfig("http://www.js.org", "/gadgets/js/");
TestDefaultJsUriManager manager = makeManager(config, null);
- GadgetContext ctx = mockGadgetContext(false, false);
List<String> extern = Lists.newArrayList("feature");
- Uri jsUri = manager.makeExternJsUri(ctx, extern);
+ JsUri ctx = mockGadgetContext(false, false, extern);
+ Uri jsUri = manager.makeExternJsUri(ctx);
assertFalse(manager.hadError());
assertEquals("http", jsUri.getScheme());
assertEquals("www.js.org", jsUri.getAuthority());
@@ -86,9 +84,9 @@ public class DefaultJsUriManagerTest {
public void makeJsUriAddPathSlashNoVersion() {
ContainerConfig config = mockConfig("http://www.js.org", "/gadgets/js");
TestDefaultJsUriManager manager = makeManager(config, null);
- GadgetContext ctx = mockGadgetContext(false, false);
List<String> extern = Lists.newArrayList("feature");
- Uri jsUri = manager.makeExternJsUri(ctx, extern);
+ JsUri ctx = mockGadgetContext(false, false, extern);
+ Uri jsUri = manager.makeExternJsUri(ctx);
assertFalse(manager.hadError());
assertEquals("http", jsUri.getScheme());
assertEquals("www.js.org", jsUri.getAuthority());
@@ -102,12 +100,12 @@ public class DefaultJsUriManagerTest {
@Test
public void makeJsUriAddPathSlashVersioned() {
ContainerConfig config = mockConfig("http://www.js.org", "/gadgets/js");
- GadgetContext ctx = mockGadgetContext(false, false);
List<String> extern = Lists.newArrayList("feature");
+ JsUri ctx = mockGadgetContext(false, false, extern);
String version = "verstring";
Versioner versioner = this.mockVersioner(extern, version, version);
TestDefaultJsUriManager manager = makeManager(config, versioner);
- Uri jsUri = manager.makeExternJsUri(ctx, extern);
+ Uri jsUri = manager.makeExternJsUri(ctx);
assertFalse(manager.hadError());
assertEquals("http", jsUri.getScheme());
assertEquals("www.js.org", jsUri.getAuthority());
@@ -122,12 +120,12 @@ public class DefaultJsUriManagerTest {
@Test
public void makeJsUriWithVersionerNoVersionOnIgnoreCache() {
ContainerConfig config = mockConfig("http://www.js.org", "/gadgets/js");
- GadgetContext ctx = mockGadgetContext(true, false); // no cache
List<String> extern = Lists.newArrayList("feature");
+ JsUri ctx = mockGadgetContext(true, false, extern); // no cache
String version = "verstring";
Versioner versioner = this.mockVersioner(extern, version, version);
TestDefaultJsUriManager manager = makeManager(config, versioner);
- Uri jsUri = manager.makeExternJsUri(ctx, extern);
+ Uri jsUri = manager.makeExternJsUri(ctx);
assertFalse(manager.hadError());
assertEquals("http", jsUri.getScheme());
assertEquals("www.js.org", jsUri.getAuthority());
@@ -144,9 +142,9 @@ public class DefaultJsUriManagerTest {
public void makeJsUriWithContainerContext() {
ContainerConfig config = mockConfig("http://www.js.org", "/gadgets/js/");
TestDefaultJsUriManager manager = makeManager(config, null);
- GadgetContext ctx = mockGadgetContext(false, false, true);
List<String> extern = Lists.newArrayList("feature", "another");
- Uri jsUri = manager.makeExternJsUri(ctx, extern);
+ JsUri ctx = mockGadgetContext(false, false, extern, true);
+ Uri jsUri = manager.makeExternJsUri(ctx);
assertFalse(manager.hadError());
assertEquals("http", jsUri.getScheme());
assertEquals("www.js.org", jsUri.getAuthority());
@@ -278,12 +276,12 @@ public class DefaultJsUriManagerTest {
public void makeAndProcessSymmetric() throws GadgetException {
// Make...
ContainerConfig config = mockConfig("http://www.js.org", "/gadgets/js");
- GadgetContext ctx = mockGadgetContext(false, false);
List<String> extern = Lists.newArrayList("feature1", "feature2", "feature3");
+ JsUri ctx = mockGadgetContext(false, false, extern);
String version = "verstring";
Versioner versioner = mockVersioner(extern, version, version);
TestDefaultJsUriManager manager = makeManager(config, versioner);
- Uri jsUri = manager.makeExternJsUri(ctx, extern);
+ Uri jsUri = manager.makeExternJsUri(ctx);
assertFalse(manager.hadError());
assertEquals("http", jsUri.getScheme());
assertEquals("www.js.org", jsUri.getAuthority());
@@ -349,18 +347,22 @@ public class DefaultJsUriManagerTest {
return versioner;
}
- private GadgetContext mockGadgetContext(boolean nocache, boolean debug) {
- return mockGadgetContext(nocache, debug, false);
+ private JsUri mockGadgetContext(boolean nocache, boolean debug, List<String> extern) {
+ return mockGadgetContext(nocache, debug, extern, false);
}
- private GadgetContext mockGadgetContext(boolean nocache, boolean debug, boolean isContainer) {
- GadgetContext context = createMock(GadgetContext.class);
- expect(context.getContainer()).andReturn(CONTAINER).anyTimes();
- expect(context.getIgnoreCache()).andReturn(nocache).anyTimes();
- expect(context.getDebug()).andReturn(debug).anyTimes();
- expect(context.getUrl()).andReturn(GADGET_URI).anyTimes();
- expect(context.getRenderingContext()).andReturn(
- isContainer ? RenderingContext.CONTAINER : RenderingContext.GADGET).anyTimes();
+ private JsUri mockGadgetContext(boolean nocache, boolean debug,
+ List<String> extern, boolean isContainer) {
+ JsUri context = createMock(JsUri.class);
+ expect(context.getContainer()).andStubReturn(CONTAINER);
+ expect(context.isNoCache()).andStubReturn(nocache);
+ expect(context.isDebug()).andStubReturn(debug);
+ expect(context.getGadget()).andStubReturn(GADGET_URI);
+ expect(context.getContext()).andStubReturn(
+ isContainer ? RenderingContext.CONTAINER : RenderingContext.GADGET);
+ expect(context.getLibs()).andStubReturn(extern);
+ expect(context.getOnload()).andStubReturn(null);
+ expect(context.isJsload()).andStubReturn(false);
replay(context);
return context;
}
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultJsVersionerTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultJsVersionerTest.java?rev=1032799&r1=1032798&r2=1032799&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultJsVersionerTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultJsVersionerTest.java Tue Nov 9 00:55:16 2010
@@ -31,7 +31,6 @@ import static org.junit.Assert.assertNot
import static org.junit.Assert.assertSame;
import com.google.common.collect.Lists;
-import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.gadgets.GadgetContext;
import org.apache.shindig.gadgets.features.FeatureRegistry;
import org.apache.shindig.gadgets.features.FeatureResource;
@@ -49,9 +48,9 @@ import java.util.List;
* gets appropriately cached and differs when JS content differs.
*/
public class DefaultJsVersionerTest {
- private static final Uri URI = Uri.parse("http://apache.org/gadget.xml");
+ private static final String URI = "http://apache.org/gadget.xml";
private static final String CONTAINER = "container";
-
+
private DefaultJsVersioner versioner;
private FeatureRegistry registry;
@@ -60,7 +59,7 @@ public class DefaultJsVersionerTest {
registry = createMock(FeatureRegistry.class);
versioner = new DefaultJsVersioner(registry);
}
-
+
@Test
public void versionCached() {
String feature = "feature1";
@@ -73,7 +72,7 @@ public class DefaultJsVersionerTest {
assertSame(version, versionAgain);
verify(registry);
}
-
+
@Test
public void versionDifferentForDifferentFeatures() {
String feature1 = "feature1";
@@ -90,7 +89,7 @@ public class DefaultJsVersionerTest {
assertFalse(version1.equals(version2));
verify(registry);
}
-
+
@Test
public void validateMismatch() {
String feature = "feature1";
@@ -103,7 +102,7 @@ public class DefaultJsVersionerTest {
assertEquals(UriStatus.INVALID_VERSION, status);
verify(registry);
}
-
+
@Test
public void validateNull() {
String feature = "feature1";
@@ -116,7 +115,7 @@ public class DefaultJsVersionerTest {
assertEquals(UriStatus.VALID_UNVERSIONED, status);
verify(registry);
}
-
+
@Test
public void validateEmpty() {
String feature = "feature1";
@@ -129,7 +128,7 @@ public class DefaultJsVersionerTest {
assertEquals(UriStatus.VALID_UNVERSIONED, status);
verify(registry);
}
-
+
@Test
public void createAndValidateVersion() {
String feature = "feature1";
@@ -142,7 +141,7 @@ public class DefaultJsVersionerTest {
assertEquals(UriStatus.VALID_VERSIONED, status);
verify(registry);
}
-
+
private void expectReq(String feature, String content) {
FeatureResource resource = new FeatureResource.Simple(content, "");
Collection<String> libs = Lists.newArrayList(feature);