From 70d6e7afbcc8cd34dbcd233836156d12dbc4abaf Mon Sep 17 00:00:00 2001 From: Michal Kordas Date: Tue, 28 Jul 2015 17:37:57 +0200 Subject: [PATCH] Add test cases and refactor JavadocStyle check. #1308 --- pom.xml | 1 - .../checks/javadoc/JavadocStyleCheck.java | 8 ++-- .../checks/javadoc/JavadocStyleCheckTest.java | 27 ++++++++++++ .../checkstyle/InputJavadocStyleCheck.java | 41 ++++++++++++++++++- .../InputJavadocStyleCheckHtmlComment.java | 7 +++- 5 files changed, 77 insertions(+), 7 deletions(-) diff --git a/pom.xml b/pom.xml index 936791cce..87dd66405 100644 --- a/pom.xml +++ b/pom.xml @@ -1123,7 +1123,6 @@ .*.checks.javadoc.AbstractJavadocCheck\$.*5068 .*.checks.javadoc.AtclauseOrderCheck8888 .*.checks.javadoc.JavadocMethodCheck9198 - .*.checks.javadoc.JavadocStyleCheck8998 .*.checks.javadoc.WriteTagCheck10091 diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocStyleCheck.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocStyleCheck.java index 64fee335b..ef7de9f50 100644 --- a/src/main/java/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocStyleCheck.java +++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocStyleCheck.java @@ -316,13 +316,12 @@ public class JavadocStyleCheck * @param buffer the StringBuffer to trim. */ private static void trimTail(StringBuffer buffer) { - for (int i = buffer.length() - 1; i >= 0; i--) { + int i = buffer.length() - 1; + while (true) { if (Character.isWhitespace(buffer.charAt(i))) { buffer.deleteCharAt(i); } - else if (i > 0 - && buffer.charAt(i - 1) == '*' - && buffer.charAt(i) == '/') { + else if (buffer.charAt(i - 1) == '*') { buffer.deleteCharAt(i); buffer.deleteCharAt(i - 1); i--; @@ -334,6 +333,7 @@ public class JavadocStyleCheck else { break; } + i--; } } diff --git a/src/test/java/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocStyleCheckTest.java b/src/test/java/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocStyleCheckTest.java index 583038413..c59bc0fb9 100644 --- a/src/test/java/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocStyleCheckTest.java +++ b/src/test/java/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocStyleCheckTest.java @@ -81,6 +81,12 @@ public class JavadocStyleCheckTest "193: " + getCheckMessage(NO_PERIOD), "238: " + getCheckMessage(NO_PERIOD), "335:33: " + getCheckMessage(EXTRA_HTML, ""), + "361:37: " + getCheckMessage(UNCLOSED_HTML, ""), + "372: " + getCheckMessage(NO_PERIOD), + "378:15: " + getCheckMessage(UNCLOSED_HTML, "Note: it's unterminated tag.

"), + "382: " + getCheckMessage(NO_PERIOD), + "386: " + getCheckMessage(NO_PERIOD), + "393: " + getCheckMessage(NO_PERIOD), }; verify(checkConfig, getPath("InputJavadocStyleCheck.java"), expected); @@ -100,6 +106,10 @@ public class JavadocStyleCheckTest "88: " + getCheckMessage(NO_PERIOD), "193: " + getCheckMessage(NO_PERIOD), "238: " + getCheckMessage(NO_PERIOD), + "372: " + getCheckMessage(NO_PERIOD), + "382: " + getCheckMessage(NO_PERIOD), + "386: " + getCheckMessage(NO_PERIOD), + "393: " + getCheckMessage(NO_PERIOD), }; verify(checkConfig, getPath("InputJavadocStyleCheck.java"), expected); @@ -123,6 +133,10 @@ public class JavadocStyleCheckTest "88: " + getCheckMessage(NO_PERIOD), "193: " + getCheckMessage(NO_PERIOD), "238: " + getCheckMessage(NO_PERIOD), + "372: " + getCheckMessage(NO_PERIOD), + "382: " + getCheckMessage(NO_PERIOD), + "386: " + getCheckMessage(NO_PERIOD), + "393: " + getCheckMessage(NO_PERIOD), }; verify(checkConfig, getPath("InputJavadocStyleCheck.java"), expected); @@ -144,6 +158,8 @@ public class JavadocStyleCheckTest "109:39: " + getCheckMessage(EXTRA_HTML, ""), "186:8: " + getCheckMessage(UNCLOSED_HTML, "
"), "335:33: " + getCheckMessage(EXTRA_HTML, ""), + "361:37: " + getCheckMessage(UNCLOSED_HTML, ""), + "378:15: " + getCheckMessage(UNCLOSED_HTML, "Note: it's unterminated tag.

"), }; verify(checkConfig, getPath("InputJavadocStyleCheck.java"), expected); @@ -177,6 +193,8 @@ public class JavadocStyleCheckTest "230: " + getCheckMessage(EMPTY), "238: " + getCheckMessage(NO_PERIOD), "335:33: " + getCheckMessage(EXTRA_HTML, ""), + "382: " + getCheckMessage(NO_PERIOD), + "386: " + getCheckMessage(NO_PERIOD), }; verify(checkConfig, getPath("InputJavadocStyleCheck.java"), expected); @@ -202,6 +220,8 @@ public class JavadocStyleCheckTest "230: " + getCheckMessage(EMPTY), "238: " + getCheckMessage(NO_PERIOD), "335:33: " + getCheckMessage(EXTRA_HTML, ""), + "382: " + getCheckMessage(NO_PERIOD), + "386: " + getCheckMessage(NO_PERIOD), }; verify(checkConfig, getPath("InputJavadocStyleCheck.java"), expected); @@ -230,6 +250,9 @@ public class JavadocStyleCheckTest "230: " + getCheckMessage(EMPTY), "238: " + getCheckMessage(NO_PERIOD), "335:33: " + getCheckMessage(EXTRA_HTML, ""), + "382: " + getCheckMessage(NO_PERIOD), + "386: " + getCheckMessage(NO_PERIOD), + "393: " + getCheckMessage(NO_PERIOD), }; verify(checkConfig, getPath("InputJavadocStyleCheck.java"), expected); @@ -270,6 +293,10 @@ public class JavadocStyleCheckTest "109:39: " + getCheckMessage(EXTRA_HTML, ""), "186:8: " + getCheckMessage(UNCLOSED_HTML, "
"), "193: " + getCheckMessage(NO_PERIOD), + "361:37: " + getCheckMessage(UNCLOSED_HTML, ""), + "372: " + getCheckMessage(NO_PERIOD), + "378:15: " + getCheckMessage(UNCLOSED_HTML, "Note: it's unterminated tag.

"), + "393: " + getCheckMessage(NO_PERIOD), }; verify(checkConfig, getPath("InputJavadocStyleCheck.java"), expected); diff --git a/src/test/resources/com/puppycrawl/tools/checkstyle/InputJavadocStyleCheck.java b/src/test/resources/com/puppycrawl/tools/checkstyle/InputJavadocStyleCheck.java index d1d2093cf..67fbe8564 100644 --- a/src/test/resources/com/puppycrawl/tools/checkstyle/InputJavadocStyleCheck.java +++ b/src/test/resources/com/puppycrawl/tools/checkstyle/InputJavadocStyleCheck.java @@ -354,6 +354,45 @@ public class InputJavadocStyleCheck */ void tagInTwoLines() { - } + } + /** + * This Javadoc contains unclosed tag. + * unclosed 'code' tag + */ + private void unclosedTag() {} + + void javadocLikeCommentInMethod() { + /** + * It pretends to be Javadoc without dot, but it's just comment in method + */ + final int i = 0; + } + + /** + * {@inheritDoc} + */ + private void inheritDoc() {} + + /** + *

Note: it's unterminated tag.

+ */ + private void unterminatedTag() {} + + /** + * Javadoc without dot + */ + public interface TestInterface { + /** + * Javadoc without dot + */ + void method(); + } + + static class TestStaticClass { + /** + * Javadoc without dot + */ + public int field; + } } diff --git a/src/test/resources/com/puppycrawl/tools/checkstyle/InputJavadocStyleCheckHtmlComment.java b/src/test/resources/com/puppycrawl/tools/checkstyle/InputJavadocStyleCheckHtmlComment.java index 74b8aa63e..061027f7f 100644 --- a/src/test/resources/com/puppycrawl/tools/checkstyle/InputJavadocStyleCheckHtmlComment.java +++ b/src/test/resources/com/puppycrawl/tools/checkstyle/InputJavadocStyleCheckHtmlComment.java @@ -73,5 +73,10 @@ public class InputJavadocStyleCheckHtmlComment private void method5() { // JavadocStyle should not report any error for this method } - + + /** + * Parameterized interface. + * @param + */ + interface Interface {} }