langtools/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPackageFlag.java
changeset 24399 af1a0220d0fa
parent 24072 e7549dcbc4af
child 30730 d3ce7619db2c
equal deleted inserted replaced
24398:601a611d0aee 24399:af1a0220d0fa
    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>&nbsp;in class&nbsp;<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>&nbsp;in class&nbsp;<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>&nbsp;in class&nbsp;<code>"
    58                  "packagePrivateMethod</a></code>&nbsp;in class&nbsp;<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>&nbsp;in class&nbsp;<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>&nbsp;in class&nbsp;<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 }