22 */ |
22 */ |
23 |
23 |
24 /* |
24 /* |
25 * @test |
25 * @test |
26 * @bug 4634891 8025633 8026567 |
26 * @bug 4634891 8025633 8026567 |
27 * @summary Determine if overriden methods are properly documented when |
27 * @summary Determine if overridden methods are properly documented when |
28 * -protected (default) visibility flag is used. |
28 * -protected (default) visibility flag is used. |
29 * @author jamieh |
29 * @author jamieh |
30 * @library ../lib/ |
30 * @library ../lib |
31 * @build JavadocTester |
31 * @build JavadocTester |
32 * @build TestOverridenPrivateMethodsWithPackageFlag |
|
33 * @run main TestOverridenPrivateMethodsWithPackageFlag |
32 * @run main TestOverridenPrivateMethodsWithPackageFlag |
34 */ |
33 */ |
35 |
34 |
36 public class TestOverridenPrivateMethodsWithPackageFlag extends JavadocTester { |
35 public class TestOverridenPrivateMethodsWithPackageFlag extends JavadocTester { |
37 |
36 |
38 private static final String[][] TEST = { |
37 public static void main(String... args) throws Exception { |
39 //The public method should be overriden |
38 TestOverridenPrivateMethodsWithPackageFlag tester = new TestOverridenPrivateMethodsWithPackageFlag(); |
40 { "pkg1/SubClass.html", |
39 tester.runTests(); |
41 "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n" + |
40 } |
42 "<dd><code><a href=\"../pkg1/BaseClass.html#publicMethod--\">" + |
|
43 "publicMethod</a></code> in class <code>" + |
|
44 "<a href=\"../pkg1/BaseClass.html\" title=\"class in pkg1\">BaseClass</a></code></dd>"}, |
|
45 |
41 |
46 //The public method in different package should be overriden |
42 @Test |
47 { "pkg2/SubClass.html", |
43 void test() { |
48 "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n" + |
44 javadoc("-d", "out", |
49 "<dd><code><a href=\"../pkg1/BaseClass.html#publicMethod--\">" + |
45 "-sourcepath", testSrc, |
50 "publicMethod</a></code> in class <code>" + |
46 "-package", |
51 "<a href=\"../pkg1/BaseClass.html\" title=\"class in pkg1\">BaseClass</a></code></dd>"}, |
47 "pkg1", "pkg2"); |
|
48 checkExit(Exit.OK); |
52 |
49 |
53 //The package private method should be overriden since the base and sub class are in the same |
50 // The public method should be overridden |
54 //package. |
51 checkOutput("pkg1/SubClass.html", true, |
55 { "pkg1/SubClass.html", |
52 "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n" |
56 "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n" + |
53 + "<dd><code><a href=\"../pkg1/BaseClass.html#publicMethod--\">" |
57 "<dd><code><a href=\"../pkg1/BaseClass.html#packagePrivateMethod--\">" + |
54 + "publicMethod</a></code> in class <code>" |
58 "packagePrivateMethod</a></code> in class <code>" + |
55 + "<a href=\"../pkg1/BaseClass.html\" title=\"class in pkg1\">BaseClass</a></code></dd>"); |
59 "<a href=\"../pkg1/BaseClass.html\" title=\"class in pkg1\">BaseClass</a></code></dd>"} |
|
60 }; |
|
61 |
56 |
62 private static final String[][] NEGATED_TEST = { |
57 // The public method in different package should be overridden |
|
58 checkOutput("pkg2/SubClass.html", true, |
|
59 "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n" |
|
60 + "<dd><code><a href=\"../pkg1/BaseClass.html#publicMethod--\">" |
|
61 + "publicMethod</a></code> in class <code>" |
|
62 + "<a href=\"../pkg1/BaseClass.html\" title=\"class in pkg1\">BaseClass</a></code></dd>"); |
63 |
63 |
64 //The private method in should not be overriden |
64 // The package private method should be overridden since the base and sub class are in the same |
65 { "pkg1/SubClass.html", |
65 // package. |
66 "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n" + |
66 checkOutput("pkg1/SubClass.html", true, |
67 "<dd><code><a href=\"../pkg1/BaseClass.html#privateMethod()\">"}, |
67 "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n" |
|
68 + "<dd><code><a href=\"../pkg1/BaseClass.html#packagePrivateMethod--\">" |
|
69 + "packagePrivateMethod</a></code> in class <code>" |
|
70 + "<a href=\"../pkg1/BaseClass.html\" title=\"class in pkg1\">BaseClass</a></code></dd>"); |
68 |
71 |
69 //The private method in different package should not be overriden |
72 // The private method in should not be overridden |
70 { "pkg2/SubClass.html", |
73 checkOutput("pkg1/SubClass.html", false, |
71 "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n" + |
74 "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n" |
72 "<dd><code><a href=\"../pkg1/BaseClass.html#privateMethod()\">"}, |
75 + "<dd><code><a href=\"../pkg1/BaseClass.html#privateMethod()\">"); |
73 |
76 |
74 //The package private method should not be overriden since the base and sub class are in |
77 // The private method in different package should not be overridden |
75 //different packages. |
78 checkOutput("pkg2/SubClass.html", false, |
76 { "pkg2/SubClass.html", |
79 "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n" |
77 "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n" + |
80 + "<dd><code><a href=\"../pkg1/BaseClass.html#privateMethod()\">"); |
78 "<dd><code><a href=\"../pkg1/BaseClass.html#packagePrivateMethod()\">"}, |
|
79 }; |
|
80 |
81 |
81 private static final String[] ARGS = |
82 // The package private method should not be overridden since the base and sub class are in |
82 new String[] { |
83 // different packages. |
83 "-d", OUTPUT_DIR, "-sourcepath", SRC_DIR, "-package", "pkg1", "pkg2"}; |
84 checkOutput("pkg2/SubClass.html", false, |
84 |
85 "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n" |
85 /** |
86 + "<dd><code><a href=\"../pkg1/BaseClass.html#packagePrivateMethod()\">"); |
86 * The entry point of the test. |
|
87 * @param args the array of command line arguments. |
|
88 */ |
|
89 public static void main(String[] args) { |
|
90 TestOverridenPrivateMethodsWithPackageFlag tester = new TestOverridenPrivateMethodsWithPackageFlag(); |
|
91 tester.run(ARGS, TEST, NEGATED_TEST); |
|
92 tester.printSummary(); |
|
93 } |
87 } |
94 } |
88 } |