Add test cases and refactor JavadocStyle check. #1308

This commit is contained in:
Michal Kordas 2015-07-28 17:37:57 +02:00 committed by Roman Ivanov
parent ea9ff3965d
commit 70d6e7afbc
5 changed files with 77 additions and 7 deletions

View File

@ -1123,7 +1123,6 @@
<regex><pattern>.*.checks.javadoc.AbstractJavadocCheck\$.*</pattern><branchRate>50</branchRate><lineRate>68</lineRate></regex>
<regex><pattern>.*.checks.javadoc.AtclauseOrderCheck</pattern><branchRate>88</branchRate><lineRate>88</lineRate></regex>
<regex><pattern>.*.checks.javadoc.JavadocMethodCheck</pattern><branchRate>91</branchRate><lineRate>98</lineRate></regex>
<regex><pattern>.*.checks.javadoc.JavadocStyleCheck</pattern><branchRate>89</branchRate><lineRate>98</lineRate></regex>
<regex><pattern>.*.checks.javadoc.WriteTagCheck</pattern><branchRate>100</branchRate><lineRate>91</lineRate></regex>

View File

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

View File

@ -81,6 +81,12 @@ public class JavadocStyleCheckTest
"193: " + getCheckMessage(NO_PERIOD),
"238: " + getCheckMessage(NO_PERIOD),
"335:33: " + getCheckMessage(EXTRA_HTML, "</string>"),
"361:37: " + getCheckMessage(UNCLOSED_HTML, "<code>"),
"372: " + getCheckMessage(NO_PERIOD),
"378:15: " + getCheckMessage(UNCLOSED_HTML, "<b>Note:<b> it's unterminated tag.</p>"),
"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, "</img>"),
"186:8: " + getCheckMessage(UNCLOSED_HTML, "<blockquote>"),
"335:33: " + getCheckMessage(EXTRA_HTML, "</string>"),
"361:37: " + getCheckMessage(UNCLOSED_HTML, "<code>"),
"378:15: " + getCheckMessage(UNCLOSED_HTML, "<b>Note:<b> it's unterminated tag.</p>"),
};
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, "</string>"),
"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, "</string>"),
"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, "</string>"),
"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, "</img>"),
"186:8: " + getCheckMessage(UNCLOSED_HTML, "<blockquote>"),
"193: " + getCheckMessage(NO_PERIOD),
"361:37: " + getCheckMessage(UNCLOSED_HTML, "<code>"),
"372: " + getCheckMessage(NO_PERIOD),
"378:15: " + getCheckMessage(UNCLOSED_HTML, "<b>Note:<b> it's unterminated tag.</p>"),
"393: " + getCheckMessage(NO_PERIOD),
};
verify(checkConfig, getPath("InputJavadocStyleCheck.java"), expected);

View File

@ -354,6 +354,45 @@ public class InputJavadocStyleCheck
*/
void tagInTwoLines() {
}
}
/**
* This Javadoc contains unclosed tag.
* <code>unclosed 'code' tag<code>
*/
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() {}
/**
* <p><b>Note:<b> it's unterminated tag.</p>
*/
private void unterminatedTag() {}
/**
* Javadoc without dot
*/
public interface TestInterface {
/**
* Javadoc without dot
*/
void method();
}
static class TestStaticClass {
/**
* Javadoc without dot
*/
public int field;
}
}

View File

@ -73,5 +73,10 @@ public class InputJavadocStyleCheckHtmlComment
private void method5()
{ // JavadocStyle should not report any error for this method
}
/**
* Parameterized interface.
* @param <I>
*/
interface Interface<I> {}
}