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


Reply via email to