You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2012/07/27 10:30:17 UTC
git commit: WICKET-4679 XmlPullParser doesn't parse correctly
attributes with complex namespace
Updated Branches:
refs/heads/master b23289746 -> f3ec15032
WICKET-4679 XmlPullParser doesn't parse correctly attributes with complex namespace
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/f3ec1503
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/f3ec1503
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/f3ec1503
Branch: refs/heads/master
Commit: f3ec1503219bd01f3ba4d7ca7b52186f33d2cabf
Parents: b232897
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Fri Jul 27 11:29:31 2012 +0300
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Fri Jul 27 11:29:31 2012 +0300
----------------------------------------------------------------------
.../parsers/VariableAssignmentParser.java | 6 +-
.../parsers/VariableAssignmentParserTest.java | 55 +++++++++++++++
2 files changed, 58 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/f3ec1503/wicket-util/src/main/java/org/apache/wicket/util/parse/metapattern/parsers/VariableAssignmentParser.java
----------------------------------------------------------------------
diff --git a/wicket-util/src/main/java/org/apache/wicket/util/parse/metapattern/parsers/VariableAssignmentParser.java b/wicket-util/src/main/java/org/apache/wicket/util/parse/metapattern/parsers/VariableAssignmentParser.java
index dc49c17..ee4f443 100644
--- a/wicket-util/src/main/java/org/apache/wicket/util/parse/metapattern/parsers/VariableAssignmentParser.java
+++ b/wicket-util/src/main/java/org/apache/wicket/util/parse/metapattern/parsers/VariableAssignmentParser.java
@@ -29,11 +29,11 @@ import org.apache.wicket.util.parse.metapattern.OptionalMetaPattern;
*/
public final class VariableAssignmentParser extends MetaPatternParser
{
- /** The optional namespace like "namespace:*" */
+ /** The optional namespace like "namespace:*[:*]" */
private static final MetaPattern namespace = new OptionalMetaPattern(new MetaPattern[] {
- MetaPattern.VARIABLE_NAME, MetaPattern.COLON });
+ MetaPattern.VARIABLE_NAME, MetaPattern.COLON, new OptionalMetaPattern(new MetaPattern[] {MetaPattern.VARIABLE_NAME, MetaPattern.COLON })});
- /** The key (lvalue) like "name" or "namespace:name" */
+ /** The key (lvalue) like "name" or "namespace:name" or "namespace:name:subname" */
private final Group key = new Group(new MetaPattern(namespace, MetaPattern.XML_ATTRIBUTE_NAME));
/** The rvalue of the assignment */
http://git-wip-us.apache.org/repos/asf/wicket/blob/f3ec1503/wicket-util/src/test/java/org/apache/wicket/util/parse/metapattern/parsers/VariableAssignmentParserTest.java
----------------------------------------------------------------------
diff --git a/wicket-util/src/test/java/org/apache/wicket/util/parse/metapattern/parsers/VariableAssignmentParserTest.java b/wicket-util/src/test/java/org/apache/wicket/util/parse/metapattern/parsers/VariableAssignmentParserTest.java
new file mode 100644
index 0000000..9ff73b9
--- /dev/null
+++ b/wicket-util/src/test/java/org/apache/wicket/util/parse/metapattern/parsers/VariableAssignmentParserTest.java
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.util.parse.metapattern.parsers;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * @since 1.5.8
+ */
+public class VariableAssignmentParserTest extends Assert
+{
+ /**
+ * Tests parsing of attribute names with and without namespaces
+ *
+ * https://issues.apache.org/jira/browse/WICKET-4679
+ */
+ @Test
+ public void parseAttributeName()
+ {
+ String tagName = "tagName";
+
+ VariableAssignmentParser parser = new VariableAssignmentParser(tagName + " name='value'");
+
+ parser.matcher().find(tagName.length());
+ assertEquals("name", parser.getKey());
+ assertEquals("'value'", parser.getValue());
+
+ parser = new VariableAssignmentParser(tagName + " namespace:name='value'");
+
+ parser.matcher().find(tagName.length());
+ assertEquals("namespace:name", parser.getKey());
+ assertEquals("'value'", parser.getValue());
+
+ parser = new VariableAssignmentParser(tagName + " namespace:name:subname='value'");
+
+ parser.matcher().find(tagName.length());
+ assertEquals("namespace:name:subname", parser.getKey());
+ assertEquals("'value'", parser.getValue());
+ }
+}