< prev index next >

test/langtools/jdk/javadoc/doclet/testModules/TestModulePackages.java

Print this page

        

@@ -121,10 +121,57 @@
         checkPackageRow("m", "p", "i0", null, null, "&nbsp;");
         checkPackageRow("m", "q", "i1", null, null, "&nbsp;");
     }
 
     @Test
+    public void exportSameName(Path base) throws Exception {
+        Path src = base.resolve("src");
+        new ModuleBuilder(tb, "m")
+                .comment("exports same qualified package and types as module o")
+                .exports("p")
+                .classes("package p; public class C { }")
+                .write(src);
+        new ModuleBuilder(tb, "o")
+                .comment("exports same qualified package and types as module m")
+                .exports("p")
+                .classes("package p; public class C { }")
+                .write(src);
+
+        javadoc("-d", base.resolve("out").toString(),
+                "-quiet",
+                "--module-source-path", src.toString(),
+                "--module", "m,o");
+
+        checkExit(Exit.ERROR);
+        checkOutput(Output.OUT, true, "error: the unnamed module reads package p from both o and m");
+        checkCaption("m", TabKind.EXPORTS);
+        checkCaption("o", TabKind.EXPORTS);
+        checkTableHead("m");
+        checkTableHead("o");
+        checkPackageRow("m", "p", "i0", null, null, "&nbsp;");
+        checkPackageRow("o", "p", "i0", null, null, "&nbsp;");
+        checkOutput("m/p/package-summary.html", true,
+                """
+                    <div class="sub-title"><span class="module-label-in-package">Module</span>&nbsp;<a href="../module-summary.html">m</a></div>
+                    """);
+        checkOutput("o/p/package-summary.html", true,
+                """
+                    <div class="sub-title"><span class="module-label-in-package">Module</span>&nbsp;<a href="../module-summary.html">o</a></div>
+                    """);
+        checkOutput("m/p/C.html", true,
+                """
+                    <div class="sub-title"><span class="module-label-in-type">Module</span>&nbsp;<a href="../module-summary.html">m</a></div>
+                    <div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">p</a></div>             
+                    """);
+        checkOutput("o/p/C.html", true,
+                """
+                    <div class="sub-title"><span class="module-label-in-type">Module</span>&nbsp;<a href="../module-summary.html">o</a></div>
+                    <div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">p</a></div>             
+                    """);
+    }
+
+    @Test
     public void exportSomeQualified(Path base) throws Exception {
         Path src = base.resolve("src");
         new ModuleBuilder(tb, "m")
                 .comment("exports multiple packages, some qualified")
                 .exports("p")
< prev index next >