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);