Author: carlucci
Date: Wed Jul 25 15:24:29 2012
New Revision: 1365628

URL: http://svn.apache.org/viewvc?rev=1365628&view=rev
Log:
RAVE-732: Unable to render two widgets of the same type on the same page

Modified:
    
rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/main/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRenderer.java
    
rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/test/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRendererTest.java
    
rave/trunk/rave-providers/rave-w3c-provider/src/main/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRenderer.java
    
rave/trunk/rave-providers/rave-w3c-provider/src/test/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRendererTest.java

Modified: 
rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/main/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRenderer.java
URL: 
http://svn.apache.org/viewvc/rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/main/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRenderer.java?rev=1365628&r1=1365627&r2=1365628&view=diff
==============================================================================
--- 
rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/main/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRenderer.java
 (original)
+++ 
rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/main/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRenderer.java
 Wed Jul 25 15:24:29 2012
@@ -97,7 +97,8 @@ public class OpenSocialWidgetRenderer im
         }
 
         String widgetScript = getWidgetScript(item);
-        String key = REGISTER_WIDGET_KEY  + (item.getWidget().getId() == null 
? "" :  "-" + item.getWidget().getId());
+        // the key is based off the RegionWidget.id to ensure uniqueness
+        String key = REGISTER_WIDGET_KEY  + (item.getId() == null ? "" :  "-" 
+ item.getId());
         scriptManager.registerScriptBlock(key, widgetScript, 
ScriptLocation.AFTER_RAVE, RenderScope.CURRENT_REQUEST, context);
         logger.debug("Gadget Script Data: " + widgetScript);
 

Modified: 
rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/test/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRendererTest.java
URL: 
http://svn.apache.org/viewvc/rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/test/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRendererTest.java?rev=1365628&r1=1365627&r2=1365628&view=diff
==============================================================================
--- 
rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/test/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRendererTest.java
 (original)
+++ 
rave/trunk/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/test/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRendererTest.java
 Wed Jul 25 15:24:29 2012
@@ -76,16 +76,20 @@ public class OpenSocialWidgetRendererTes
 
     @Test
     public void render_valid() throws JSONException {
+        final long WIDGET_ID = 999L;
+        final long REGION_WIDGET_ID = 12345L;
+        final long REGION_ID = 8675309L;
+
         
expect(openSocialService.getGadgetMetadata(VALID_GADGET_URL)).andReturn(VALID_METADATA);
         replay(openSocialService);
 
         WidgetImpl w = new WidgetImpl();
-        w.setId(1L);
+        w.setId(WIDGET_ID);
         w.setType(Constants.WIDGET_TYPE);
         w.setUrl(VALID_GADGET_URL);
-        Region region = new RegionImpl(1L);
+        Region region = new RegionImpl(REGION_ID);
         RegionWidget rw = new RegionWidgetImpl();
-        rw.setId(1L);
+        rw.setId(REGION_WIDGET_ID);
         rw.setCollapsed(VALID_COLLAPSED);
         rw.setWidget(w);
         rw.setRegion(region);
@@ -96,14 +100,14 @@ public class OpenSocialWidgetRendererTes
                                         new RegionWidgetPreferenceImpl( 1L, 
null, null)));
 
         final String markup =
-            "<script>rave.registerWidget(1, {type: 'OpenSocial'," +
-            " regionWidgetId: 1," +
+            "<script>rave.registerWidget(" + REGION_ID + ", {type: 
'OpenSocial'," +
+            " regionWidgetId: " + REGION_WIDGET_ID + "," +
             " widgetUrl: '" + VALID_GADGET_URL +"', " +
             " securityToken: '" + VALID_SECURITY_TOKEN + "', " +
             " metadata: " + VALID_METADATA + "," +
             " userPrefs: {\"speed\":\"fast\",\"color\":\"blue\"}," +
             " collapsed: " + VALID_COLLAPSED + ", " +
-            " widgetId: 1," +
+            " widgetId: " + WIDGET_ID + "," +
             " locked: " + VALID_LOCKED + "," +
             " hideChrome: " + VALID_HIDE_CHROME +
             "});</script>";
@@ -111,14 +115,14 @@ public class OpenSocialWidgetRendererTes
         
expect(securityTokenService.getEncryptedSecurityToken(rw)).andReturn(VALID_SECURITY_TOKEN);
         replay(securityTokenService);
 
-        String key = 
OpenSocialWidgetRenderer.REGISTER_WIDGET_KEY+"-"+w.getId();
+        String key = 
OpenSocialWidgetRenderer.REGISTER_WIDGET_KEY+"-"+rw.getId();
         scriptManager.registerScriptBlock(key, markup, 
ScriptLocation.AFTER_RAVE, RenderScope.CURRENT_REQUEST, renderContext);
         expectLastCall();
         replay(scriptManager);
 
         String result = renderer.render(rw, renderContext);
 
-        assertThat(result, is(equalTo("<!-- RegionWidget 1 placeholder -->")));
+        assertThat(result, is(equalTo("<!-- RegionWidget " + rw.getId() + " 
placeholder -->")));
         verify(scriptManager);
     }
 

Modified: 
rave/trunk/rave-providers/rave-w3c-provider/src/main/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRenderer.java
URL: 
http://svn.apache.org/viewvc/rave/trunk/rave-providers/rave-w3c-provider/src/main/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRenderer.java?rev=1365628&r1=1365627&r2=1365628&view=diff
==============================================================================
--- 
rave/trunk/rave-providers/rave-w3c-provider/src/main/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRenderer.java
 (original)
+++ 
rave/trunk/rave-providers/rave-w3c-provider/src/main/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRenderer.java
 Wed Jul 25 15:24:29 2012
@@ -99,7 +99,8 @@ public class W3cWidgetRenderer implement
         }
 
         String widgetScript = getWidgetScript(item);
-        String key = REGISTER_WIDGET_KEY + "-" + widget.getId();
+        // the key is based off the RegionWidget.id to ensure uniqueness
+        String key = REGISTER_WIDGET_KEY + "-" + item.getId();
         scriptManager.registerScriptBlock(key, widgetScript, 
ScriptLocation.AFTER_RAVE, RenderScope.CURRENT_REQUEST, context);
         logger.debug("Gadget Script Data: " + widgetScript);
 

Modified: 
rave/trunk/rave-providers/rave-w3c-provider/src/test/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRendererTest.java
URL: 
http://svn.apache.org/viewvc/rave/trunk/rave-providers/rave-w3c-provider/src/test/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRendererTest.java?rev=1365628&r1=1365627&r2=1365628&view=diff
==============================================================================
--- 
rave/trunk/rave-providers/rave-w3c-provider/src/test/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRendererTest.java
 (original)
+++ 
rave/trunk/rave-providers/rave-w3c-provider/src/test/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRendererTest.java
 Wed Jul 25 15:24:29 2012
@@ -73,6 +73,9 @@ public class W3cWidgetRendererTest {
 
     @Test
     public void render_valid() {
+        final long REGION_ID = 222L;
+        final long REGION_WIDGET_ID = 444L;
+
         User user = new UserImpl(9999L, "testUser");
         expect(userService.getAuthenticatedUser()).andReturn(user);
         replay(userService);
@@ -80,9 +83,9 @@ public class W3cWidgetRendererTest {
         W3CWidget w = new W3CWidget();
         w.setType(Constants.WIDGET_TYPE);
         w.setUrl("http://example.com/widgets/1";);
-        Region region = new RegionImpl(1L);
+        Region region = new RegionImpl(REGION_ID);
         RegionWidget rw = new RegionWidgetImpl();
-        rw.setId(1L);
+        rw.setId(REGION_WIDGET_ID);
         rw.setWidget(w);
         rw.setRegion(region);
 
@@ -93,7 +96,7 @@ public class W3cWidgetRendererTest {
         replay(wookieService);
 
         String placeholder = renderer.render(rw, renderContext);
-        assertEquals("Script block for widget is incorrect", "<!-- 
RegionWidget 1 placeholder -->", placeholder);
+        assertEquals("Script block for widget is incorrect", "<!-- 
RegionWidget " + REGION_WIDGET_ID + " placeholder -->", placeholder);
     }
 
     @Test(expected = NotSupportedException.class)


Reply via email to