test/langtools/jdk/javadoc/doclet/testModules/TestIndirectExportsOpens.java
changeset 49139 771616d26ca1
parent 48759 ffa68af7da87
child 52616 1a395165c09b
--- a/test/langtools/jdk/javadoc/doclet/testModules/TestIndirectExportsOpens.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testModules/TestIndirectExportsOpens.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8178339
+ * @bug 8178339 8182765
  * @summary Tests indirect exports and opens in the module summary page
  * @modules jdk.javadoc/jdk.javadoc.internal.api
  *          jdk.javadoc/jdk.javadoc.internal.tool
@@ -72,6 +72,16 @@
         checkExit(Exit.OK);
         verifyIndirectExports(false);
         verifyIndirectOpens(false);
+
+        javadoc("-d", base.resolve("out-api-html4").toString(),
+                "-html4",
+                "-quiet",
+                "--module-source-path", base.toString(),
+                "--expand-requires", "transitive",
+                "--module", "a");
+        checkExit(Exit.OK);
+        verifyIndirectExports_html4(false);
+        verifyIndirectOpens_html4(false);
     }
 
     @Test
@@ -98,6 +108,16 @@
         checkExit(Exit.OK);
         verifyIndirectExports(true);
         verifyIndirectOpens(true);
+
+        javadoc("-d", base.resolve("out-api-html4").toString(),
+                "-html4",
+                "-quiet",
+                "--module-source-path", base.toString(),
+                "--expand-requires", "transitive",
+                "--module", "a");
+        checkExit(Exit.OK);
+        verifyIndirectExports_html4(true);
+        verifyIndirectOpens_html4(true);
     }
 
     @Test
@@ -125,6 +145,17 @@
         checkExit(Exit.OK);
         verifyIndirectExports(false);
         verifyIndirectOpens(false);
+
+        javadoc("-d", base.resolve("out-api-html4").toString(),
+                "-html4",
+                "-quiet",
+                "--module-source-path", base.toString(),
+                "--expand-requires", "transitive",
+                "--module", "a");
+
+        checkExit(Exit.OK);
+        verifyIndirectExports_html4(false);
+        verifyIndirectOpens_html4(false);
     }
 
     @Test
@@ -157,13 +188,13 @@
         // could be listed in the indirects section, so just
         // check for minimal expected strings.
         checkOutput("a/module-summary.html", true,
-                "Indirect Exports table",
+                "Indirect Exports",
                 "<th class=\"colFirst\" scope=\"row\"><a href=\"../m/module-summary.html\">m</a></th>\n"
                 + "<td class=\"colLast\"><a href=\"../m/exportsto/package-summary.html\">exportsto</a></td>\n"
                 + "</tr>\n");
 
         checkOutput("a/module-summary.html", true,
-                "Indirect Opens table",
+                "Indirect Opens",
                 "<th class=\"colFirst\" scope=\"row\"><a href=\"../m/module-summary.html\">m</a></th>\n"
                 + "<td class=\"colLast\">opensto</td>\n"
                 + "</tr>\n");
@@ -188,6 +219,40 @@
         }
 
         checkOutput("a/module-summary.html", present,
+                "<table class=\"packagesSummary\">\n"
+                + "<caption><span>" + typeString + "</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
+                + "<tr>\n"
+                + "<th class=\"colFirst\" scope=\"col\">From</th>\n"
+                + "<th class=\"colLast\" scope=\"col\">Packages</th>\n"
+                + "</tr>\n"
+                + "<tbody>\n"
+                + "<tr class=\"altColor\">\n"
+                + "<th class=\"colFirst\" scope=\"row\"><a href=\"../m/module-summary.html\">m</a></th>\n"
+                + "<td class=\"colLast\"><a href=\"../m/pm/package-summary.html\">pm</a></td>\n"
+                + "</tr>\n"
+                + "</tbody>\n"
+                + "</table>\n");
+    }
+
+    void verifyIndirectExports_html4(boolean present) {
+        verifyIndirects_html4(present, false);
+    }
+
+    void verifyIndirectOpens_html4(boolean present) {
+        verifyIndirects_html4(present, true);
+    }
+
+    void verifyIndirects_html4(boolean present, boolean opens) {
+
+        String typeString = opens ? "Indirect Opens" : "Indirect Exports";
+
+        // Avoid false positives, just check for primary string absence.
+        if (!present) {
+            checkOutput("a/module-summary.html", false, typeString);
+            return;
+        }
+
+        checkOutput("a/module-summary.html", present,
                 "<table class=\"packagesSummary\" summary=\"" + typeString + " table, listing modules, and packages\">\n"
                 + "<caption><span>" + typeString + "</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
                 + "<tr>\n"
@@ -202,6 +267,4 @@
                 + "</tbody>\n"
                 + "</table>\n");
     }
-
 }
-