/* * 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.extensions.markup.html.basic; import org.junit.Assert; import org.junit.Test; /** * Test for {@link DefaultLinkParser}. * * @author Juergen Donnerstag */ public class DefaultLinkParserTest extends Assert { /** * */ @Test public void test1() { ILinkParser parser = new DefaultLinkParser(); assertNull(parser.parse(null)); assertEquals("", parser.parse("")); assertEquals("test", parser.parse("test")); assertEquals("<a href=\"mailto:test@email.com\">test@email.com</a>", parser.parse("test@email.com")); assertEquals("text (<a href=\"mailto:test@email.com\">test@email.com</a>) text", parser.parse("text (test@email.com) text")); assertEquals("text <a href=\"mailto:test@email.com\">test@email.com</a> text", parser.parse("text test@email.com text")); assertEquals("<a href=\"http://www.test.com\">http://www.test.com</a>", parser.parse("http://www.test.com")); assertEquals("text (<a href=\"http://www.test.com\">http://www.test.com</a>) text", parser.parse("text (http://www.test.com) text")); assertEquals("text <a href=\"http://www.test.com\">http://www.test.com</a> text", parser.parse("text http://www.test.com text")); 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")); 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")); 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")); assertEquals( "line 1 <a href=\"http://www.test.com/test/murx.jsp\">http://www.test.com/test/murx.jsp</a> \nline2 <a href=\"mailto:murx@email.de\">murx@email.de</a> \r\nline3", parser.parse("line 1 http://www.test.com/test/murx.jsp \nline2 murx@email.de \r\nline3")); } /** * https://issues.apache.org/jira/browse/WICKET-4099 */ @Test public void dontParseMarkup() { String text = "<a href=\"http://some.url\">label</a>"; ILinkParser parser = new DefaultLinkParser(); String parsed = parser.parse(text); assertEquals(text, parsed); } /** * WICKET-3174 */ @Test public void testEmailWithPlusChar() { final String testEmailAddress = "my+test@example.com"; final String testExpectedLink = "<a href=\"mailto:my+test@example.com\">my+test@example.com</a>"; ILinkParser parser = new DefaultLinkParser(); final String result = parser.parse(testEmailAddress); assertEquals("Expected chars to left of + to be included in the link.", testExpectedLink, result); } /** * WICKET-4477 */ @Test public void testEmailWithMinusChar() { final String testEmailAddress = "my-test@example.com"; final String testExpectedLink = "<a href=\"mailto:my-test@example.com\">my-test@example.com</a>"; ILinkParser parser = new DefaultLinkParser(); final String result = parser.parse(testEmailAddress); assertEquals("Expected chars to left of - to be included in the link.", testExpectedLink, result); } }