Author: mgrigorov
Date: Mon Oct 3 09:43:34 2011
New Revision: 1178358
URL: http://svn.apache.org/viewvc?rev=1178358&view=rev
Log:
WICKET-4099 SmartLinkLabel doesn't recognize already tagged links
Ignore text which has markup inside.
Modified:
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/basic/LinkParser.java
wicket/trunk/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/basic/DefaultLinkParserTest.java
Modified:
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/basic/LinkParser.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/basic/LinkParser.java?rev=1178358&r1=1178357&r2=1178358&view=diff
==============================================================================
---
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/basic/LinkParser.java
(original)
+++
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/basic/LinkParser.java
Mon Oct 3 09:43:34 2011
@@ -62,19 +62,24 @@ public class LinkParser implements ILink
}
String work = text;
- for (String pattern : renderStrategies.keySet())
- {
- ILinkRenderStrategy strategy =
renderStrategies.get(pattern);
- Matcher matcher = Pattern.compile(pattern,
Pattern.DOTALL).matcher(work);
- StringBuffer buffer = new StringBuffer();
- while (matcher.find())
+ // don't try to parse markup. just plain text. WICKET-4099
+ if (work.indexOf('<') == -1)
+ {
+ for (String pattern : renderStrategies.keySet())
{
- String str = matcher.group();
- matcher.appendReplacement(buffer,
strategy.buildLink(str));
+ ILinkRenderStrategy strategy =
renderStrategies.get(pattern);
+
+ Matcher matcher = Pattern.compile(pattern,
Pattern.DOTALL).matcher(work);
+ StringBuffer buffer = new StringBuffer();
+ while (matcher.find())
+ {
+ String str = matcher.group();
+ matcher.appendReplacement(buffer,
strategy.buildLink(str));
+ }
+ matcher.appendTail(buffer);
+ work = buffer.toString();
}
- matcher.appendTail(buffer);
- work = buffer.toString();
}
return work;
}
Modified:
wicket/trunk/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/basic/DefaultLinkParserTest.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/basic/DefaultLinkParserTest.java?rev=1178358&r1=1178357&r2=1178358&view=diff
==============================================================================
---
wicket/trunk/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/basic/DefaultLinkParserTest.java
(original)
+++
wicket/trunk/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/basic/DefaultLinkParserTest.java
Mon Oct 3 09:43:34 2011
@@ -63,6 +63,19 @@ public class DefaultLinkParserTest exten
}
/**
+ * 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);
+ }
+
+ /**
* testEmailWithPlusChar()
*/
@Test