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)