/* * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ /* * @test * @bug 8154119 8154262 8156077 8157987 8154261 8154817 8135291 8155995 8162363 8168766 * @summary Test modules support in javadoc. * @author bpatel * @library ../lib * @modules jdk.javadoc/jdk.javadoc.internal.tool * @build JavadocTester * @run main TestModules */ public class TestModules extends JavadocTester { public static void main(String... args) throws Exception { TestModules tester = new TestModules(); tester.runTests(); } /** * Test generated module pages for HTML 4. */ @Test void testHtml4() { javadoc("-d", "out", "-use", "--module-source-path", testSrc, "--add-modules", "moduleA,moduleB", "testpkgmdlA", "testpkgmdlB"); checkExit(Exit.OK); checkDescription(true); checkNoDescription(false); checkOverviewSummaryModules(); checkModuleLink(); checkModuleClickThroughLinks(); checkModuleClickThrough(true); checkModuleFilesAndLinks(true); checkModulesInSearch(true); } /** * Test generated module pages for HTML 5. */ @Test void testHtml5() { javadoc("-d", "out-html5", "-html5", "-use", "--module-source-path", testSrc, "--add-modules", "moduleA,moduleB", "testpkgmdlA", "testpkgmdlB"); checkExit(Exit.OK); checkHtml5Description(true); checkHtml5NoDescription(false); checkHtml5OverviewSummaryModules(); checkModuleLink(); checkModuleClickThroughLinks(); checkModuleClickThrough(true); checkModuleFilesAndLinks(true); checkModulesInSearch(true); } /** * Test generated module pages for HTML 4 with -nocomment option. */ @Test void testHtml4NoComment() { javadoc("-d", "out-nocomment", "-nocomment", "-use", "--module-source-path", testSrc, "--add-modules", "moduleA,moduleB", "testpkgmdlA", "testpkgmdlB"); checkExit(Exit.OK); checkDescription(false); checkNoDescription(true); checkModuleLink(); checkModuleFilesAndLinks(true); } /** * Test generated module pages for HTML 5 with -nocomment option. */ @Test void testHtml5NoComment() { javadoc("-d", "out-html5-nocomment", "-nocomment", "-html5", "-use", "--module-source-path", testSrc, "--add-modules", "moduleA,moduleB", "testpkgmdlA", "testpkgmdlB"); checkExit(Exit.OK); checkHtml5Description(false); checkHtml5NoDescription(true); checkModuleLink(); checkModuleFilesAndLinks(true); } /** * Test generated pages, in an unnamed module, for HTML 4. */ @Test void testHtml4UnnamedModule() { javadoc("-d", "out-nomodule", "-use", "-sourcepath", testSrc, "testpkgnomodule", "testpkgnomodule1"); checkExit(Exit.OK); checkOverviewSummaryPackages(); checkModuleClickThrough(false); checkModuleFilesAndLinks(false); checkModulesInSearch(false); } /** * Test generated pages, in an unnamed module, for HTML 5. */ @Test void testHtml5UnnamedModule() { javadoc("-d", "out-html5-nomodule", "-html5", "-use", "-sourcepath", testSrc, "testpkgnomodule", "testpkgnomodule1"); checkExit(Exit.OK); checkHtml5OverviewSummaryPackages(); checkModuleFilesAndLinks(false); checkModulesInSearch(false); } /** * Test generated module pages with javadoc tags. */ @Test void testJDTagsInModules() { javadoc("-d", "out-mdltags", "-author", "-version", "-tag", "regular:a:Regular Tag:", "-tag", "moduletag:s:Module Tag:", "--module-source-path", testSrc, "--add-modules", "moduletags,moduleB", "testpkgmdltags", "testpkgmdlB"); checkExit(Exit.OK); checkModuleTags(); } /** * Test generated module summary page. */ @Test void testModuleSummary() { javadoc("-d", "out-moduleSummary", "-use", "--module-source-path", testSrc, "--add-modules", "moduleA,moduleB", "testpkgmdlA", "testpkgmdlB", "moduleB/testpkg2mdlB"); checkExit(Exit.OK); checkModuleSummary(); checkNegatedModuleSummary(); } /** * Test generated module pages and pages with link to modules. */ @Test void testModuleFilesAndLinks() { javadoc("-d", "out-modulelinks", "--module-source-path", testSrc, "--add-modules", "moduleA", "testpkgmdlA"); checkExit(Exit.OK); checkModuleFilesAndLinks(true); } /** * Test generated module pages for a deprecated module. */ @Test void testModuleDeprecation() { javadoc("-d", "out-moduledepr", "-tag", "regular:a:Regular Tag:", "-tag", "moduletag:s:Module Tag:", "--module-source-path", testSrc, "--module", "moduleA,moduleB,moduletags", "testpkgmdlA", "testpkgmdlB", "testpkgmdltags"); checkExit(Exit.OK); checkModuleDeprecation(true); } /** * Test annotations on modules. */ @Test void testModuleAnnotation() { javadoc("-d", "out-moduleanno", "--module-source-path", testSrc, "--module", "moduleA,moduleB", "testpkgmdlA", "testpkgmdlB"); checkExit(Exit.OK); checkModuleAnnotation(); } void checkDescription(boolean found) { checkOutput("moduleA-summary.html", found, "\n" + "\n" + "\n" + "\n" + "
This is a test description for the moduleA module. Search " + "phrase search phrase.
"); checkOutput("moduleB-summary.html", found, "\n" + "\n" + "\n" + "\n" + "
This is a test description for the moduleB module. Search " + "word search_word with no description.
"); } void checkNoDescription(boolean found) { checkOutput("moduleA-summary.html", found, "
\n" + "