You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by li...@apache.org on 2011/04/07 04:11:15 UTC

svn commit: r1089708 - in /shindig/trunk/java/gadgets/src: main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java test/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManagerTest.java

Author: lindner
Date: Thu Apr  7 02:11:14 2011
New Revision: 1089708

URL: http://svn.apache.org/viewvc?rev=1089708&view=rev
Log:
Patch from Stanton Sievers | DefaultIframeUriManager changes for handling locked domains"

http://codereview.appspot.com/4343053/

Modified:
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java
    shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManagerTest.java

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java?rev=1089708&r1=1089707&r2=1089708&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java Thu Apr  7 02:11:14 2011
@@ -126,23 +126,32 @@ public class DefaultIframeUriManager imp
       // 2. Set host/authority.
       String host;
       if (usingLockedDomain(gadget, container)) {
-        host = ldGen.getLockedDomainPrefix(gadget.getSpec().getUrl()) +
+        host = "//" + ldGen.getLockedDomainPrefix(gadget.getSpec().getUrl()) +
             getReqVal(container, LOCKED_DOMAIN_SUFFIX_KEY);
       } else {
         host = getReqVal(container, UNLOCKED_DOMAIN_KEY);
       }
 
-      // 3. Set host/authority and protocol/schema.
       Uri gadgetUri = Uri.parse(host);
+      if (gadgetUri.getAuthority() == null
+              && gadgetUri.getScheme() == null
+              && gadgetUri.getPath().equals(host)) {
+        // This is for backwards compatibility with unlocked domains like
+        // "unlockeddomain.com"
+        gadgetUri = Uri.parse("//" + host);
+      }
+
+      // 3. Set the scheme.
       if (StringUtils.isBlank(gadgetUri.getScheme())) {
-        uri.setAuthority(host);
         uri.setScheme(getScheme(gadget, container));
       } else {
-        uri.setAuthority(gadgetUri.getAuthority());
         uri.setScheme(gadgetUri.getScheme());
       }
 
-      // 4. Add the URL.
+      // 4. Set the authority.
+      uri.setAuthority(gadgetUri.getAuthority());
+
+      // 5. Add the URL.
       uri.addQueryParameter(Param.URL.getKey(), context.getUrl().toString());
     }
 

Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManagerTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManagerTest.java?rev=1089708&r1=1089707&r2=1089708&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManagerTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManagerTest.java Thu Apr  7 02:11:14 2011
@@ -62,6 +62,7 @@ public class DefaultIframeUriManagerTest
   private static final String LD_SUFFIX = ".lockeddomain.com";
   private static final String LD_SUFFIX_ALT = ".altld.com";
   private static final String UNLOCKED_DOMAIN = "unlockeddomain.com";
+  private static final String UNLOCKED_DOMAIN_CONFIG_VALUE = "//" + UNLOCKED_DOMAIN;
   private static final int TYPE_URL_NUM_BASE_PARAMS = 8;
   private static final int TYPE_HTML_NUM_BASE_PARAMS = 8;
 
@@ -654,6 +655,38 @@ public class DefaultIframeUriManagerTest
     assertEquals(UriStatus.VALID_UNVERSIONED, manager.validateRenderingUri(testUri));
   }
 
+  @Test
+  public void schemeLessUnlockedDomain() throws Exception {
+    Gadget gadget = mockGadget();
+    ContainerConfig config = new BasicContainerConfig();
+    config
+        .newTransaction()
+        .addContainer(ImmutableMap.<String, Object>builder()
+            .put(ContainerConfig.CONTAINER_KEY, ContainerConfig.DEFAULT_CONTAINER)
+            .put(LOCKED_DOMAIN_SUFFIX_KEY, LD_SUFFIX)
+            .build())
+                .addContainer(ImmutableMap.<String, Object> builder()
+                    .put(ContainerConfig.CONTAINER_KEY, CONTAINER)
+                    .put(IFRAME_BASE_PATH_KEY, IFRAME_PATH)
+                    .put(UNLOCKED_DOMAIN_KEY, UNLOCKED_DOMAIN)
+                    .build())
+                .commit();
+
+    TestDefaultIframeUriManager manager = new TestDefaultIframeUriManager(config);
+
+    Uri renderingUri = manager.makeRenderingUri(gadget);
+    assertNotNull(renderingUri);
+
+    UriBuilder uri = new UriBuilder(renderingUri);
+    assertEquals("", uri.getScheme());
+    assertEquals(UNLOCKED_DOMAIN, uri.getAuthority());
+    assertEquals(IFRAME_PATH, uri.getPath());
+
+    // Basic sanity checks on params
+    assertEquals(TYPE_HTML_NUM_BASE_PARAMS, uri.getQueryParameters().size());
+    assertEquals(0, uri.getFragmentParameters().size());
+  }
+
   private Uri makeValidationTestUri(String domain, String version) {
     UriBuilder uri = new UriBuilder();
     uri.setAuthority(domain);
@@ -682,7 +715,7 @@ public class DefaultIframeUriManagerTest
             .put(ContainerConfig.CONTAINER_KEY, CONTAINER)
             .put(IFRAME_BASE_PATH_KEY, IFRAME_PATH)
             .put(LOCKED_DOMAIN_SUFFIX_KEY, LD_SUFFIX)
-            .put(UNLOCKED_DOMAIN_KEY, UNLOCKED_DOMAIN)
+            .put(UNLOCKED_DOMAIN_KEY, UNLOCKED_DOMAIN_CONFIG_VALUE)
             .put(SECURITY_TOKEN_ALWAYS_KEY, alwaysToken)
             .put(LOCKED_DOMAIN_REQUIRED_KEY, ldRequired)
             .build())