test/langtools/jdk/javadoc/doclet/testOverriddenMethods/TestOverriddenPrivateMethodsWithPackageFlag.java
changeset 49139 771616d26ca1
parent 48654 36f58bd6269f
child 53097 2e82ca64b25d
--- a/test/langtools/jdk/javadoc/doclet/testOverriddenMethods/TestOverriddenPrivateMethodsWithPackageFlag.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testOverriddenMethods/TestOverriddenPrivateMethodsWithPackageFlag.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 4634891 8025633 8026567
+ * @bug 4634891 8025633 8026567 8182765
  * @summary Determine if overridden methods are properly documented when
  * -protected (default) visibility flag is used.
  * @author jamieh
@@ -51,6 +51,54 @@
         // The public method should be overridden
         checkOutput("pkg1/SubClass.html", true,
                 "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
+                + "<dd><code><a href=\"BaseClass.html#publicMethod()\">"
+                + "publicMethod</a></code>&nbsp;in class&nbsp;<code>"
+                + "<a href=\"BaseClass.html\" title=\"class in pkg1\">BaseClass</a></code></dd>");
+
+        // The public method in different package should be overridden
+        checkOutput("pkg2/SubClass.html", true,
+                "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
+                + "<dd><code><a href=\"../pkg1/BaseClass.html#publicMethod()\">"
+                + "publicMethod</a></code>&nbsp;in class&nbsp;<code>"
+                + "<a href=\"../pkg1/BaseClass.html\" title=\"class in pkg1\">BaseClass</a></code></dd>");
+
+        // The package private method should be overridden since the base and sub class are in the same
+        // package.
+        checkOutput("pkg1/SubClass.html", true,
+                "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
+                + "<dd><code><a href=\"BaseClass.html#packagePrivateMethod()\">"
+                + "packagePrivateMethod</a></code>&nbsp;in class&nbsp;<code>"
+                + "<a href=\"BaseClass.html\" title=\"class in pkg1\">BaseClass</a></code></dd>");
+
+        // The private method in should not be overridden
+        checkOutput("pkg1/SubClass.html", false,
+                "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
+                + "<dd><code><a href=\"BaseClass.html#privateMethod--\">");
+
+        // The private method in different package should not be overridden
+        checkOutput("pkg2/SubClass.html", false,
+                "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
+                + "<dd><code><a href=\"../pkg1/BaseClass.html#privateMethod--\">");
+
+        // The package private method should not be overridden since the base and sub class are in
+        // different packages.
+        checkOutput("pkg2/SubClass.html", false,
+                "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
+                + "<dd><code><a href=\"../pkg1/BaseClass.html#packagePrivateMethod--\">");
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-package",
+                "pkg1", "pkg2");
+        checkExit(Exit.OK);
+
+        // The public method should be overridden
+        checkOutput("pkg1/SubClass.html", true,
+                "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
                 + "<dd><code><a href=\"BaseClass.html#publicMethod--\">"
                 + "publicMethod</a></code>&nbsp;in class&nbsp;<code>"
                 + "<a href=\"BaseClass.html\" title=\"class in pkg1\">BaseClass</a></code></dd>");