You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by ss...@apache.org on 2012/07/02 20:12:31 UTC

svn commit: r1356385 - in /shindig/trunk/java/gadgets/src: main/java/org/apache/shindig/gadgets/uri/DefaultJsUriManager.java test/java/org/apache/shindig/gadgets/uri/DefaultJsUriManagerTest.java

Author: ssievers
Date: Mon Jul  2 18:12:30 2012
New Revision: 1356385

URL: http://svn.apache.org/viewvc?rev=1356385&view=rev
Log:
SHINDIG-1809 | Encoded URL

Modified:
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsUriManager.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=1356385&r1=1356384&r2=1356385&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 Mon Jul  2 18:12:30 2012
@@ -26,6 +26,7 @@ import com.google.inject.Inject;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shindig.common.uri.Uri;
 import org.apache.shindig.common.uri.UriBuilder;
+import org.apache.shindig.common.util.Utf8UrlCoder;
 import org.apache.shindig.config.ContainerConfig;
 import org.apache.shindig.gadgets.GadgetException;
 import org.apache.shindig.gadgets.GadgetException.Code;
@@ -171,6 +172,8 @@ public class DefaultJsUriManager impleme
       issueUriFormatError("Unexpected: Js Uri has no path");
       return INVALID_URI;
     }
+    // Decode the path here because it is not automatically decoded when the Uri object is created.
+    path = Utf8UrlCoder.decode(path);
 
     int lastSlash = path.lastIndexOf('/');
     if (lastSlash != -1) {

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=1356385&r1=1356384&r2=1356385&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 Mon Jul  2 18:12:30 2012
@@ -229,6 +229,20 @@ public class DefaultJsUriManagerTest {
   }
 
   @Test
+  public void processPathWithEncodedSeparator() 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%3Aanother?" +
+        Param.CONTAINER.getKey() + '=' + CONTAINER);
+    JsUri jsUri = manager.processExternJsUri(testUri);
+    assertFalse(manager.hadError());
+    assertEquals(jsUri.getStatus(), UriStatus.VALID_UNVERSIONED);
+    List<String> extern = Lists.newArrayList("feature", "another");
+    assertCollectionEquals(jsUri.getLibs(), extern);
+  }
+
+  @Test
   public void processPathSuffixNoJs() throws GadgetException {
     String targetHost = "target-host.org";
     ContainerConfig config = mockConfig("http://" + targetHost, "/gadgets/js");