You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by jo...@apache.org on 2010/07/10 02:17:23 UTC
svn commit: r962728 - in /shindig/trunk/java/gadgets/src:
main/java/org/apache/shindig/gadgets/uri/DefaultJsUriManager.java
main/java/org/apache/shindig/gadgets/uri/UriCommon.java
test/java/org/apache/shindig/gadgets/uri/DefaultJsUriManagerTest.java
Author: johnh
Date: Sat Jul 10 00:17:23 2010
New Revision: 962728
URL: http://svn.apache.org/viewvc?rev=962728&view=rev
Log:
Make DefaultJsUriManager's parsing more lenient, and support adding &c=1 for container context.
Modified:
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/UriCommon.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultJsUriManagerTest.java
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=962728&r1=962727&r2=962728&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 Sat Jul 10 00:17:23 2010
@@ -27,6 +27,7 @@ import org.apache.shindig.common.uri.Uri
import org.apache.shindig.config.ContainerConfig;
import org.apache.shindig.gadgets.Gadget;
import org.apache.shindig.gadgets.GadgetException;
+import org.apache.shindig.gadgets.RenderingContext;
import org.apache.shindig.gadgets.GadgetException.Code;
import org.apache.shindig.gadgets.http.HttpResponse;
import org.apache.shindig.gadgets.uri.UriCommon.Param;
@@ -81,6 +82,9 @@ public class DefaultJsUriManager impleme
// Pass through debug param for debugging use.
uri.addQueryParameter(Param.DEBUG.getKey(),
gadget.getContext().getDebug() ? "1" : "0");
+
+ uri.addQueryParameter(Param.CONTAINER_MODE.getKey(),
+ gadget.getContext().getRenderingContext() == RenderingContext.CONTAINER ? "1" : "0");
// Pass through gadget Uri
if (addGadgetUri()) {
@@ -127,14 +131,13 @@ public class DefaultJsUriManager impleme
issueUriFormatError("Js Uri path invalid, expected prefix: " + jsPrefix + ", is: " + path);
return INVALID_URI;
}
- if (!path.endsWith(JS_SUFFIX)) {
- issueUriFormatError("Js Uri path invalid, expected suffix: " + JS_SUFFIX + ", is: " + path);
- return INVALID_URI;
- }
-
- // Pull off prefix and suffix strings
path = path.substring(jsPrefix.length());
- path = path.substring(0, path.length() - JS_SUFFIX.length());
+
+ // Convenience suffix: pull off .js if present; leave alone otherwise.
+ if (path.endsWith(JS_SUFFIX)) {
+ path = path.substring(0, path.length() - JS_SUFFIX.length());
+ }
+
while (path.startsWith("/")) {
path = path.substring(1);
}
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/UriCommon.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/UriCommon.java?rev=962728&r1=962727&r2=962728&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/UriCommon.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/UriCommon.java Sat Jul 10 00:17:23 2010
@@ -39,6 +39,7 @@ public interface UriCommon {
TYPE("type"),
REWRITE_MIME_TYPE("rewriteMime"),
SANITIZE("sanitize"),
+ CONTAINER_MODE("c"),
// Proxy resize params:
RESIZE_HEIGHT("resize_h"),
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=962728&r1=962727&r2=962728&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 Sat Jul 10 00:17:23 2010
@@ -35,6 +35,7 @@ import org.apache.shindig.config.Contain
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;
import org.apache.shindig.gadgets.uri.JsUriManager.Versioner;
import org.apache.shindig.gadgets.uri.UriCommon.Param;
@@ -78,6 +79,7 @@ public class DefaultJsUriManagerTest {
assertEquals(CONTAINER, jsUri.getQueryParameter(Param.CONTAINER.getKey()));
assertEquals("0", jsUri.getQueryParameter(Param.NO_CACHE.getKey()));
assertEquals("0", jsUri.getQueryParameter(Param.DEBUG.getKey()));
+ assertEquals("0", jsUri.getQueryParameter(Param.CONTAINER_MODE.getKey()));
}
@Test
@@ -94,6 +96,7 @@ public class DefaultJsUriManagerTest {
assertEquals(CONTAINER, jsUri.getQueryParameter(Param.CONTAINER.getKey()));
assertEquals("0", jsUri.getQueryParameter(Param.NO_CACHE.getKey()));
assertEquals("0", jsUri.getQueryParameter(Param.DEBUG.getKey()));
+ assertEquals("0", jsUri.getQueryParameter(Param.CONTAINER_MODE.getKey()));
}
@Test
@@ -113,6 +116,7 @@ public class DefaultJsUriManagerTest {
assertEquals(version, jsUri.getQueryParameter(Param.VERSION.getKey()));
assertEquals("0", jsUri.getQueryParameter(Param.NO_CACHE.getKey()));
assertEquals("0", jsUri.getQueryParameter(Param.DEBUG.getKey()));
+ assertEquals("0", jsUri.getQueryParameter(Param.CONTAINER_MODE.getKey()));
}
@Test
@@ -133,6 +137,24 @@ public class DefaultJsUriManagerTest {
assertEquals(null, jsUri.getQueryParameter(Param.VERSION.getKey()));
assertEquals("1", jsUri.getQueryParameter(Param.NO_CACHE.getKey()));
assertEquals("0", jsUri.getQueryParameter(Param.DEBUG.getKey()));
+ assertEquals("0", jsUri.getQueryParameter(Param.CONTAINER_MODE.getKey()));
+ }
+
+ @Test
+ public void makeJsUriWithContainerContext() {
+ ContainerConfig config = mockConfig("http://www.js.org", "/gadgets/js/");
+ TestDefaultJsUriManager manager = makeManager(config, null);
+ Gadget gadget = mockGadget(false, false, true);
+ List<String> extern = Lists.newArrayList("feature", "another");
+ Uri jsUri = manager.makeExternJsUri(gadget, extern);
+ assertFalse(manager.hadError());
+ assertEquals("http", jsUri.getScheme());
+ assertEquals("www.js.org", jsUri.getAuthority());
+ assertEquals("/gadgets/js/" + addJsLibs(extern) + JS_SUFFIX, jsUri.getPath());
+ assertEquals(CONTAINER, jsUri.getQueryParameter(Param.CONTAINER.getKey()));
+ assertEquals("0", jsUri.getQueryParameter(Param.NO_CACHE.getKey()));
+ assertEquals("0", jsUri.getQueryParameter(Param.DEBUG.getKey()));
+ assertEquals("1", jsUri.getQueryParameter(Param.CONTAINER_MODE.getKey()));
}
// processJsUri tests
@@ -170,28 +192,18 @@ public class DefaultJsUriManagerTest {
assertSame(DefaultJsUriManager.INVALID_URI, jsUri);
}
- @Test(expected = GadgetException.class)
- public void processNoValidJs() throws GadgetException {
- String targetHost = "target-host.org";
- ContainerConfig config = mockConfig("http://" + targetHost, "/gadgets/js");
- List<String> extern = Lists.newArrayList("feature", "another");
- String version = "verstring";
- DefaultJsUriManager manager = new DefaultJsUriManager(config, null);
- Uri testUri = Uri.parse("http://target-host.org/gadgets/js?container=" + CONTAINER );
- JsUri jsUri = manager.processExternJsUri(testUri);
- }
-
@Test
- public void processPathSuffixMismatch() throws GadgetException {
+ public void processPathSuffixNoJs() throws GadgetException {
String targetHost = "target-host.org";
ContainerConfig config = mockConfig("http://" + targetHost, "/gadgets/js");
TestDefaultJsUriManager manager = makeManager(config, null);
- Uri testUri = Uri.parse("http://target-host.org/gadgets/js/feature.gif?" +
+ Uri testUri = Uri.parse("http://target-host.org/gadgets/js/feature:another?" +
Param.CONTAINER.getKey() + '=' + CONTAINER);
JsUri jsUri = manager.processExternJsUri(testUri);
- assertTrue(manager.hadError());
- assertEquals(jsUri.getStatus(), UriStatus.BAD_URI);
- assertSame(DefaultJsUriManager.INVALID_URI, jsUri);
+ assertFalse(manager.hadError());
+ assertEquals(jsUri.getStatus(), UriStatus.VALID_UNVERSIONED);
+ List<String> extern = Lists.newArrayList("feature", "another");
+ assertCollectionEquals(jsUri.getLibs(), extern);
}
@Test
@@ -338,11 +350,17 @@ public class DefaultJsUriManagerTest {
}
private Gadget mockGadget(boolean nocache, boolean debug) {
+ return mockGadget(nocache, debug, false);
+ }
+
+ private Gadget mockGadget(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();
replay(context);
return new Gadget().setContext(context);
}