blob: 3906874a2f5c53e588d786f5657317f0eb86a96f [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2015 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.wst.jsdt.core.tests.compiler.regression;
import java.util.Map;
import java.util.StringTokenizer;
import junit.framework.Test;
import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
/**
* Tests to verify that Compiler options work well for Javadoc.
* This class does not tests syntax error option as it's considered already
* tested by other JavadocTest* classes.
* @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=46854">46854</a>
* @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=46976">46976</a>
*/
public class JavadocTestOptions extends JavadocTest {
String docCommentSupport = null;
String reportInvalidJavadoc = null;
String reportInvalidJavadocTagsVisibility = null;
String reportInvalidJavadocTags = null;
String reportInvalidJavadocTagsDeprecatedRef= null;
String reportInvalidJavadocTagsNotVisibleRef = null;
String reportMissingJavadocTags = null;
String reportMissingJavadocTagsVisibility = null;
String reportMissingJavadocTagsOverriding = null;
String reportMissingJavadocComments = null;
String reportMissingJavadocCommentsVisibility = null;
String reportMissingJavadocCommentsOverriding = null;
private final int PUBLIC_VISIBILITY = 0;
private final int PROTECTED_VISIBILITY = 1;
private final int DEFAULT_VISIBILITY = 2;
private final int PRIVATE_VISIBILITY = 3;
private static String INVALID_CLASS_JAVADOC_REF = " /**\n" +
" * @see X_dep\n" +
" * @see X.X_priv\n" +
" * @see X.Unknown\n" +
" * @see X#X(int)\n" +
" * @see X#X(String)\n" +
" * @see X#X()\n" +
" * @see X#x_dep\n" +
" * @see X#x_priv\n" +
" * @see X#unknown\n" +
" * @see X#foo_dep()\n" +
" * @see X#foo_priv()\n" +
" * @see X#foo_dep(String)\n" +
" * @see X#unknown()\n" +
" */\n";
private static String INVALID_METHOD_JAVADOC_REF = " /**\n" +
" * @param str\n" +
" * @param str\n" +
" * @param xxx\n" +
" * @throws IllegalArgumentException\n" +
" * @throws IllegalArgumentException\n" +
" * @throws java.io.IOException\n" +
" * @throws Unknown\n" +
" * @see X_dep\n" +
" * @see X.X_priv\n" +
" * @see X.Unknown\n" +
" * @see X#X(int)\n" +
" * @see X#X(String)\n" +
" * @see X#X()\n" +
" * @see X#x_dep\n" +
" * @see X#x_priv\n" +
" * @see X#unknown\n" +
" * @see X#foo_dep()\n" +
" * @see X#foo_priv()\n" +
" * @see X#foo_dep(String)\n" +
" * @see X#unknown()\n" +
" */\n";
private static String DEP_CLASS =
"/** @deprecated */\n" +
"public class X_dep {}\n";
private static String REF_CLASS =
"public class X {\n" +
// Deprecated class must be a top level to avoid visibility issue
// " /** @deprecated */\n" +
// " class X_dep{}\n" +
" private class X_priv{}\n" +
" /** @deprecated */\n" +
" public int x_dep;\n" +
" private int x_priv;\n" +
" /** @deprecated */\n" +
" public X() {}\n" +
" private X(int x) {}\n" +
" /** @deprecated */\n" +
" public void foo_dep() {}\n" +
" private void foo_priv() {}\n" +
" }\n";
private static String[] CLASSES_INVALID_COMMENT = {
"X.java",
REF_CLASS,
"X_dep.java",
DEP_CLASS,
"Y.java",
"public class Y {\n" +
INVALID_CLASS_JAVADOC_REF +
" public class X_pub {}\n" +
INVALID_CLASS_JAVADOC_REF +
" protected class X_prot {}\n" +
INVALID_CLASS_JAVADOC_REF +
" class X_pack {}\n" +
INVALID_CLASS_JAVADOC_REF +
" private class X_priv {}\n" +
"}\n" +
"\n"
};
private static String[] FIELDS_INVALID_COMMENT = {
"X.java",
REF_CLASS,
"X_dep.java",
DEP_CLASS,
"Y.java",
"public class Y {\n" +
INVALID_CLASS_JAVADOC_REF +
" public int x_pub;\n" +
INVALID_CLASS_JAVADOC_REF +
" protected int x_prot;\n" +
INVALID_CLASS_JAVADOC_REF +
" int x_pack;\n" +
INVALID_CLASS_JAVADOC_REF+
" private int x_priv;\n" +
"}\n" +
"\n"
};
private static String[] METHODS_INVALID_COMMENT = {
"X.java",
REF_CLASS,
"X_dep.java",
DEP_CLASS,
"Y.java",
"public class Y {\n" +
INVALID_METHOD_JAVADOC_REF +
" public void foo_pub(String str) throws IllegalArgumentException {}\n" +
INVALID_METHOD_JAVADOC_REF +
" protected void foo_pro(String str) throws IllegalArgumentException {}\n" +
INVALID_METHOD_JAVADOC_REF +
" void foo_pack(String str) throws IllegalArgumentException {}\n" +
INVALID_METHOD_JAVADOC_REF +
" private void foo_priv(String str) throws IllegalArgumentException {}\n" +
"}\n" +
"\n"
};
private static String[] CONSTRUCTORS_INVALID_COMMENT = {
"X.java",
REF_CLASS,
"X_dep.java",
DEP_CLASS,
"Y.java",
"public class Y {\n" +
INVALID_METHOD_JAVADOC_REF +
" public Y(int str) {}\n" +
INVALID_METHOD_JAVADOC_REF +
" protected Y(long str) {}\n" +
INVALID_METHOD_JAVADOC_REF +
" Y(float str) {}\n" +
INVALID_METHOD_JAVADOC_REF +
" private Y(double str) {}\n" +
"}\n" +
"\n"
};
private static String[] MISSING_TAGS = {
"X.java",
"public class X {\n" +
" // public\n" +
" /** */\n" +
" public class PublicClass {}\n" +
" /** */\n" +
" public int publicField;\n" +
" /** */\n" +
" public X(int i) {}\n" +
" /** */\n" +
" public int publicMethod(long l) { return 0;}\n" +
" // protected\n" +
" /** */\n" +
" protected class ProtectedClass {}\n" +
" /** */\n" +
" protected int protectedField;\n" +
" /** */\n" +
" protected X(long l) {}\n" +
" /** */\n" +
" protected int protectedMethod(long l) { return 0; }\n" +
" // default\n" +
" /** */\n" +
" class PackageClass {}\n" +
" /** */\n" +
" int packageField;\n" +
" /** */\n" +
" X(float f) {}\n" +
" /** */\n" +
" int packageMethod(long l) { return 0;}\n" +
" // private\n" +
" /** */\n" +
" private class PrivateClass {}\n" +
" /** */\n" +
" private int privateField;\n" +
" /** */\n" +
" private X(double d) {}\n" +
" /** */\n" +
" private int privateMethod(long l) { return 0;}\n" +
"}\n" +
"\n",
"Y.java",
"/** */\n" +
"public class Y extends X {\n" +
" public Y(int i) { super(i); }\n" +
" //methods\n" +
" /** */\n" +
" public int publicMethod(long l) { return 0;}\n" +
" /** */\n" +
" protected int protectedMethod(long l) { return 0;}\n" +
" /** */\n" +
" int packageMethod(long l) { return 0;}\n" +
" /** */\n" +
" private int privateMethod(long l) { return 0;}\n" +
"}\n"
};
private static String[] MISSING_COMMENTS = {
"X.java",
"/** */\n" +
"public class X {\n" +
" // public\n" +
" public class PublicClass {}\n" +
" public int publicField;\n" +
" public X(int i) {}\n" +
" public int publicMethod(long l) { return 0;}\n" +
" // protected\n" +
" protected class ProtectedClass {}\n" +
" protected int protectedField;\n" +
" protected X(long l) {}\n" +
" protected int protectedMethod(long l) { return 0; }\n" +
" // default\n" +
" class PackageClass {}\n" +
" int packageField;\n" +
" X(float f) {}\n" +
" int packageMethod(long l) { return 0;}\n" +
" // private\n" +
" private class PrivateClass {}\n" +
" private int privateField;\n" +
" private X(double d) {}\n" +
" private int privateMethod(long l) { return 0;}\n" +
"}\n" +
"\n",
"Y.java",
"/** */\n" +
"public class Y extends X {\n" +
" /** */\n" +
" public Y(int i) { super(i); }\n" +
" public int publicMethod(long l) { return 0;}\n" +
" protected int protectedMethod(long l) { return 0;}\n" +
" int packageMethod(long l) { return 0;}\n" +
" private int privateMethod(long l) { return 0;}\n" +
"}\n"
};
private static String[] CLASSES_ERRORS = {
"1. ERROR in Y.java (at line 3)\n" +
" * @see X_dep\n" +
" ^^^^^\n" +
"Javadoc: The type X_dep is deprecated\n" +
"----------\n" +
"2. ERROR in Y.java (at line 4)\n" +
" * @see X.X_priv\n" +
" ^^^^^^^^\n" +
"Javadoc: The type X.X_priv is not visible\n" +
"----------\n" +
"3. ERROR in Y.java (at line 5)\n" +
" * @see X.Unknown\n" +
" ^^^^^^^^^\n" +
"Javadoc: X.Unknown cannot be resolved to a type\n" +
"----------\n" +
"4. ERROR in Y.java (at line 6)\n" +
" * @see X#X(int)\n" +
" ^^^^^^\n" +
"Javadoc: The constructor X(int) is not visible\n" +
"----------\n" +
"5. ERROR in Y.java (at line 7)\n" +
" * @see X#X(String)\n" +
" ^^^^^^^^^\n" +
"Javadoc: The constructor X(String) is undefined\n" +
"----------\n" +
"6. ERROR in Y.java (at line 8)\n" +
" * @see X#X()\n" +
" ^^^\n" +
"Javadoc: The constructor X() is deprecated\n" +
"----------\n" +
"7. ERROR in Y.java (at line 9)\n" +
" * @see X#x_dep\n" +
" ^^^^^\n" +
"Javadoc: The field X.x_dep is deprecated\n" +
"----------\n" +
"8. ERROR in Y.java (at line 10)\n" +
" * @see X#x_priv\n" +
" ^^^^^^\n" +
"Javadoc: The field x_priv is not visible\n" +
"----------\n" +
"9. ERROR in Y.java (at line 11)\n" +
" * @see X#unknown\n" +
" ^^^^^^^\n" +
"Javadoc: unknown cannot be resolved or is not a field\n" +
"----------\n" +
"10. ERROR in Y.java (at line 12)\n" +
" * @see X#foo_dep()\n" +
" ^^^^^^^^^\n" +
"Javadoc: The method foo_dep() from the type X is deprecated\n" +
"----------\n" +
"11. ERROR in Y.java (at line 13)\n" +
" * @see X#foo_priv()\n" +
" ^^^^^^^^\n" +
"Javadoc: The method foo_priv() from the type X is not visible\n" +
"----------\n" +
"12. ERROR in Y.java (at line 14)\n" +
" * @see X#foo_dep(String)\n" +
" ^^^^^^^\n" +
"Javadoc: The method foo_dep() in the type X is not applicable for the arguments (String)\n" +
"----------\n" +
"13. ERROR in Y.java (at line 15)\n" +
" * @see X#unknown()\n" +
" ^^^^^^^\n" +
"Javadoc: The method unknown() is undefined for the type X\n" +
"----------\n",
"14. ERROR in Y.java (at line 19)\n" +
" * @see X_dep\n" +
" ^^^^^\n" +
"Javadoc: The type X_dep is deprecated\n" +
"----------\n" +
"15. ERROR in Y.java (at line 20)\n" +
" * @see X.X_priv\n" +
" ^^^^^^^^\n" +
"Javadoc: The type X.X_priv is not visible\n" +
"----------\n" +
"16. ERROR in Y.java (at line 21)\n" +
" * @see X.Unknown\n" +
" ^^^^^^^^^\n" +
"Javadoc: X.Unknown cannot be resolved to a type\n" +
"----------\n" +
"17. ERROR in Y.java (at line 22)\n" +
" * @see X#X(int)\n" +
" ^^^^^^\n" +
"Javadoc: The constructor X(int) is not visible\n" +
"----------\n" +
"18. ERROR in Y.java (at line 23)\n" +
" * @see X#X(String)\n" +
" ^^^^^^^^^\n" +
"Javadoc: The constructor X(String) is undefined\n" +
"----------\n" +
"19. ERROR in Y.java (at line 24)\n" +
" * @see X#X()\n" +
" ^^^\n" +
"Javadoc: The constructor X() is deprecated\n" +
"----------\n" +
"20. ERROR in Y.java (at line 25)\n" +
" * @see X#x_dep\n" +
" ^^^^^\n" +
"Javadoc: The field X.x_dep is deprecated\n" +
"----------\n" +
"21. ERROR in Y.java (at line 26)\n" +
" * @see X#x_priv\n" +
" ^^^^^^\n" +
"Javadoc: The field x_priv is not visible\n" +
"----------\n" +
"22. ERROR in Y.java (at line 27)\n" +
" * @see X#unknown\n" +
" ^^^^^^^\n" +
"Javadoc: unknown cannot be resolved or is not a field\n" +
"----------\n" +
"23. ERROR in Y.java (at line 28)\n" +
" * @see X#foo_dep()\n" +
" ^^^^^^^^^\n" +
"Javadoc: The method foo_dep() from the type X is deprecated\n" +
"----------\n" +
"24. ERROR in Y.java (at line 29)\n" +
" * @see X#foo_priv()\n" +
" ^^^^^^^^\n" +
"Javadoc: The method foo_priv() from the type X is not visible\n" +
"----------\n" +
"25. ERROR in Y.java (at line 30)\n" +
" * @see X#foo_dep(String)\n" +
" ^^^^^^^\n" +
"Javadoc: The method foo_dep() in the type X is not applicable for the arguments (String)\n" +
"----------\n" +
"26. ERROR in Y.java (at line 31)\n" +
" * @see X#unknown()\n" +
" ^^^^^^^\n" +
"Javadoc: The method unknown() is undefined for the type X\n" +
"----------\n",
"27. ERROR in Y.java (at line 35)\n" +
" * @see X_dep\n" +
" ^^^^^\n" +
"Javadoc: The type X_dep is deprecated\n" +
"----------\n" +
"28. ERROR in Y.java (at line 36)\n" +
" * @see X.X_priv\n" +
" ^^^^^^^^\n" +
"Javadoc: The type X.X_priv is not visible\n" +
"----------\n" +
"29. ERROR in Y.java (at line 37)\n" +
" * @see X.Unknown\n" +
" ^^^^^^^^^\n" +
"Javadoc: X.Unknown cannot be resolved to a type\n" +
"----------\n" +
"30. ERROR in Y.java (at line 38)\n" +
" * @see X#X(int)\n" +
" ^^^^^^\n" +
"Javadoc: The constructor X(int) is not visible\n" +
"----------\n" +
"31. ERROR in Y.java (at line 39)\n" +
" * @see X#X(String)\n" +
" ^^^^^^^^^\n" +
"Javadoc: The constructor X(String) is undefined\n" +
"----------\n" +
"32. ERROR in Y.java (at line 40)\n" +
" * @see X#X()\n" +
" ^^^\n" +
"Javadoc: The constructor X() is deprecated\n" +
"----------\n" +
"33. ERROR in Y.java (at line 41)\n" +
" * @see X#x_dep\n" +
" ^^^^^\n" +
"Javadoc: The field X.x_dep is deprecated\n" +
"----------\n" +
"34. ERROR in Y.java (at line 42)\n" +
" * @see X#x_priv\n" +
" ^^^^^^\n" +
"Javadoc: The field x_priv is not visible\n" +
"----------\n" +
"35. ERROR in Y.java (at line 43)\n" +
" * @see X#unknown\n" +
" ^^^^^^^\n" +
"Javadoc: unknown cannot be resolved or is not a field\n" +
"----------\n" +
"36. ERROR in Y.java (at line 44)\n" +
" * @see X#foo_dep()\n" +
" ^^^^^^^^^\n" +
"Javadoc: The method foo_dep() from the type X is deprecated\n" +
"----------\n" +
"37. ERROR in Y.java (at line 45)\n" +
" * @see X#foo_priv()\n" +
" ^^^^^^^^\n" +
"Javadoc: The method foo_priv() from the type X is not visible\n" +
"----------\n" +
"38. ERROR in Y.java (at line 46)\n" +
" * @see X#foo_dep(String)\n" +
" ^^^^^^^\n" +
"Javadoc: The method foo_dep() in the type X is not applicable for the arguments (String)\n" +
"----------\n" +
"39. ERROR in Y.java (at line 47)\n" +
" * @see X#unknown()\n" +
" ^^^^^^^\n" +
"Javadoc: The method unknown() is undefined for the type X\n" +
"----------\n",
"40. ERROR in Y.java (at line 51)\n" +
" * @see X_dep\n" +
" ^^^^^\n" +
"Javadoc: The type X_dep is deprecated\n" +
"----------\n" +
"41. ERROR in Y.java (at line 52)\n" +
" * @see X.X_priv\n" +
" ^^^^^^^^\n" +
"Javadoc: The type X.X_priv is not visible\n" +
"----------\n" +
"42. ERROR in Y.java (at line 53)\n" +
" * @see X.Unknown\n" +
" ^^^^^^^^^\n" +
"Javadoc: X.Unknown cannot be resolved to a type\n" +
"----------\n" +
"43. ERROR in Y.java (at line 54)\n" +
" * @see X#X(int)\n" +
" ^^^^^^\n" +
"Javadoc: The constructor X(int) is not visible\n" +
"----------\n" +
"44. ERROR in Y.java (at line 55)\n" +
" * @see X#X(String)\n" +
" ^^^^^^^^^\n" +
"Javadoc: The constructor X(String) is undefined\n" +
"----------\n" +
"45. ERROR in Y.java (at line 56)\n" +
" * @see X#X()\n" +
" ^^^\n" +
"Javadoc: The constructor X() is deprecated\n" +
"----------\n" +
"46. ERROR in Y.java (at line 57)\n" +
" * @see X#x_dep\n" +
" ^^^^^\n" +
"Javadoc: The field X.x_dep is deprecated\n" +
"----------\n" +
"47. ERROR in Y.java (at line 58)\n" +
" * @see X#x_priv\n" +
" ^^^^^^\n" +
"Javadoc: The field x_priv is not visible\n" +
"----------\n" +
"48. ERROR in Y.java (at line 59)\n" +
" * @see X#unknown\n" +
" ^^^^^^^\n" +
"Javadoc: unknown cannot be resolved or is not a field\n" +
"----------\n" +
"49. ERROR in Y.java (at line 60)\n" +
" * @see X#foo_dep()\n" +
" ^^^^^^^^^\n" +
"Javadoc: The method foo_dep() from the type X is deprecated\n" +
"----------\n" +
"50. ERROR in Y.java (at line 61)\n" +
" * @see X#foo_priv()\n" +
" ^^^^^^^^\n" +
"Javadoc: The method foo_priv() from the type X is not visible\n" +
"----------\n" +
"51. ERROR in Y.java (at line 62)\n" +
" * @see X#foo_dep(String)\n" +
" ^^^^^^^\n" +
"Javadoc: The method foo_dep() in the type X is not applicable for the arguments (String)\n" +
"----------\n" +
"52. ERROR in Y.java (at line 63)\n" +
" * @see X#unknown()\n" +
" ^^^^^^^\n" +
"Javadoc: The method unknown() is undefined for the type X\n" +
"----------\n"
};
private static String[] METHODS_ERRORS = {
"1. ERROR in Y.java (at line 4)\n" +
" * @param str\n" +
" ^^^\n" +
"Javadoc: Duplicate tag for parameter\n" +
"----------\n" +
"2. ERROR in Y.java (at line 5)\n" +
" * @param xxx\n" +
" ^^^\n" +
"Javadoc: Parameter xxx is not declared\n" +
"----------\n" +
"3. ERROR in Y.java (at line 8)\n" +
" * @throws java.io.IOException\n" +
" ^^^^^^^^^^^^^^^^^^^\n" +
"Javadoc: Exception IOException is not declared\n" +
"----------\n" +
"4. ERROR in Y.java (at line 9)\n" +
" * @throws Unknown\n" +
" ^^^^^^^\n" +
"Javadoc: Unknown cannot be resolved to a type\n" +
"----------\n" +
"5. ERROR in Y.java (at line 10)\n" +
" * @see X_dep\n" +
" ^^^^^\n" +
"Javadoc: The type X_dep is deprecated\n" +
"----------\n" +
"6. ERROR in Y.java (at line 11)\n" +
" * @see X.X_priv\n" +
" ^^^^^^^^\n" +
"Javadoc: The type X.X_priv is not visible\n" +
"----------\n" +
"7. ERROR in Y.java (at line 12)\n" +
" * @see X.Unknown\n" +
" ^^^^^^^^^\n" +
"Javadoc: X.Unknown cannot be resolved to a type\n" +
"----------\n" +
"8. ERROR in Y.java (at line 13)\n" +
" * @see X#X(int)\n" +
" ^^^^^^\n" +
"Javadoc: The constructor X(int) is not visible\n" +
"----------\n" +
"9. ERROR in Y.java (at line 14)\n" +
" * @see X#X(String)\n" +
" ^^^^^^^^^\n" +
"Javadoc: The constructor X(String) is undefined\n" +
"----------\n" +
"10. ERROR in Y.java (at line 15)\n" +
" * @see X#X()\n" +
" ^^^\n" +
"Javadoc: The constructor X() is deprecated\n" +
"----------\n" +
"11. ERROR in Y.java (at line 16)\n" +
" * @see X#x_dep\n" +
" ^^^^^\n" +
"Javadoc: The field X.x_dep is deprecated\n" +
"----------\n" +
"12. ERROR in Y.java (at line 17)\n" +
" * @see X#x_priv\n" +
" ^^^^^^\n" +
"Javadoc: The field x_priv is not visible\n" +
"----------\n" +
"13. ERROR in Y.java (at line 18)\n" +
" * @see X#unknown\n" +
" ^^^^^^^\n" +
"Javadoc: unknown cannot be resolved or is not a field\n" +
"----------\n" +
"14. ERROR in Y.java (at line 19)\n" +
" * @see X#foo_dep()\n" +
" ^^^^^^^^^\n" +
"Javadoc: The method foo_dep() from the type X is deprecated\n" +
"----------\n" +
"15. ERROR in Y.java (at line 20)\n" +
" * @see X#foo_priv()\n" +
" ^^^^^^^^\n" +
"Javadoc: The method foo_priv() from the type X is not visible\n" +
"----------\n" +
"16. ERROR in Y.java (at line 21)\n" +
" * @see X#foo_dep(String)\n" +
" ^^^^^^^\n" +
"Javadoc: The method foo_dep() in the type X is not applicable for the arguments (String)\n" +
"----------\n" +
"17. ERROR in Y.java (at line 22)\n" +
" * @see X#unknown()\n" +
" ^^^^^^^\n" +
"Javadoc: The method unknown() is undefined for the type X\n" +
"----------\n",
"18. ERROR in Y.java (at line 27)\n" +
" * @param str\n" +
" ^^^\n" +
"Javadoc: Duplicate tag for parameter\n" +
"----------\n" +
"19. ERROR in Y.java (at line 28)\n" +
" * @param xxx\n" +
" ^^^\n" +
"Javadoc: Parameter xxx is not declared\n" +
"----------\n" +
"20. ERROR in Y.java (at line 31)\n" +
" * @throws java.io.IOException\n" +
" ^^^^^^^^^^^^^^^^^^^\n" +
"Javadoc: Exception IOException is not declared\n" +
"----------\n" +
"21. ERROR in Y.java (at line 32)\n" +
" * @throws Unknown\n" +
" ^^^^^^^\n" +
"Javadoc: Unknown cannot be resolved to a type\n" +
"----------\n" +
"22. ERROR in Y.java (at line 33)\n" +
" * @see X_dep\n" +
" ^^^^^\n" +
"Javadoc: The type X_dep is deprecated\n" +
"----------\n" +
"23. ERROR in Y.java (at line 34)\n" +
" * @see X.X_priv\n" +
" ^^^^^^^^\n" +
"Javadoc: The type X.X_priv is not visible\n" +
"----------\n" +
"24. ERROR in Y.java (at line 35)\n" +
" * @see X.Unknown\n" +
" ^^^^^^^^^\n" +
"Javadoc: X.Unknown cannot be resolved to a type\n" +
"----------\n" +
"25. ERROR in Y.java (at line 36)\n" +
" * @see X#X(int)\n" +
" ^^^^^^\n" +
"Javadoc: The constructor X(int) is not visible\n" +
"----------\n" +
"26. ERROR in Y.java (at line 37)\n" +
" * @see X#X(String)\n" +
" ^^^^^^^^^\n" +
"Javadoc: The constructor X(String) is undefined\n" +
"----------\n" +
"27. ERROR in Y.java (at line 38)\n" +
" * @see X#X()\n" +
" ^^^\n" +
"Javadoc: The constructor X() is deprecated\n" +
"----------\n" +
"28. ERROR in Y.java (at line 39)\n" +
" * @see X#x_dep\n" +
" ^^^^^\n" +
"Javadoc: The field X.x_dep is deprecated\n" +
"----------\n" +
"29. ERROR in Y.java (at line 40)\n" +
" * @see X#x_priv\n" +
" ^^^^^^\n" +
"Javadoc: The field x_priv is not visible\n" +
"----------\n" +
"30. ERROR in Y.java (at line 41)\n" +
" * @see X#unknown\n" +
" ^^^^^^^\n" +
"Javadoc: unknown cannot be resolved or is not a field\n" +
"----------\n" +
"31. ERROR in Y.java (at line 42)\n" +
" * @see X#foo_dep()\n" +
" ^^^^^^^^^\n" +
"Javadoc: The method foo_dep() from the type X is deprecated\n" +
"----------\n" +
"32. ERROR in Y.java (at line 43)\n" +
" * @see X#foo_priv()\n" +
" ^^^^^^^^\n" +
"Javadoc: The method foo_priv() from the type X is not visible\n" +
"----------\n" +
"33. ERROR in Y.java (at line 44)\n" +
" * @see X#foo_dep(String)\n" +
" ^^^^^^^\n" +
"Javadoc: The method foo_dep() in the type X is not applicable for the arguments (String)\n" +
"----------\n" +
"34. ERROR in Y.java (at line 45)\n" +
" * @see X#unknown()\n" +
" ^^^^^^^\n" +
"Javadoc: The method unknown() is undefined for the type X\n" +
"----------\n",
"35. ERROR in Y.java (at line 50)\n" +
" * @param str\n" +
" ^^^\n" +
"Javadoc: Duplicate tag for parameter\n" +
"----------\n" +
"36. ERROR in Y.java (at line 51)\n" +
" * @param xxx\n" +
" ^^^\n" +
"Javadoc: Parameter xxx is not declared\n" +
"----------\n" +
"37. ERROR in Y.java (at line 54)\n" +
" * @throws java.io.IOException\n" +
" ^^^^^^^^^^^^^^^^^^^\n" +
"Javadoc: Exception IOException is not declared\n" +
"----------\n" +
"38. ERROR in Y.java (at line 55)\n" +
" * @throws Unknown\n" +
" ^^^^^^^\n" +
"Javadoc: Unknown cannot be resolved to a type\n" +
"----------\n" +
"39. ERROR in Y.java (at line 56)\n" +
" * @see X_dep\n" +
" ^^^^^\n" +
"Javadoc: The type X_dep is deprecated\n" +
"----------\n" +
"40. ERROR in Y.java (at line 57)\n" +
" * @see X.X_priv\n" +
" ^^^^^^^^\n" +
"Javadoc: The type X.X_priv is not visible\n" +
"----------\n" +
"41. ERROR in Y.java (at line 58)\n" +
" * @see X.Unknown\n" +
" ^^^^^^^^^\n" +
"Javadoc: X.Unknown cannot be resolved to a type\n" +
"----------\n" +
"42. ERROR in Y.java (at line 59)\n" +
" * @see X#X(int)\n" +
" ^^^^^^\n" +
"Javadoc: The constructor X(int) is not visible\n" +
"----------\n" +
"43. ERROR in Y.java (at line 60)\n" +
" * @see X#X(String)\n" +
" ^^^^^^^^^\n" +
"Javadoc: The constructor X(String) is undefined\n" +
"----------\n" +
"44. ERROR in Y.java (at line 61)\n" +
" * @see X#X()\n" +
" ^^^\n" +
"Javadoc: The constructor X() is deprecated\n" +
"----------\n" +
"45. ERROR in Y.java (at line 62)\n" +
" * @see X#x_dep\n" +
" ^^^^^\n" +
"Javadoc: The field X.x_dep is deprecated\n" +
"----------\n" +
"46. ERROR in Y.java (at line 63)\n" +
" * @see X#x_priv\n" +
" ^^^^^^\n" +
"Javadoc: The field x_priv is not visible\n" +
"----------\n" +
"47. ERROR in Y.java (at line 64)\n" +
" * @see X#unknown\n" +
" ^^^^^^^\n" +
"Javadoc: unknown cannot be resolved or is not a field\n" +
"----------\n" +
"48. ERROR in Y.java (at line 65)\n" +
" * @see X#foo_dep()\n" +
" ^^^^^^^^^\n" +
"Javadoc: The method foo_dep() from the type X is deprecated\n" +
"----------\n" +
"49. ERROR in Y.java (at line 66)\n" +
" * @see X#foo_priv()\n" +
" ^^^^^^^^\n" +
"Javadoc: The method foo_priv() from the type X is not visible\n" +
"----------\n" +
"50. ERROR in Y.java (at line 67)\n" +
" * @see X#foo_dep(String)\n" +
" ^^^^^^^\n" +
"Javadoc: The method foo_dep() in the type X is not applicable for the arguments (String)\n" +
"----------\n" +
"51. ERROR in Y.java (at line 68)\n" +
" * @see X#unknown()\n" +
" ^^^^^^^\n" +
"Javadoc: The method unknown() is undefined for the type X\n" +
"----------\n",
"52. ERROR in Y.java (at line 73)\n" +
" * @param str\n" +
" ^^^\n" +
"Javadoc: Duplicate tag for parameter\n" +
"----------\n" +
"53. ERROR in Y.java (at line 74)\n" +
" * @param xxx\n" +
" ^^^\n" +
"Javadoc: Parameter xxx is not declared\n" +
"----------\n" +
"54. ERROR in Y.java (at line 77)\n" +
" * @throws java.io.IOException\n" +
" ^^^^^^^^^^^^^^^^^^^\n" +
"Javadoc: Exception IOException is not declared\n" +
"----------\n" +
"55. ERROR in Y.java (at line 78)\n" +
" * @throws Unknown\n" +
" ^^^^^^^\n" +
"Javadoc: Unknown cannot be resolved to a type\n" +
"----------\n" +
"56. ERROR in Y.java (at line 79)\n" +
" * @see X_dep\n" +
" ^^^^^\n" +
"Javadoc: The type X_dep is deprecated\n" +
"----------\n" +
"57. ERROR in Y.java (at line 80)\n" +
" * @see X.X_priv\n" +
" ^^^^^^^^\n" +
"Javadoc: The type X.X_priv is not visible\n" +
"----------\n" +
"58. ERROR in Y.java (at line 81)\n" +
" * @see X.Unknown\n" +
" ^^^^^^^^^\n" +
"Javadoc: X.Unknown cannot be resolved to a type\n" +
"----------\n" +
"59. ERROR in Y.java (at line 82)\n" +
" * @see X#X(int)\n" +
" ^^^^^^\n" +
"Javadoc: The constructor X(int) is not visible\n" +
"----------\n" +
"60. ERROR in Y.java (at line 83)\n" +
" * @see X#X(String)\n" +
" ^^^^^^^^^\n" +
"Javadoc: The constructor X(String) is undefined\n" +
"----------\n" +
"61. ERROR in Y.java (at line 84)\n" +
" * @see X#X()\n" +
" ^^^\n" +
"Javadoc: The constructor X() is deprecated\n" +
"----------\n" +
"62. ERROR in Y.java (at line 85)\n" +
" * @see X#x_dep\n" +
" ^^^^^\n" +
"Javadoc: The field X.x_dep is deprecated\n" +
"----------\n" +
"63. ERROR in Y.java (at line 86)\n" +
" * @see X#x_priv\n" +
" ^^^^^^\n" +
"Javadoc: The field x_priv is not visible\n" +
"----------\n" +
"64. ERROR in Y.java (at line 87)\n" +
" * @see X#unknown\n" +
" ^^^^^^^\n" +
"Javadoc: unknown cannot be resolved or is not a field\n" +
"----------\n" +
"65. ERROR in Y.java (at line 88)\n" +
" * @see X#foo_dep()\n" +
" ^^^^^^^^^\n" +
"Javadoc: The method foo_dep() from the type X is deprecated\n" +
"----------\n" +
"66. ERROR in Y.java (at line 89)\n" +
" * @see X#foo_priv()\n" +
" ^^^^^^^^\n" +
"Javadoc: The method foo_priv() from the type X is not visible\n" +
"----------\n" +
"67. ERROR in Y.java (at line 90)\n" +
" * @see X#foo_dep(String)\n" +
" ^^^^^^^\n" +
"Javadoc: The method foo_dep() in the type X is not applicable for the arguments (String)\n" +
"----------\n" +
"68. ERROR in Y.java (at line 91)\n" +
" * @see X#unknown()\n" +
" ^^^^^^^\n" +
"Javadoc: The method unknown() is undefined for the type X\n" +
"----------\n"
};
private String resultForInvalidTagsClassOrField(int visibility) {
if (reportInvalidJavadocTagsDeprecatedRef == null && reportInvalidJavadocTagsNotVisibleRef == null) {
StringBuilder result = new StringBuilder("----------\n"); //$NON-NLS-1$
for (int i=0; i<=visibility; i++) {
result.append(CLASSES_ERRORS[i]);
}
return result.toString();
}
StringBuffer result = new StringBuffer("----------\n");
for (int i=0, count=1; i<= visibility; i++) {
StringTokenizer tokenizer = new StringTokenizer(CLASSES_ERRORS[i], "\n");
while (tokenizer.hasMoreTokens()) {
StringBuffer error = new StringBuffer();
boolean add = true;
for (int j=0; j<5; j++) {
String line = tokenizer.nextToken();
switch (j) {
case 0:
error.append(count);
error.append(line.substring(line.indexOf('.')));
break;
case 3:
if (CompilerOptions.DISABLED.equals(reportInvalidJavadocTagsDeprecatedRef)) {
add = line.indexOf("is deprecated") == -1;
}
if (add && CompilerOptions.DISABLED.equals(reportInvalidJavadocTagsNotVisibleRef)) {
add = line.indexOf("is not visible") == -1 && line.indexOf("visibility for malformed doc comments") == -1;
}
default:
error.append(line);
}
error.append('\n');
}
if (add) {
count++;
result.append(error);
}
}
}
return result.toString();
}
private String resultForInvalidTagsMethodOrConstructor(int visibility) {
if (reportInvalidJavadocTagsDeprecatedRef == null && reportInvalidJavadocTagsNotVisibleRef == null) {
StringBuilder result = new StringBuilder("----------\n"); //$NON-NLS-1$
for (int i=0; i<=visibility; i++) {
result.append(METHODS_ERRORS[i]);
}
return result.toString();
}
StringBuffer result = new StringBuffer("----------\n");
for (int i=0, count=1; i<= visibility; i++) {
StringTokenizer tokenizer = new StringTokenizer(METHODS_ERRORS[i], "\n");
while (tokenizer.hasMoreTokens()) {
StringBuffer error = new StringBuffer();
boolean add = true;
for (int j=0; j<5; j++) {
String line = tokenizer.nextToken();
switch (j) {
case 0:
error.append(count);
error.append(line.substring(line.indexOf('.')));
break;
case 3:
if (CompilerOptions.DISABLED.equals(reportInvalidJavadocTagsDeprecatedRef)) {
add = line.indexOf("is deprecated") == -1;
}
if (add && CompilerOptions.DISABLED.equals(reportInvalidJavadocTagsNotVisibleRef)) {
add = line.indexOf("is not visible") == -1 && line.indexOf("visibility for malformed doc comments") == -1;
}
default:
error.append(line);
}
error.append('\n');
}
if (add) {
count++;
result.append(error);
}
}
}
return result.toString();
}
private static String[] X_ResultForMissingTags = {
"1. ERROR in X.java (at line 8)\n" +
" public X(int i) {}\n" +
" ^\n" +
"Javadoc: Missing tag for parameter i\n" +
"----------\n" +
"2. ERROR in X.java (at line 10)\n" +
" public int publicMethod(long l) { return 0;}\n" +
" ^^^\n" +
"Javadoc: Missing tag for return type\n" +
"----------\n" +
"3. ERROR in X.java (at line 10)\n" +
" public int publicMethod(long l) { return 0;}\n" +
" ^\n" +
"Javadoc: Missing tag for parameter l\n" +
"----------\n",
"4. ERROR in X.java (at line 17)\n" +
" protected X(long l) {}\n" +
" ^\n" +
"Javadoc: Missing tag for parameter l\n" +
"----------\n" +
"5. ERROR in X.java (at line 19)\n" +
" protected int protectedMethod(long l) { return 0; }\n" +
" ^^^\n" +
"Javadoc: Missing tag for return type\n" +
"----------\n" +
"6. ERROR in X.java (at line 19)\n" +
" protected int protectedMethod(long l) { return 0; }\n" +
" ^\n" +
"Javadoc: Missing tag for parameter l\n" +
"----------\n",
"7. ERROR in X.java (at line 26)\n" +
" X(float f) {}\n" +
" ^\n" +
"Javadoc: Missing tag for parameter f\n" +
"----------\n" +
"8. ERROR in X.java (at line 28)\n" +
" int packageMethod(long l) { return 0;}\n" +
" ^^^\n" +
"Javadoc: Missing tag for return type\n" +
"----------\n" +
"9. ERROR in X.java (at line 28)\n" +
" int packageMethod(long l) { return 0;}\n" +
" ^\n" +
"Javadoc: Missing tag for parameter l\n" +
"----------\n",
"10. ERROR in X.java (at line 35)\n" +
" private X(double d) {}\n" +
" ^\n" +
"Javadoc: Missing tag for parameter d\n" +
"----------\n" +
"11. ERROR in X.java (at line 37)\n" +
" private int privateMethod(long l) { return 0;}\n" +
" ^^^\n" +
"Javadoc: Missing tag for return type\n" +
"----------\n" +
"12. ERROR in X.java (at line 37)\n" +
" private int privateMethod(long l) { return 0;}\n" +
" ^\n" +
"Javadoc: Missing tag for parameter l\n" +
"----------\n"
};
private static String[] Y_ResultForMissingTags = {
"1. ERROR in Y.java (at line 6)\n" +
" public int publicMethod(long l) { return 0;}\n" +
" ^^^\n" +
"Javadoc: Missing tag for return type\n" +
"----------\n" +
"2. ERROR in Y.java (at line 6)\n" +
" public int publicMethod(long l) { return 0;}\n" +
" ^\n" +
"Javadoc: Missing tag for parameter l\n" +
"----------\n",
"3. ERROR in Y.java (at line 8)\n" +
" protected int protectedMethod(long l) { return 0;}\n" +
" ^^^\n" +
"Javadoc: Missing tag for return type\n" +
"----------\n" +
"4. ERROR in Y.java (at line 8)\n" +
" protected int protectedMethod(long l) { return 0;}\n" +
" ^\n" +
"Javadoc: Missing tag for parameter l\n" +
"----------\n",
"5. ERROR in Y.java (at line 10)\n" +
" int packageMethod(long l) { return 0;}\n" +
" ^^^\n" +
"Javadoc: Missing tag for return type\n" +
"----------\n" +
"6. ERROR in Y.java (at line 10)\n" +
" int packageMethod(long l) { return 0;}\n" +
" ^\n" +
"Javadoc: Missing tag for parameter l\n" +
"----------\n",
"7. ERROR in Y.java (at line 12)\n" +
" private int privateMethod(long l) { return 0;}\n" +
" ^^^\n" +
"Javadoc: Missing tag for return type\n" +
"----------\n" +
"8. ERROR in Y.java (at line 12)\n" +
" private int privateMethod(long l) { return 0;}\n" +
" ^\n" +
"Javadoc: Missing tag for parameter l\n" +
"----------\n",
"----------\n" +
"1. ERROR in Y.java (at line 12)\n" +
" private int privateMethod(long l) { return 0;}\n" +
" ^^^\n" +
"Javadoc: Missing tag for return type\n" +
"----------\n" +
"2. ERROR in Y.java (at line 12)\n" +
" private int privateMethod(long l) { return 0;}\n" +
" ^\n" +
"Javadoc: Missing tag for parameter l\n" +
"----------\n"
};
private String resultForMissingTags(int visibility) {
StringBuffer result = new StringBuffer("----------\n");
for (int i=0; i<=visibility; i++) {
result.append(X_ResultForMissingTags[i]);
}
if (CompilerOptions.ENABLED.equals(reportMissingJavadocTagsOverriding)) {
result.append("----------\n");
result.append(Y_ResultForMissingTags[PUBLIC_VISIBILITY]);
if (visibility >= PROTECTED_VISIBILITY) {
result.append(Y_ResultForMissingTags[PROTECTED_VISIBILITY]);
if (visibility >= DEFAULT_VISIBILITY) {
result.append(Y_ResultForMissingTags[DEFAULT_VISIBILITY]);
if (visibility == PRIVATE_VISIBILITY) {
result.append(Y_ResultForMissingTags[PRIVATE_VISIBILITY]);
}
}
}
}
// Private level is always reported for as it never overrides...
else if (visibility == PRIVATE_VISIBILITY) {
result.append(Y_ResultForMissingTags[PRIVATE_VISIBILITY+1]);
}
return result.toString();
}
private static String[] X_ResultForMissingComments = {
"1. ERROR in X.java (at line 4)\n" +
" public class PublicClass {}\n" +
" ^^^^^^^^^^^\n" +
"Javadoc: Missing comment for public declaration\n" +
"----------\n" +
"2. ERROR in X.java (at line 5)\n" +
" public int publicField;\n" +
" ^^^^^^^^^^^\n" +
"Javadoc: Missing comment for public declaration\n" +
"----------\n" +
"3. ERROR in X.java (at line 6)\n" +
" public X(int i) {}\n" +
" ^^^^^^^^\n" +
"Javadoc: Missing comment for public declaration\n" +
"----------\n" +
"4. ERROR in X.java (at line 7)\n" +
" public int publicMethod(long l) { return 0;}\n" +
" ^^^^^^^^^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for public declaration\n" +
"----------\n",
"5. ERROR in X.java (at line 9)\n" +
" protected class ProtectedClass {}\n" +
" ^^^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for protected declaration\n" +
"----------\n" +
"6. ERROR in X.java (at line 10)\n" +
" protected int protectedField;\n" +
" ^^^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for protected declaration\n" +
"----------\n" +
"7. ERROR in X.java (at line 11)\n" +
" protected X(long l) {}\n" +
" ^^^^^^^^^\n" +
"Javadoc: Missing comment for protected declaration\n" +
"----------\n" +
"8. ERROR in X.java (at line 12)\n" +
" protected int protectedMethod(long l) { return 0; }\n" +
" ^^^^^^^^^^^^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for protected declaration\n" +
"----------\n",
"9. ERROR in X.java (at line 14)\n" +
" class PackageClass {}\n" +
" ^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for default declaration\n" +
"----------\n" +
"10. ERROR in X.java (at line 15)\n" +
" int packageField;\n" +
" ^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for default declaration\n" +
"----------\n" +
"11. ERROR in X.java (at line 16)\n" +
" X(float f) {}\n" +
" ^^^^^^^^^^\n" +
"Javadoc: Missing comment for default declaration\n" +
"----------\n" +
"12. ERROR in X.java (at line 17)\n" +
" int packageMethod(long l) { return 0;}\n" +
" ^^^^^^^^^^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for default declaration\n" +
"----------\n",
"13. ERROR in X.java (at line 19)\n" +
" private class PrivateClass {}\n" +
" ^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for private declaration\n" +
"----------\n" +
"14. ERROR in X.java (at line 20)\n" +
" private int privateField;\n" +
" ^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for private declaration\n" +
"----------\n" +
"15. ERROR in X.java (at line 21)\n" +
" private X(double d) {}\n" +
" ^^^^^^^^^^^\n" +
"Javadoc: Missing comment for private declaration\n" +
"----------\n" +
"16. ERROR in X.java (at line 22)\n" +
" private int privateMethod(long l) { return 0;}\n" +
" ^^^^^^^^^^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for private declaration\n" +
"----------\n"
};
private static String[] Y_ResultForMissingComments = {
"1. ERROR in Y.java (at line 5)\n" +
" public int publicMethod(long l) { return 0;}\n" +
" ^^^^^^^^^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for public declaration\n" +
"----------\n",
"2. ERROR in Y.java (at line 6)\n" +
" protected int protectedMethod(long l) { return 0;}\n" +
" ^^^^^^^^^^^^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for protected declaration\n" +
"----------\n",
"3. ERROR in Y.java (at line 7)\n" +
" int packageMethod(long l) { return 0;}\n" +
" ^^^^^^^^^^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for default declaration\n" +
"----------\n",
"4. ERROR in Y.java (at line 8)\n" +
" private int privateMethod(long l) { return 0;}\n" +
" ^^^^^^^^^^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for private declaration\n" +
"----------\n",
"----------\n" +
"1. ERROR in Y.java (at line 8)\n" +
" private int privateMethod(long l) { return 0;}\n" +
" ^^^^^^^^^^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for private declaration\n" +
"----------\n"
};
private String resultForMissingComments(int visibility) {
StringBuffer result = new StringBuffer("----------\n");
for (int i=0; i<=visibility; i++) {
result.append(X_ResultForMissingComments[i]);
}
if (CompilerOptions.ENABLED.equals(reportMissingJavadocCommentsOverriding)) {
result.append("----------\n");
result.append(Y_ResultForMissingComments[PUBLIC_VISIBILITY]);
if (visibility >= PROTECTED_VISIBILITY) {
result.append(Y_ResultForMissingComments[PROTECTED_VISIBILITY]);
if (visibility >= DEFAULT_VISIBILITY) {
result.append(Y_ResultForMissingComments[DEFAULT_VISIBILITY]);
if (visibility == PRIVATE_VISIBILITY) {
result.append(Y_ResultForMissingComments[PRIVATE_VISIBILITY]);
}
}
}
}
// Private level is always reported for as it never overrides...
else if (visibility == PRIVATE_VISIBILITY) {
result.append(Y_ResultForMissingComments[PRIVATE_VISIBILITY+1]);
}
return result.toString();
}
public JavadocTestOptions(String name) {
super(name);
}
public static Class javadocTestClass() {
return JavadocTestOptions.class;
}
public static Test suite() {
return buildAllCompliancesTestSuite(javadocTestClass());
}
static { // Use this static to initialize testNames (String[]) , testRange (int[2]), testNumbers (int[])
}
/**
* @return Returns the docCommentSupport.
*
public String getNamePrefix() {
if (this.localDocCommentSupport == null) {
return super.getNamePrefix();
} else {
return this.localDocCommentSupport;
}
}
*/
protected Map getCompilerOptions() {
Map options = super.getCompilerOptions();
// Set javadoc options if non null
if (this.docCommentSupport != null)
options.put(CompilerOptions.OPTION_DocCommentSupport, this.docCommentSupport);
if (reportInvalidJavadoc != null)
options.put(CompilerOptions.OPTION_ReportInvalidJavadoc, reportInvalidJavadoc);
if (reportInvalidJavadocTagsVisibility != null)
options.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsVisibility, reportInvalidJavadocTagsVisibility);
if (reportInvalidJavadocTags != null)
options.put(CompilerOptions.OPTION_ReportInvalidJavadocTags, reportInvalidJavadocTags);
if (reportInvalidJavadocTagsDeprecatedRef != null)
options.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsDeprecatedRef, reportInvalidJavadocTagsDeprecatedRef);
if (reportInvalidJavadocTagsNotVisibleRef!= null)
options.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsNotVisibleRef, reportInvalidJavadocTagsNotVisibleRef);
if (reportMissingJavadocTags != null)
options.put(CompilerOptions.OPTION_ReportMissingJavadocTags, reportMissingJavadocTags);
if (reportMissingJavadocTagsVisibility != null)
options.put(CompilerOptions.OPTION_ReportMissingJavadocTagsVisibility, reportMissingJavadocTagsVisibility);
if (reportMissingJavadocTagsOverriding != null)
options.put(CompilerOptions.OPTION_ReportMissingJavadocTagsOverriding, reportMissingJavadocTagsOverriding);
if (reportMissingJavadocComments != null)
options.put(CompilerOptions.OPTION_ReportMissingJavadocComments, reportMissingJavadocComments);
if (reportMissingJavadocCommentsVisibility != null)
options.put(CompilerOptions.OPTION_ReportMissingJavadocCommentsVisibility, reportMissingJavadocCommentsVisibility);
if (reportMissingJavadocCommentsOverriding != null)
options.put(CompilerOptions.OPTION_ReportMissingJavadocCommentsOverriding, reportMissingJavadocCommentsOverriding);
// Ignore other options to avoid polluting warnings
options.put(CompilerOptions.OPTION_ReportFieldHiding, CompilerOptions.IGNORE);
// options.put(CompilerOptions.OPTION_ReportSyntheticAccessEmulation, CompilerOptions.IGNORE);
options.put(CompilerOptions.OPTION_ReportUnusedLocal, CompilerOptions.IGNORE);
options.put(CompilerOptions.OPTION_ReportUnusedPrivateMember, CompilerOptions.IGNORE);
return options;
}
/* (non-Javadoc)
* @see junit.framework.TestCase#setUp()
*/
protected void setUp() throws Exception {
super.setUp();
reportInvalidJavadoc = null;
reportInvalidJavadocTagsVisibility = null;
reportInvalidJavadocTags = null;
reportInvalidJavadocTagsDeprecatedRef = null;
reportInvalidJavadocTagsNotVisibleRef = null;
reportMissingJavadocTags = null;
reportMissingJavadocTagsVisibility = null;
reportMissingJavadocTagsOverriding = null;
reportMissingJavadocComments = null;
reportMissingJavadocCommentsVisibility = null;
reportMissingJavadocCommentsOverriding = null;
}
/*
* Tests for 'invalid javadoc' options when no doc support is set
*/
public void testInvalidTagsClassNoSupport() {
docCommentSupport = CompilerOptions.DISABLED;
runConformTest(CLASSES_INVALID_COMMENT);
}
public void testInvalidTagsFieldNoSupport() {
docCommentSupport = CompilerOptions.DISABLED;
runConformTest(FIELDS_INVALID_COMMENT);
}
public void testInvalidTagsMethodNoSupport() {
docCommentSupport = CompilerOptions.DISABLED;
runConformTest(METHODS_INVALID_COMMENT);
}
public void testInvalidTagsConstructorNoSupport() {
docCommentSupport = CompilerOptions.DISABLED;
runConformTest(CONSTRUCTORS_INVALID_COMMENT);
}
/*
* Tests for 'invalid javadoc' options
*/
// Test default invalid javadoc (means "ignore" with tags"disabled" and visibility "public")
public void testInvalidTagsClassDefaults() {
runConformTest(CLASSES_INVALID_COMMENT);
}
public void testInvalidTagsFieldDefaults() {
runConformTest(FIELDS_INVALID_COMMENT);
}
public void testInvalidTagsMethodDefaults() {
runConformTest(METHODS_INVALID_COMMENT);
}
public void testInvalidTagsConstructorDefaults() {
runConformTest(CONSTRUCTORS_INVALID_COMMENT);
}
// Test invalid javadoc "error" + tags "disabled" and visibility "public"
public void testInvalidTagsClassErrorNotags() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.DISABLED;
runConformTest(CLASSES_INVALID_COMMENT);
}
public void testInvalidTagsFieldErrorNotags() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.DISABLED;
runConformTest(FIELDS_INVALID_COMMENT);
}
public void testInvalidTagsMethodErrorNotags() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.DISABLED;
runConformTest(METHODS_INVALID_COMMENT);
}
public void testInvalidTagsConstructorErrorNotags() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.DISABLED;
runConformTest(CONSTRUCTORS_INVALID_COMMENT);
}
// Test invalid javadoc "error" + tags "enabled" and visibility "public"
public void testInvalidTagsClassErrorTagsPublic() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(PUBLIC_VISIBILITY));
}
public void testInvalidTagsFieldErrorTagsPublic() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(PUBLIC_VISIBILITY));
}
public void testInvalidTagsMethodErrorTagsPublic() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PUBLIC_VISIBILITY));
}
public void testInvalidTagsConstructorErrorTagsPublic() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PUBLIC_VISIBILITY));
}
// Test invalid javadoc "error" + tags "enabled" and visibility "protected"
public void testInvalidTagsClassErrorTagsProtected() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(PROTECTED_VISIBILITY));
}
public void testInvalidTagsFieldErrorTagsProtected() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(PROTECTED_VISIBILITY));
}
public void testInvalidTagsMethodErrorTagsProtected() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PROTECTED_VISIBILITY));
}
public void testInvalidTagsConstructorErrorTagsProtected() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PROTECTED_VISIBILITY));
}
// Test invalid javadoc "error" + tags "enabled" and visibility "default"
public void testInvalidTagsClassErrorTagsPackage() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(DEFAULT_VISIBILITY));
}
public void testInvalidTagsFieldErrorTagsPackage() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(DEFAULT_VISIBILITY));
}
public void testInvalidTagsMethodErrorTagsPackage() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(DEFAULT_VISIBILITY));
}
public void testInvalidTagsConstructorErrorTagsPackage() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(DEFAULT_VISIBILITY));
}
// Test invalid javadoc "error" + tags "enabled" and visibility "private"
public void testInvalidTagsClassErrorTagsPrivate() {
reportInvalidJavadoc = CompilerOptions.ERROR;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(PRIVATE_VISIBILITY));
}
public void testInvalidTagsFieldErrorTagsPrivate() {
reportInvalidJavadoc = CompilerOptions.ERROR;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(PRIVATE_VISIBILITY));
}
public void testInvalidTagsMethodErrorTagsPrivate() {
reportInvalidJavadoc = CompilerOptions.ERROR;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PRIVATE_VISIBILITY));
}
public void testInvalidTagsConstructorErrorTagsPrivate() {
reportInvalidJavadoc = CompilerOptions.ERROR;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PRIVATE_VISIBILITY));
}
// Test invalid javadoc "error" + tags "enabled" but invalid deprecated references "disabled" and visibility "public"
public void testInvalidTagsDeprecatedRefClassErrorTagsPublic() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(PUBLIC_VISIBILITY));
}
public void testInvalidTagsDeprecatedRefFieldErrorTagsPublic() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(PUBLIC_VISIBILITY));
}
public void testInvalidTagsDeprecatedRefMethodErrorTagsPublic() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PUBLIC_VISIBILITY));
}
public void testInvalidTagsDeprecatedRefConstructorErrorTagsPublic() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PUBLIC_VISIBILITY));
}
// Test invalid javadoc "error" + tags "enabled" but invalid deprecated references "disabled" visibility "protected"
public void testInvalidTagsDeprecatedRefClassErrorTagsProtected() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(PROTECTED_VISIBILITY));
}
public void testInvalidTagsDeprecatedRefFieldErrorTagsProtected() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(PROTECTED_VISIBILITY));
}
public void testInvalidTagsDeprecatedRefMethodErrorTagsProtected() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PROTECTED_VISIBILITY));
}
public void testInvalidTagsDeprecatedRefConstructorErrorTagsProtected() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PROTECTED_VISIBILITY));
}
// Test invalid javadoc "error" + tags "enabled" but invalid deprecated references "disabled" and visibility "default"
public void testInvalidTagsDeprecatedRefClassErrorTagsPackage() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(DEFAULT_VISIBILITY));
}
public void testInvalidTagsDeprecatedRefFieldErrorTagsPackage() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(DEFAULT_VISIBILITY));
}
public void testInvalidTagsDeprecatedRefMethodErrorTagsPackage() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(DEFAULT_VISIBILITY));
}
public void testInvalidTagsDeprecatedRefConstructorErrorTagsPackage() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(DEFAULT_VISIBILITY));
}
// Test invalid javadoc "error" + tags "enabled" but invalid deprecated references "disabled" and visibility "private"
public void testInvalidTagsDeprecatedRefClassErrorTagsPrivate() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(PRIVATE_VISIBILITY));
}
public void testInvalidTagsDeprecatedRefFieldErrorTagsPrivate() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(PRIVATE_VISIBILITY));
}
public void testInvalidTagsDeprecatedRefMethodErrorTagsPrivate() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PRIVATE_VISIBILITY));
}
public void testInvalidTagsDeprecatedRefConstructorErrorTagsPrivate() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PRIVATE_VISIBILITY));
}
// Test invalid javadoc "error" + tags "enabled" but invalid not visible references "disabled" and visibility "public"
public void testInvalidTagsNotVisibleRefClassErrorTagsPublic() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(PUBLIC_VISIBILITY));
}
public void testInvalidTagsNotVisibleRefFieldErrorTagsPublic() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(PUBLIC_VISIBILITY));
}
public void testInvalidTagsNotVisibleRefMethodErrorTagsPublic() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PUBLIC_VISIBILITY));
}
public void testInvalidTagsNotVisibleRefConstructorErrorTagsPublic() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PUBLIC_VISIBILITY));
}
// Test invalid javadoc "error" + tags "enabled" but invalid not visible references "disabled" visibility "protected"
public void testInvalidTagsNotVisibleRefClassErrorTagsProtected() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(PROTECTED_VISIBILITY));
}
public void testInvalidTagsNotVisibleRefFieldErrorTagsProtected() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(PROTECTED_VISIBILITY));
}
public void testInvalidTagsNotVisibleRefMethodErrorTagsProtected() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PROTECTED_VISIBILITY));
}
public void testInvalidTagsNotVisibleRefConstructorErrorTagsProtected() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PROTECTED_VISIBILITY));
}
// Test invalid javadoc "error" + tags "enabled" but invalid not visible references "disabled" and visibility "default"
public void testInvalidTagsNotVisibleRefClassErrorTagsPackage() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(DEFAULT_VISIBILITY));
}
public void testInvalidTagsNotVisibleRefFieldErrorTagsPackage() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(DEFAULT_VISIBILITY));
}
public void testInvalidTagsNotVisibleRefMethodErrorTagsPackage() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(DEFAULT_VISIBILITY));
}
public void testInvalidTagsNotVisibleRefConstructorErrorTagsPackage() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(DEFAULT_VISIBILITY));
}
// Test invalid javadoc "error" + tags "enabled" but invalid not visible references "disabled" and visibility "private"
public void testInvalidTagsNotVisibleRefClassErrorTagsPrivate() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(PRIVATE_VISIBILITY));
}
public void testInvalidTagsNotVisibleRefFieldErrorTagsPrivate() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(PRIVATE_VISIBILITY));
}
public void testInvalidTagsNotVisibleRefMethodErrorTagsPrivate() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PRIVATE_VISIBILITY));
}
public void testInvalidTagsNotVisibleRefConstructorErrorTagsPrivate() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PRIVATE_VISIBILITY));
}
// Test invalid javadoc "error" + tags "enabled" but invalid deprecated or not visible references "disabled" and visibility "public"
public void testInvalidTagsDeprecatedAndNotVisibleRefClassErrorTagsPublic() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(PUBLIC_VISIBILITY));
}
public void testInvalidTagsDeprecatedAndNotVisibleRefFieldErrorTagsPublic() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(PUBLIC_VISIBILITY));
}
public void testInvalidTagsDeprecatedAndNotVisibleRefMethodErrorTagsPublic() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PUBLIC_VISIBILITY));
}
public void testInvalidTagsDeprecatedAndNotVisibleRefConstructorErrorTagsPublic() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PUBLIC_VISIBILITY));
}
// Test invalid javadoc "error" + tags "enabled" but invalid deprecated or not visible references "disabled" visibility "protected"
public void testInvalidTagsDeprecatedAndNotVisibleRefClassErrorTagsProtected() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(PROTECTED_VISIBILITY));
}
public void testInvalidTagsDeprecatedAndNotVisibleRefFieldErrorTagsProtected() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(PROTECTED_VISIBILITY));
}
public void testInvalidTagsDeprecatedAndNotVisibleRefMethodErrorTagsProtected() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PROTECTED_VISIBILITY));
}
public void testInvalidTagsDeprecatedAndNotVisibleRefConstructorErrorTagsProtected() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PROTECTED_VISIBILITY));
}
// Test invalid javadoc "error" + tags "enabled" but invalid deprecated or not visible references "disabled" and visibility "default"
public void testInvalidTagsDeprecatedAndNotVisibleRefClassErrorTagsPackage() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(DEFAULT_VISIBILITY));
}
public void testInvalidTagsDeprecatedAndNotVisibleRefFieldErrorTagsPackage() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(DEFAULT_VISIBILITY));
}
public void testInvalidTagsDeprecatedAndNotVisibleRefMethodErrorTagsPackage() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(DEFAULT_VISIBILITY));
}
public void testInvalidTagsDeprecatedAndNotVisibleRefConstructorErrorTagsPackage() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(DEFAULT_VISIBILITY));
}
// Test invalid javadoc "error" + tags "enabled" but invalid deprecated or not visible references "disabled" and visibility "private"
public void testInvalidTagsDeprecatedAndNotVisibleRefClassErrorTagsPrivate() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(PRIVATE_VISIBILITY));
}
public void testInvalidTagsDeprecatedAndNotVisibleRefFieldErrorTagsPrivate() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(PRIVATE_VISIBILITY));
}
public void testInvalidTagsDeprecatedAndNotVisibleRefMethodErrorTagsPrivate() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PRIVATE_VISIBILITY));
}
public void testInvalidTagsDeprecatedAndNotVisibleRefConstructorErrorTagsPrivate() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PRIVATE_VISIBILITY));
}
/*
* Tests for 'missing javadoc tags' options
*/
// Test default missing javadoc tags (means "ignore" with visibility "public" and overriding="enabled")
public void testMissingTagsDefaults() {
runConformTest(MISSING_TAGS);
}
// Test missing javadoc tags "error" + "public" visibility + "enabled" overriding
public void testMissingTagsErrorPublicOverriding() {
reportMissingJavadocTags = CompilerOptions.ERROR;
reportMissingJavadocTagsVisibility = CompilerOptions.PUBLIC;
reportMissingJavadocTagsOverriding = CompilerOptions.ENABLED;
runNegativeTest(MISSING_TAGS, resultForMissingTags(PUBLIC_VISIBILITY));
}
// Test missing javadoc tags "error" + "public" visibility + "disabled" overriding
public void testMissingTagsErrorPublic() {
reportMissingJavadocTags = CompilerOptions.ERROR;
reportMissingJavadocTagsVisibility = CompilerOptions.PUBLIC;
reportMissingJavadocTagsOverriding = CompilerOptions.DISABLED;
runNegativeTest(MISSING_TAGS, resultForMissingTags(PUBLIC_VISIBILITY));
}
// Test missing javadoc tags "error" + "protected" visibility + "enabled" overriding
public void testMissingTagsErrorProtectedOverriding() {
reportMissingJavadocTags = CompilerOptions.ERROR;
reportMissingJavadocTagsVisibility = CompilerOptions.PROTECTED;
reportMissingJavadocTagsOverriding = CompilerOptions.ENABLED;
runNegativeTest(MISSING_TAGS, resultForMissingTags(PROTECTED_VISIBILITY));
}
// Test missing javadoc tags "error" + "protected" visibility + "disabled" overriding
public void testMissingTagsErrorProtected() {
reportMissingJavadocTags = CompilerOptions.ERROR;
reportMissingJavadocTagsVisibility = CompilerOptions.PROTECTED;
reportMissingJavadocTagsOverriding = CompilerOptions.DISABLED;
runNegativeTest(MISSING_TAGS, resultForMissingTags(PROTECTED_VISIBILITY));
}
// Test missing javadoc tags "error" + "default" visibility + "enabled" overriding
public void testMissingTagsErrorPackageOverriding() {
reportMissingJavadocTags = CompilerOptions.ERROR;
reportMissingJavadocTagsVisibility = CompilerOptions.DEFAULT;
reportMissingJavadocTagsOverriding = CompilerOptions.ENABLED;
runNegativeTest(MISSING_TAGS, resultForMissingTags(DEFAULT_VISIBILITY));
}
// Test missing javadoc tags "error" + "default" visibility + "disabled" overriding
public void testMissingTagsErrorPackage() {
reportMissingJavadocTags = CompilerOptions.ERROR;
reportMissingJavadocTagsVisibility = CompilerOptions.DEFAULT;
reportMissingJavadocTagsOverriding = CompilerOptions.DISABLED;
runNegativeTest(MISSING_TAGS, resultForMissingTags(DEFAULT_VISIBILITY));
}
// Test missing javadoc tags "error" + "private" visibility + "enabled" overriding
public void testMissingTagsErrorPrivateOverriding() {
reportMissingJavadocTags = CompilerOptions.ERROR;
reportMissingJavadocTagsVisibility = CompilerOptions.PRIVATE;
reportMissingJavadocTagsOverriding = CompilerOptions.ENABLED;
runNegativeTest(MISSING_TAGS, resultForMissingTags(PRIVATE_VISIBILITY));
}
// Test missing javadoc tags "error" + "private" visibility + "disabled" overriding
public void testMissingTagsErrorPrivate() {
reportMissingJavadocTags = CompilerOptions.ERROR;
reportMissingJavadocTagsVisibility = CompilerOptions.PRIVATE;
reportMissingJavadocTagsOverriding = CompilerOptions.DISABLED;
runNegativeTest(MISSING_TAGS, resultForMissingTags(PRIVATE_VISIBILITY));
}
/*
* Tests for 'missing javadoc comments' options
*/
// Test default missing javadoc comments (means "ignore" with visibility "public" and overriding="enabled")
public void testMissingCommentsDefaults() {
runConformTest(MISSING_COMMENTS);
}
// Test missing javadoc comments "error" + "public" visibility + "enabled" overriding
public void testMissingCommentsErrorPublicOverriding() {
reportMissingJavadocComments = CompilerOptions.ERROR;
reportMissingJavadocCommentsVisibility = CompilerOptions.PUBLIC;
reportMissingJavadocCommentsOverriding = CompilerOptions.ENABLED;
runNegativeTest(MISSING_COMMENTS, resultForMissingComments(PUBLIC_VISIBILITY));
}
// Test missing javadoc comments "error" + "public" visibility + "disabled" overriding
public void testMissingCommentsErrorPublic() {
reportMissingJavadocComments = CompilerOptions.ERROR;
reportMissingJavadocCommentsVisibility = CompilerOptions.PUBLIC;
reportMissingJavadocCommentsOverriding = CompilerOptions.DISABLED;
runNegativeTest(MISSING_COMMENTS, resultForMissingComments(PUBLIC_VISIBILITY));
}
// Test missing javadoc comments "error" + "protected" visibility + "enabled" overriding
public void testMissingCommentsErrorProtectedOverriding() {
reportMissingJavadocComments = CompilerOptions.ERROR;
reportMissingJavadocCommentsVisibility = CompilerOptions.PROTECTED;
reportMissingJavadocCommentsOverriding = CompilerOptions.ENABLED;
runNegativeTest(MISSING_COMMENTS, resultForMissingComments(PROTECTED_VISIBILITY));
}
// Test missing javadoc comments "error" + "protected" visibility + "disabled" overriding
public void testMissingCommentsErrorProtected() {
reportMissingJavadocComments = CompilerOptions.ERROR;
reportMissingJavadocCommentsVisibility = CompilerOptions.PROTECTED;
reportMissingJavadocCommentsOverriding = CompilerOptions.DISABLED;
runNegativeTest(MISSING_COMMENTS, resultForMissingComments(PROTECTED_VISIBILITY));
}
// Test missing javadoc comments "error" + "default" visibility + "enabled" overriding
public void testMissingCommentsErrorPackageOverriding() {
reportMissingJavadocComments = CompilerOptions.ERROR;
reportMissingJavadocCommentsVisibility = CompilerOptions.DEFAULT;
reportMissingJavadocCommentsOverriding = CompilerOptions.ENABLED;
runNegativeTest(MISSING_COMMENTS, resultForMissingComments(DEFAULT_VISIBILITY));
}
// Test missing javadoc comments "error" + "default" visibility + "disabled" overriding
public void testMissingCommentsErrorPackage() {
reportMissingJavadocComments = CompilerOptions.ERROR;
reportMissingJavadocCommentsVisibility = CompilerOptions.DEFAULT;
reportMissingJavadocCommentsOverriding = CompilerOptions.DISABLED;
runNegativeTest(MISSING_COMMENTS, resultForMissingComments(DEFAULT_VISIBILITY));
}
// Test missing javadoc comments "error" + "private" visibility + "enabled" overriding
public void testMissingCommentsErrorPrivateOverriding() {
reportMissingJavadocComments = CompilerOptions.ERROR;
reportMissingJavadocCommentsVisibility = CompilerOptions.PRIVATE;
reportMissingJavadocCommentsOverriding = CompilerOptions.ENABLED;
runNegativeTest(MISSING_COMMENTS, resultForMissingComments(PRIVATE_VISIBILITY));
}
// Test missing javadoc comments "error" + "private" visibility + "disabled" overriding
public void testMissingCommentsErrorPrivate() {
reportMissingJavadocComments = CompilerOptions.ERROR;
reportMissingJavadocCommentsVisibility = CompilerOptions.PRIVATE;
reportMissingJavadocCommentsOverriding = CompilerOptions.DISABLED;
runNegativeTest(MISSING_COMMENTS, resultForMissingComments(PRIVATE_VISIBILITY));
}
/*
* Crossed tests
*/
public void testInvalidTagsClassWithMissingTagsOption() {
reportMissingJavadocTags = CompilerOptions.ERROR;
reportMissingJavadocTagsVisibility = CompilerOptions.PRIVATE;
runConformTest(CLASSES_INVALID_COMMENT);
}
public void testInvalidTagsFieldWithMissingTagsOption() {
reportMissingJavadocTags = CompilerOptions.ERROR;
reportMissingJavadocTagsVisibility = CompilerOptions.PRIVATE;
runConformTest(FIELDS_INVALID_COMMENT);
}
public void testInvalidTagsMethodWithMissingTagsOption() {
reportMissingJavadocTags = CompilerOptions.ERROR;
reportMissingJavadocTagsVisibility = CompilerOptions.PRIVATE;
runConformTest(METHODS_INVALID_COMMENT);
}
public void testInvalidTagsConstructorWithMissingTagsOption() {
reportMissingJavadocTags = CompilerOptions.ERROR;
reportMissingJavadocTagsVisibility = CompilerOptions.PRIVATE;
runConformTest(CONSTRUCTORS_INVALID_COMMENT);
}
public void testMissingTagsWithInvalidTagsOption() {
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ENABLED;
reportInvalidJavadocTagsVisibility = CompilerOptions.PRIVATE;
runConformTest(MISSING_TAGS);
}
/**
* Test fix for bug 52264.
* @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=52264">52264</a>
*/
// Test invalid javadoc "error" with javadoc comment support disabled
public void testInvalidTagsJavadocSupportDisabled() {
this.docCommentSupport = CompilerOptions.DISABLED;
reportInvalidJavadoc = CompilerOptions.ERROR;
reportInvalidJavadocTags = CompilerOptions.ERROR;
runConformTest(CLASSES_INVALID_COMMENT);
runConformTest(FIELDS_INVALID_COMMENT);
runConformTest(METHODS_INVALID_COMMENT);
runConformTest(CONSTRUCTORS_INVALID_COMMENT);
}
// Test missing javadoc comments "error" with javadoc comment support disabled
public void testMissingCommentsJavadocSupportDisabled() {
this.docCommentSupport = CompilerOptions.DISABLED;
reportMissingJavadocComments = CompilerOptions.ERROR;
runConformReferenceTest(MISSING_COMMENTS);
}
// Test missing javadoc tags "error" with javadoc comment support disabled
public void testMissingTagsJavadocSupportDisabled() {
this.docCommentSupport = CompilerOptions.DISABLED;
reportMissingJavadocTags = CompilerOptions.ERROR;
runConformReferenceTest(MISSING_TAGS);
}
}