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());
+	}
+}