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