You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ju...@apache.org on 2010/09/01 17:14:03 UTC
svn commit: r991565 - in /sling/trunk:
bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/helpers/
launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/
Author: justin
Date: Wed Sep 1 15:14:02 2010
New Revision: 991565
URL: http://svn.apache.org/viewvc?rev=991565&view=rev
Log:
SLING-1718 - adding support for multi-valued properties in html rendering
Modified:
sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/helpers/HtmlRendererServlet.java
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/PropertyRenderingTest.java
Modified: sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/helpers/HtmlRendererServlet.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/helpers/HtmlRendererServlet.java?rev=991565&r1=991564&r2=991565&view=diff
==============================================================================
--- sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/helpers/HtmlRendererServlet.java (original)
+++ sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/helpers/HtmlRendererServlet.java Wed Sep 1 15:14:02 2010
@@ -70,6 +70,11 @@ public class HtmlRendererServlet extends
printResourceInfo(pw, r);
render(pw, r, r.adaptTo(String.class));
printEpilog(pw, isIncluded);
+ } else if ( r.adaptTo(String[].class) != null ) {
+ printProlog(pw, isIncluded);
+ printResourceInfo(pw, r);
+ render(pw, r, r.adaptTo(String[].class));
+ printEpilog(pw, isIncluded);
} else {
if ( !isIncluded ) {
resp.sendError(HttpServletResponse.SC_NO_CONTENT); // NO Content
@@ -127,6 +132,12 @@ public class HtmlRendererServlet extends
printPropertyValue(pw, "Resource Value", value);
}
+ private void render(PrintWriter pw, Resource r, String[] values) {
+ for (String value : values) {
+ printPropertyValue(pw, "Resource Value", value);
+ }
+ }
+
private void printPropertyValue(PrintWriter pw, String name, Object value) {
pw.print(name + ": <b>");
Modified: sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/PropertyRenderingTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/PropertyRenderingTest.java?rev=991565&r1=991564&r2=991565&view=diff
==============================================================================
--- sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/PropertyRenderingTest.java (original)
+++ sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/PropertyRenderingTest.java Wed Sep 1 15:14:02 2010
@@ -20,6 +20,7 @@ import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
+import org.apache.sling.commons.testing.integration.NameValuePairList;
import org.apache.sling.servlets.post.SlingPostConstants;
/** Test the rendering of JCR Properties, directly addressed by URLs.
@@ -28,6 +29,9 @@ import org.apache.sling.servlets.post.Sl
public class PropertyRenderingTest extends RenderingTestBase {
private String slingResourceType;
+
+ private String testMultiText1;
+ private String testMultiText2;
@Override
protected void setUp() throws Exception {
@@ -35,19 +39,27 @@ public class PropertyRenderingTest exten
// set test values
testText = "This is a test " + System.currentTimeMillis();
+ testMultiText1 = "This is a multivalued test " + System.currentTimeMillis();
+ testMultiText2 = "This is another multivalued test " + System.currentTimeMillis();
+
slingResourceType = getClass().getName();
// create the test node, under a path that's specific to this class to allow collisions
final String url = HTTP_BASE_URL + "/" + getClass().getSimpleName() + "/" + System.currentTimeMillis() + SlingPostConstants.DEFAULT_CREATE_SUFFIX;
- final Map<String,String> props = new HashMap<String,String>();
- props.put("sling:resourceType", slingResourceType);
- props.put("text", testText);
- displayUrl = testClient.createNode(url, props);
+
+ NameValuePairList list = new NameValuePairList();
+ list.add("sling:resourceType", slingResourceType);
+ list.add("text", testText);
+ list.add("multiText", testMultiText1);
+ list.add("multiText", testMultiText2);
+ displayUrl = testClient.createNode(url, list, null, true);
}
public void testNodeAccess() throws IOException {
final String json = getContent(displayUrl + ".json", CONTENT_TYPE_JSON);
assertJavascript(testText, json, "out.println(data.text)");
+ assertJavascript(testMultiText1, json, "out.println(data.multiText[0])");
+ assertJavascript(testMultiText2, json, "out.println(data.multiText[1])");
}
public void testTextJson() throws IOException {
@@ -70,6 +82,18 @@ public class PropertyRenderingTest exten
assertEquals(testText, data);
}
+ public void testMultiValuedTextJson() throws IOException {
+ final String json = getContent(displayUrl + "/multiText.json", CONTENT_TYPE_JSON);
+ assertEquals("{\"multiText\":[\"" + testMultiText1 + "\",\""+ testMultiText2 + "\"]}",json);
+ }
+
+ public void testMultiValuedTextHtml() throws IOException {
+ final String data = getContent(displayUrl + "/multiText.html", CONTENT_TYPE_HTML);
+ System.out.println(data);
+ assertTrue(data.contains(testMultiText1));
+ assertTrue(data.contains(testMultiText2));
+ }
+
public void testResourceTypeNoExt() throws IOException {
final String data = getContent(displayUrl + "/sling:resourceType", null);
assertEquals(slingResourceType, data);