Author: ivaynberg
Date: Tue Nov 16 16:32:39 2010
New Revision: 1035682

URL: http://svn.apache.org/viewvc?rev=1035682&view=rev
Log:

Issue: WICKET-3174

Modified:
    
wicket/branches/wicket-1.4.x/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/basic/DefaultLinkParser.java
    
wicket/branches/wicket-1.4.x/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/basic/DefaultLinkParserTest.java

Modified: 
wicket/branches/wicket-1.4.x/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/basic/DefaultLinkParser.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/basic/DefaultLinkParser.java?rev=1035682&r1=1035681&r2=1035682&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/basic/DefaultLinkParser.java
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/basic/DefaultLinkParser.java
 Tue Nov 16 16:32:39 2010
@@ -29,7 +29,7 @@ import org.apache.wicket.util.string.App
 public class DefaultLinkParser extends LinkParser
 {
        /** Email address pattern */
-       private static final String emailPattern = "[\\w\\....@[\\w\\.-]+";
+       private static final String emailPattern = "[\\w\\.-\\\\...@[\\w\\.-]+";
 
        /** URL pattern */
        private static final String urlPattern = 
"([a-zA-Z]+://[\\w\\.\\-\\:\\/~]+)[\\w\\.:\\-/?&=%]*";

Modified: 
wicket/branches/wicket-1.4.x/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/basic/DefaultLinkParserTest.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/basic/DefaultLinkParserTest.java?rev=1035682&r1=1035681&r2=1035682&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/basic/DefaultLinkParserTest.java
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/basic/DefaultLinkParserTest.java
 Tue Nov 16 16:32:39 2010
@@ -34,36 +34,42 @@ public class DefaultLinkParserTest exten
                Assert.assertEquals("", parser.parse(""));
                Assert.assertEquals("test", parser.parse("test"));
 
-               Assert.assertEquals("<a 
href=\"mailto:t...@email.com\";>t...@email.com</a>", parser
-                               .parse("t...@email.com"));
+               Assert.assertEquals("<a 
href=\"mailto:t...@email.com\";>t...@email.com</a>",
+                       parser.parse("t...@email.com"));
                Assert.assertEquals("text (<a 
href=\"mailto:t...@email.com\";>t...@email.com</a>) text",
-                               parser.parse("text (t...@email.com) text"));
+                       parser.parse("text (t...@email.com) text"));
                Assert.assertEquals("text <a 
href=\"mailto:t...@email.com\";>t...@email.com</a> text",
-                               parser.parse("text t...@email.com text"));
+                       parser.parse("text t...@email.com text"));
 
-               Assert.assertEquals("<a 
href=\"http://www.test.com\";>http://www.test.com</a>", parser
-                               .parse("http://www.test.com";));
+               Assert.assertEquals("<a 
href=\"http://www.test.com\";>http://www.test.com</a>",
+                       parser.parse("http://www.test.com";));
                Assert.assertEquals("text (<a 
href=\"http://www.test.com\";>http://www.test.com</a>) text",
-                               parser.parse("text (http://www.test.com) 
text"));
+                       parser.parse("text (http://www.test.com) text"));
                Assert.assertEquals("text <a 
href=\"http://www.test.com\";>http://www.test.com</a> text",
-                               parser.parse("text http://www.test.com text"));
+                       parser.parse("text http://www.test.com text"));
                Assert.assertEquals(
-                               "text <a 
href=\"http://www.test.com:8080\";>http://www.test.com:8080</a> text",
-                               parser.parse("text http://www.test.com:8080 
text"));
-               Assert
-                               .assertEquals(
-                                               "text <a 
href=\"http://www.test.com/test/murx.jsp\";>http://www.test.com/test/murx.jsp</a>
 text",
-                                               parser.parse("text 
http://www.test.com/test/murx.jsp text"));
-               Assert
-                               .assertEquals(
-                                               "text <a 
href=\"http://www.test.com/test/murx.jsp?query=test&q2=murx\";>http://www.test.com/test/murx.jsp</a>
 text",
-                                               parser
-                                                               .parse("text 
http://www.test.com/test/murx.jsp?query=test&q2=murx text"));
+                       "text <a 
href=\"http://www.test.com:8080\";>http://www.test.com:8080</a> text",
+                       parser.parse("text http://www.test.com:8080 text"));
+               Assert.assertEquals(
+                       "text <a 
href=\"http://www.test.com/test/murx.jsp\";>http://www.test.com/test/murx.jsp</a>
 text",
+                       parser.parse("text http://www.test.com/test/murx.jsp 
text"));
+               Assert.assertEquals(
+                       "text <a 
href=\"http://www.test.com/test/murx.jsp?query=test&q2=murx\";>http://www.test.com/test/murx.jsp</a>
 text",
+                       parser.parse("text 
http://www.test.com/test/murx.jsp?query=test&q2=murx text"));
+
+               Assert.assertEquals(
+                       "line 1 <a 
href=\"http://www.test.com/test/murx.jsp\";>http://www.test.com/test/murx.jsp</a>
 \nline2 <a href=\"mailto:m...@email.de\";>m...@email.de</a> \r\nline3",
+                       parser.parse("line 1 http://www.test.com/test/murx.jsp 
\nline2 m...@email.de \r\nline3"));
+       }
+
+       public void testEmailWithPlusChar()
+       {
+               final String testEmailAddress = "my+t...@example.com";
+               final String testExpectedLink = "<a 
href=\"mailto:my+t...@example.com\";>my+t...@example.com</a>";
 
-               Assert
-                               .assertEquals(
-                                               "line 1 <a 
href=\"http://www.test.com/test/murx.jsp\";>http://www.test.com/test/murx.jsp</a>
 \nline2 <a href=\"mailto:m...@email.de\";>m...@email.de</a> \r\nline3",
-                                               parser
-                                                               .parse("line 1 
http://www.test.com/test/murx.jsp \nline2 m...@email.de \r\nline3"));
+               ILinkParser parser = new DefaultLinkParser();
+               final String result = parser.parse(testEmailAddress);
+               Assert.assertEquals("Expected chars to left of + to be included 
in the link.",
+                       testExpectedLink, result);
        }
 }


Reply via email to