You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ja...@apache.org on 2010/06/13 17:57:00 UTC
svn commit: r954252 - in /myfaces/core/branches/1.2.x/impl/src:
main/java/org/apache/myfaces/renderkit/html/HtmlLabelRenderer.java
test/java/org/apache/myfaces/renderkit/html/HtmlLabelRendererTest.java
Author: jakobk
Date: Sun Jun 13 15:56:59 2010
New Revision: 954252
URL: http://svn.apache.org/viewvc?rev=954252&view=rev
Log:
MYFACES-2751 escape attribute of h:outputLabel is not picked up by HtmlLabelRenderer (fix + test case; thanks to Rudy De Busscher for the patch and the test case)
Modified:
myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlLabelRenderer.java
myfaces/core/branches/1.2.x/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlLabelRendererTest.java
Modified: myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlLabelRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlLabelRenderer.java?rev=954252&r1=954251&r2=954252&view=diff
==============================================================================
--- myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlLabelRenderer.java (original)
+++ myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlLabelRenderer.java Sun Jun 13 15:56:59 2010
@@ -29,6 +29,7 @@ import javax.faces.context.ResponseWrite
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFRenderer;
+import org.apache.myfaces.shared_impl.component.EscapeCapable;
import org.apache.myfaces.shared_impl.renderkit.JSFAttr;
import org.apache.myfaces.shared_impl.renderkit.RendererUtils;
import org.apache.myfaces.shared_impl.renderkit.html.HTML;
@@ -85,9 +86,26 @@ extends HtmlRenderer
if (uiComponent instanceof ValueHolder)
{
String text = RendererUtils.getStringValue(facesContext, uiComponent);
- if(text != null)
+ if (text != null)
{
- writer.writeText(text, "value");
+ boolean escape;
+ if (uiComponent instanceof HtmlOutputLabel || uiComponent instanceof EscapeCapable)
+ {
+ escape = ((HtmlOutputLabel)uiComponent).isEscape();
+ }
+ else
+ {
+ escape = RendererUtils.getBooleanAttribute(uiComponent, org.apache.myfaces.shared_impl.renderkit.JSFAttr.ESCAPE_ATTR,
+ true); //default is to escape
+ }
+ if (escape)
+ {
+ writer.writeText(text, org.apache.myfaces.shared_impl.renderkit.JSFAttr.VALUE_ATTR);
+ }
+ else
+ {
+ writer.write(text);
+ }
}
}
Modified: myfaces/core/branches/1.2.x/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlLabelRendererTest.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/1.2.x/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlLabelRendererTest.java?rev=954252&r1=954251&r2=954252&view=diff
==============================================================================
--- myfaces/core/branches/1.2.x/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlLabelRendererTest.java (original)
+++ myfaces/core/branches/1.2.x/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlLabelRendererTest.java Sun Jun 13 15:56:59 2010
@@ -18,6 +18,7 @@
*/
package org.apache.myfaces.renderkit.html;
+import java.io.IOException;
import java.io.StringWriter;
import javax.faces.component.html.HtmlOutputLabel;
@@ -41,11 +42,13 @@ public class HtmlLabelRendererTest exten
super(name);
}
- public static Test suite() {
+ public static Test suite()
+ {
return new TestSuite(HtmlLabelRendererTest.class);
}
- public void setUp() throws Exception {
+ public void setUp() throws Exception
+ {
super.setUp();
label = new HtmlOutputLabel();
writer = new MockResponseWriter(new StringWriter(), null, null);
@@ -58,7 +61,8 @@ public class HtmlLabelRendererTest exten
new HtmlLabelRenderer());
}
- public void tearDown() throws Exception {
+ public void tearDown() throws Exception
+ {
super.tearDown();
writer = null;
label = null;
@@ -66,7 +70,8 @@ public class HtmlLabelRendererTest exten
public void testHtmlPropertyPassTru() throws Exception
{
- HtmlRenderedAttr[] attrs = {
+ HtmlRenderedAttr[] attrs =
+ {
//_AccesskeyProperty
new HtmlRenderedAttr("accesskey"),
//_UniversalProperties
@@ -97,8 +102,44 @@ public class HtmlLabelRendererTest exten
HtmlCheckAttributesUtil.checkRenderedAttributes(
label, facesContext, writer, attrs);
- if(HtmlCheckAttributesUtil.hasFailedAttrRender(attrs)) {
+ if(HtmlCheckAttributesUtil.hasFailedAttrRender(attrs))
+ {
fail(HtmlCheckAttributesUtil.constructErrorMessage(attrs, writer.getWriter().toString()));
}
}
+
+ /**
+ * Gets the page contents.
+ * @return the page contents
+ */
+ protected String getPageContents()
+ {
+ return ((StringWriter) writer.getWriter()).toString();
+ }
+
+ public void testEscapeUntouched() throws IOException
+ {
+ label.setId("labelId");
+ label.setValue("<span class=\"required\">field label</span>");
+
+ // render label
+ label.encodeAll(facesContext);
+
+ String page = getPageContents();
+ assertEquals("<label id=\"labelId\"><span class="required">field label</span></label>", page);
+ }
+
+ public void testEscapeSetToFalse() throws IOException
+ {
+ label.setId("labelId");
+ label.setValue("<span class=\"required\">field label</span>");
+ label.setEscape(false);
+
+ // render label
+ label.encodeAll(facesContext);
+
+ String page = getPageContents();
+ assertEquals("<label id=\"labelId\"><span class=\"required\">field label</span></label>", page);
+ }
+
}