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 <mgrigo...@apache.org>
Authored: Fri Jul 27 11:29:31 2012 +0300
Committer: Martin Tzvetanov Grigorov <mgrigo...@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());
+       }
+}

Reply via email to