[jboss-cvs] JBossBlog SVN: r200 - in trunk/src: tools/org/jboss/blog/tools and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Feb 7 06:04:37 EST 2008
Author: adamw
Date: 2008-02-07 06:04:36 -0500 (Thu, 07 Feb 2008)
New Revision: 200
Added:
trunk/src/test/org/jboss/blog/tools/TitleToLinkTest.java
Modified:
trunk/src/tools/org/jboss/blog/tools/StringTools.java
Log:
Added: trunk/src/test/org/jboss/blog/tools/TitleToLinkTest.java
===================================================================
--- trunk/src/test/org/jboss/blog/tools/TitleToLinkTest.java (rev 0)
+++ trunk/src/test/org/jboss/blog/tools/TitleToLinkTest.java 2008-02-07 11:04:36 UTC (rev 200)
@@ -0,0 +1,33 @@
+package org.jboss.blog.tools;
+
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+public class TitleToLinkTest {
+ @Test
+ public void testEmpty() {
+ assert "".equals(StringTools.convertTitleToLink(""));
+ }
+
+ @Test
+ public void testEmpty2() {
+ assert "".equals(StringTools.convertTitleToLink("!@#$%"));
+ }
+
+ @Test
+ public void testNormal() {
+ assert "abd_ef_s_jj".equals(StringTools.convertTitleToLink("*abd**ef***s*jj*"));
+ }
+
+ @Test
+ public void testEnd() {
+ assert "aaa".equals(StringTools.convertTitleToLink("***aaa"));
+ }
+
+ @Test
+ public void testBeginning() {
+ assert "aaa".equals(StringTools.convertTitleToLink("aaa***"));
+ }
+}
Modified: trunk/src/tools/org/jboss/blog/tools/StringTools.java
===================================================================
--- trunk/src/tools/org/jboss/blog/tools/StringTools.java 2008-02-07 10:03:40 UTC (rev 199)
+++ trunk/src/tools/org/jboss/blog/tools/StringTools.java 2008-02-07 11:04:36 UTC (rev 200)
@@ -22,7 +22,39 @@
return null;
}
- return title.toLowerCase().replaceAll("[^a-z0-9_]", "_");
+ char[] titleWithUnderscores = title.toLowerCase().replaceAll("[^a-z0-9_]", "_").toCharArray();
+
+ StringBuffer newTitle = new StringBuffer();
+
+ // Removing _ from the beginning.
+ int titleIndex = 0;
+ while ((titleIndex < titleWithUnderscores.length) && (titleWithUnderscores[titleIndex] == '_')) {
+ titleIndex++;
+ }
+
+ // Removing multiple _ in the text.
+ boolean previousLetter = true;
+ while (titleIndex < titleWithUnderscores.length) {
+ if (titleWithUnderscores[titleIndex] == '_') {
+ if (previousLetter) {
+ newTitle.append(titleWithUnderscores[titleIndex]);
+ }
+
+ previousLetter = false;
+ } else {
+ newTitle.append(titleWithUnderscores[titleIndex]);
+ previousLetter = true;
+ }
+
+ titleIndex++;
+ }
+
+ // Removing _ from the end, if there was one.
+ if ((newTitle.length() > 0) && (newTitle.charAt(newTitle.length()-1) == '_')) {
+ newTitle.deleteCharAt(newTitle.length()-1);
+ }
+
+ return newTitle.toString();
}
public static String stripHtml(String html) {
More information about the jboss-cvs-commits
mailing list