Updated Branches: refs/heads/wicket-1.5.x 6cbcea2a2 -> f3c9a37e6
WICKET-4505 unescape markup attribute during parsing, don't unescape while rendering Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/f3c9a37e Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/f3c9a37e Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/f3c9a37e Branch: refs/heads/wicket-1.5.x Commit: f3c9a37e675a005d6f6814ac9d2835e73059a8ae Parents: 6cbcea2 Author: Sven Meier <svenme...@apache.org> Authored: Wed Apr 25 00:55:02 2012 +0200 Committer: Sven Meier <svenme...@apache.org> Committed: Wed Apr 25 00:55:02 2012 +0200 ---------------------------------------------------------------------- .../apache/wicket/markup/parser/TagAttributes.java | 2 +- .../apache/wicket/markup/parser/XmlPullParser.java | 4 ++++ .../markup/ComponentTagAttributeEscapingTest.java | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/f3c9a37e/wicket-core/src/main/java/org/apache/wicket/markup/parser/TagAttributes.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/parser/TagAttributes.java b/wicket-core/src/main/java/org/apache/wicket/markup/parser/TagAttributes.java index 6f9719d..041b0cd 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/parser/TagAttributes.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/parser/TagAttributes.java @@ -54,7 +54,7 @@ public class TagAttributes extends ValueMap public final Object put(String key, Object value) { - return super.put(key, unescapeHtml(value)); + return super.put(key, value); } @Override http://git-wip-us.apache.org/repos/asf/wicket/blob/f3c9a37e/wicket-core/src/main/java/org/apache/wicket/markup/parser/XmlPullParser.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/parser/XmlPullParser.java b/wicket-core/src/main/java/org/apache/wicket/markup/parser/XmlPullParser.java index d074650..d0cad87 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/parser/XmlPullParser.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/parser/XmlPullParser.java @@ -31,6 +31,7 @@ import org.apache.wicket.util.lang.Args; import org.apache.wicket.util.parse.metapattern.parsers.TagNameParser; import org.apache.wicket.util.parse.metapattern.parsers.VariableAssignmentParser; import org.apache.wicket.util.resource.ResourceStreamNotFoundException; +import org.apache.wicket.util.string.Strings; /** * A fairly shallow markup pull parser which parses a markup string of a given type of markup (for @@ -653,6 +654,9 @@ public final class XmlPullParser implements IXmlPullParser // Trim trailing whitespace value = value.trim(); + // Unescape + value = Strings.unescapeMarkup(value).toString(); + // Get key final String key = attributeParser.getKey(); http://git-wip-us.apache.org/repos/asf/wicket/blob/f3c9a37e/wicket-core/src/test/java/org/apache/wicket/markup/ComponentTagAttributeEscapingTest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/ComponentTagAttributeEscapingTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/ComponentTagAttributeEscapingTest.java index b8f0da6..6729767 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/ComponentTagAttributeEscapingTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/markup/ComponentTagAttributeEscapingTest.java @@ -45,8 +45,8 @@ public class ComponentTagAttributeEscapingTest extends WicketTestCase assertTrue("must not be double escaped", response.contains("Watch escaped value: >>")); assertTrue("following the last assert logic, this one would true", response.contains("alerting: &")); - assertTrue("not double escape manually add attributes", - response.contains("some_attribute=\"&\"")); + assertTrue("escape manually added attributes", + response.contains("some_attribute=\"&amp;\"")); } /**