1407160786
Reviewed-by: jjg
1451 lines
73 KiB
Java
1451 lines
73 KiB
Java
/*
|
|
* Copyright (c) 2016, 2024, 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 8168688 8162674 8160196 8175799 8174974 8176778 8177562 8175218
|
|
* 8175823 8166306 8178043 8181622 8183511 8169819 8074407 8183037 8191464
|
|
* 8164407 8192007 8182765 8196200 8196201 8196202 8196202 8205593 8202462
|
|
* 8184205 8219060 8223378 8234746 8239804 8239816 8253117 8245058 8261976
|
|
* @summary Test modules support in javadoc.
|
|
* @library ../../lib
|
|
* @modules jdk.javadoc/jdk.javadoc.internal.tool
|
|
* @build javadoc.tester.*
|
|
* @run main TestModules
|
|
*/
|
|
import javadoc.tester.JavadocTester;
|
|
|
|
public class TestModules extends JavadocTester {
|
|
|
|
public static void main(String... args) throws Exception {
|
|
var tester = new TestModules();
|
|
tester.runTests();
|
|
}
|
|
|
|
/**
|
|
* Test generated module pages for HTML 5.
|
|
*/
|
|
@Test
|
|
public void testHtml5() {
|
|
javadoc("-d", "out-html5",
|
|
"-use",
|
|
"-Xdoclint:none",
|
|
"-overview", testSrc("overview.html"),
|
|
"--module-source-path", testSrc,
|
|
"--module", "moduleA,moduleB",
|
|
"testpkgmdlA", "testpkgmdlB");
|
|
checkExit(Exit.OK);
|
|
checkHtml5Description(true);
|
|
checkHtml5NoDescription(false);
|
|
checkHtml5OverviewSummaryModules();
|
|
checkModuleLink();
|
|
checkModuleFilesAndLinks(true);
|
|
checkModulesInSearch(true);
|
|
checkAllPkgsAllClasses(true);
|
|
}
|
|
|
|
/**
|
|
* Test generated module pages for HTML 5 with -nocomment option.
|
|
*/
|
|
@Test
|
|
public void testHtml5NoComment() {
|
|
javadoc("-d", "out-html5-nocomment",
|
|
"-nocomment",
|
|
"-use",
|
|
"-Xdoclint:none",
|
|
"--no-platform-links",
|
|
"-overview", testSrc("overview.html"),
|
|
"--module-source-path", testSrc,
|
|
"--module", "moduleA,moduleB",
|
|
"testpkgmdlA", "testpkgmdlB");
|
|
checkExit(Exit.OK);
|
|
checkHtml5Description(false);
|
|
checkHtml5NoDescription(true);
|
|
checkModuleLink();
|
|
checkModuleFilesAndLinks(true);
|
|
}
|
|
|
|
/**
|
|
* Test generated pages, in an unnamed module, for HTML 5.
|
|
*/
|
|
@Test
|
|
public void testHtml5UnnamedModule() {
|
|
javadoc("-d", "out-html5-nomodule",
|
|
"-use",
|
|
"-overview", testSrc("overview.html"),
|
|
"-sourcepath", testSrc,
|
|
"testpkgnomodule", "testpkgnomodule1");
|
|
checkExit(Exit.OK);
|
|
checkHtml5OverviewSummaryPackages();
|
|
checkModuleFilesAndLinks(false);
|
|
checkModulesInSearch(false);
|
|
}
|
|
|
|
/**
|
|
* Test generated module pages with javadoc tags.
|
|
*/
|
|
@Test
|
|
public void testJDTagsInModules() {
|
|
javadoc("-d", "out-mdltags",
|
|
"-author",
|
|
"-version",
|
|
"-Xdoclint:none",
|
|
"-tag", "regular:a:Regular Tag:",
|
|
"-tag", "moduletag:s:Module Tag:",
|
|
"--module-source-path", testSrc,
|
|
"--module", "moduletags,moduleB",
|
|
"testpkgmdltags", "testpkgmdlB");
|
|
checkExit(Exit.OK);
|
|
checkModuleTags();
|
|
}
|
|
|
|
/**
|
|
* Test generated module summary page.
|
|
*/
|
|
@Test
|
|
public void testModuleSummary() {
|
|
javadoc("-d", "out-moduleSummary",
|
|
"-use",
|
|
"-Xdoclint:none",
|
|
"--module-source-path", testSrc,
|
|
"--module", "moduleA,moduleB",
|
|
"testpkgmdlA", "testpkgmdlB", "moduleB/testpkg2mdlB");
|
|
checkExit(Exit.OK);
|
|
checkModuleSummary();
|
|
checkNegatedModuleSummary();
|
|
}
|
|
|
|
/**
|
|
* Test generated module summary page of an aggregating module.
|
|
*/
|
|
@Test
|
|
public void testAggregatorModuleSummary() {
|
|
javadoc("-d", "out-aggregatorModuleSummary",
|
|
"-use",
|
|
"--module-source-path", testSrc,
|
|
"--expand-requires", "transitive",
|
|
"--module", "moduleT");
|
|
checkExit(Exit.OK);
|
|
checkAggregatorModuleSummary();
|
|
}
|
|
|
|
/**
|
|
* Test generated module pages and pages with link to modules.
|
|
*/
|
|
@Test
|
|
public void testModuleFilesAndLinks() {
|
|
javadoc("-d", "out-modulelinks",
|
|
"-Xdoclint:none",
|
|
"--module-source-path", testSrc,
|
|
"--module", "moduleA,moduleB",
|
|
"testpkgmdlA", "testpkgmdlB");
|
|
checkExit(Exit.OK);
|
|
checkModuleFilesAndLinks(true);
|
|
}
|
|
|
|
/**
|
|
* Test generated module pages for a deprecated module.
|
|
*/
|
|
@Test
|
|
public void testModuleDeprecation() {
|
|
javadoc("-d", "out-moduledepr",
|
|
"-Xdoclint:none",
|
|
"--no-platform-links",
|
|
"-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
|
|
public void testModuleAnnotation() {
|
|
javadoc("-d", "out-moduleanno",
|
|
"-Xdoclint:none",
|
|
"--module-source-path", testSrc,
|
|
"--module", "moduleA,moduleB",
|
|
"testpkgmdlA", "testpkgmdlB");
|
|
checkExit(Exit.OK);
|
|
checkModuleAnnotation();
|
|
}
|
|
|
|
/**
|
|
* Test module summary pages in "api" mode.
|
|
*/
|
|
@Test
|
|
public void testApiMode() {
|
|
javadoc("-d", "out-api",
|
|
"-use",
|
|
"--show-module-contents=api",
|
|
"-author",
|
|
"-version",
|
|
"-Xdoclint:none",
|
|
"-tag", "regular:a:Regular Tag:",
|
|
"-tag", "moduletag:s:Module Tag:",
|
|
"--module-source-path", testSrc,
|
|
"--module", "moduleA,moduleB,moduleC,moduletags",
|
|
"testpkgmdlA", "moduleA/concealedpkgmdlA", "testpkgmdlB", "testpkg2mdlB", "testpkgmdlC", "testpkgmdltags");
|
|
checkExit(Exit.OK);
|
|
checkModuleModeCommon();
|
|
checkModuleModeApi(true);
|
|
checkModuleModeAll(false);
|
|
}
|
|
|
|
/**
|
|
* Test module summary pages in "all" mode.
|
|
*/
|
|
@Test
|
|
public void testAllMode() {
|
|
javadoc("-d", "out-all",
|
|
"-use",
|
|
"--show-module-contents=all",
|
|
"-author",
|
|
"-version",
|
|
"-Xdoclint:none",
|
|
"-tag", "regular:a:Regular Tag:",
|
|
"-tag", "moduletag:s:Module Tag:",
|
|
"--module-source-path", testSrc,
|
|
"--module", "moduleA,moduleB,moduleC,moduletags",
|
|
"testpkgmdlA", "moduleA/concealedpkgmdlA", "testpkgmdlB", "testpkg2mdlB", "testpkgmdlC", "testpkgmdltags");
|
|
checkExit(Exit.OK);
|
|
checkModuleModeCommon();
|
|
checkModuleModeApi(false);
|
|
checkModuleModeAll(true);
|
|
}
|
|
|
|
/**
|
|
* Test generated module summary page of a module with no exported package.
|
|
*/
|
|
@Test
|
|
public void testModuleSummaryNoExportedPkgAll() {
|
|
javadoc("-d", "out-ModuleSummaryNoExportedPkgAll",
|
|
"-use",
|
|
"--show-module-contents=all",
|
|
"-sourcepath", testSrc + "/moduleNoExport",
|
|
"--module", "moduleNoExport",
|
|
"testpkgmdlNoExport");
|
|
checkExit(Exit.OK);
|
|
checkModuleSummaryNoExported(true);
|
|
}
|
|
|
|
/**
|
|
* Test generated module summary page of a module with no exported package.
|
|
*/
|
|
@Test
|
|
public void testModuleSummaryNoExportedPkgApi() {
|
|
javadoc("-d", "out-ModuleSummaryNoExportedPkgApi",
|
|
"-use",
|
|
"-sourcepath", testSrc + "/moduleNoExport",
|
|
"--module", "moduleNoExport",
|
|
"testpkgmdlNoExport");
|
|
checkExit(Exit.OK);
|
|
checkModuleSummaryNoExported(false);
|
|
}
|
|
|
|
/**
|
|
* Test generated module pages for javadoc run for a single module having a single package.
|
|
*/
|
|
@Test
|
|
public void testSingleModuleSinglePkg() {
|
|
javadoc("-d", "out-singlemod",
|
|
"--module-source-path", testSrc,
|
|
"--module", "moduleC",
|
|
"testpkgmdlC");
|
|
checkExit(Exit.OK);
|
|
}
|
|
|
|
/**
|
|
* Test generated module pages for javadoc run for a single module having multiple packages.
|
|
*/
|
|
@Test
|
|
public void testSingleModuleMultiplePkg() {
|
|
javadoc("-d", "out-singlemodmultiplepkg",
|
|
"--show-module-contents=all",
|
|
"-Xdoclint:none",
|
|
"--module-source-path", testSrc,
|
|
"--add-modules", "moduleC",
|
|
"--module", "moduleB",
|
|
"testpkg2mdlB", "testpkgmdlB");
|
|
checkExit(Exit.OK);
|
|
}
|
|
|
|
/**
|
|
* Test -group option for modules. The overview-summary.html page should group the modules accordingly.
|
|
*/
|
|
@Test
|
|
public void testGroupOption() {
|
|
javadoc("-d", "out-group",
|
|
"--show-module-contents=all",
|
|
"-Xdoclint:none",
|
|
"-tag", "regular:a:Regular Tag:",
|
|
"-tag", "moduletag:s:Module Tag:",
|
|
"--module-source-path", testSrc,
|
|
"-group", "Module Group A", "moduleA*",
|
|
"-group", "Module Group B & C", "moduleB*:moduleC*",
|
|
"-group", "Java SE Modules", "java*",
|
|
"--module", "moduleA,moduleB,moduleC,moduletags",
|
|
"moduleA/concealedpkgmdlA", "testpkgmdlA", "testpkg2mdlB", "testpkgmdlB", "testpkgmdlC",
|
|
"testpkgmdltags");
|
|
checkExit(Exit.OK);
|
|
checkGroupOption();
|
|
}
|
|
|
|
/**
|
|
* Test -group option for modules and the ordering of module groups.
|
|
* The overview-summary.html page should group the modules accordingly and display the group tabs in
|
|
* the order it was provided on the command-line.
|
|
*/
|
|
@Test
|
|
public void testGroupOptionOrdering() {
|
|
javadoc("-d", "out-groupOrder",
|
|
"--show-module-contents=all",
|
|
"-Xdoclint:none",
|
|
"-tag", "regular:a:Regular Tag:",
|
|
"-tag", "moduletag:s:Module Tag:",
|
|
"--module-source-path", testSrc,
|
|
"-group", "B Group", "moduleB*",
|
|
"-group", "C Group", "moduleC*",
|
|
"-group", "A Group", "moduleA*",
|
|
"-group", "Java SE Modules", "java*",
|
|
"--module", "moduleA,moduleB,moduleC,moduletags",
|
|
"moduleA/concealedpkgmdlA", "testpkgmdlA", "testpkg2mdlB", "testpkgmdlB", "testpkgmdlC",
|
|
"testpkgmdltags");
|
|
checkExit(Exit.OK);
|
|
checkGroupOptionOrdering();
|
|
}
|
|
|
|
/**
|
|
* Test -group option for unnamed modules. The overview-summary.html page should group the packages accordingly.
|
|
*/
|
|
@Test
|
|
public void testUnnamedModuleGroupOption() {
|
|
javadoc("-d", "out-groupnomodule",
|
|
"-use",
|
|
"-Xdoclint:none",
|
|
"-overview", testSrc("overview.html"),
|
|
"-sourcepath", testSrc,
|
|
"-group", "Package Group 0", "testpkgnomodule",
|
|
"-group", "Package Group 1", "testpkgnomodule1",
|
|
"testpkgnomodule", "testpkgnomodule1");
|
|
checkExit(Exit.OK);
|
|
checkUnnamedModuleGroupOption();
|
|
}
|
|
|
|
/**
|
|
* Test -group option for unnamed modules and the ordering of package groups.
|
|
* The overview-summary.html page should group the packages accordingly and display the group tabs in
|
|
* the order it was provided on the command-line.
|
|
*/
|
|
@Test
|
|
public void testGroupOptionPackageOrdering() {
|
|
javadoc("-d", "out-groupPkgOrder",
|
|
"-use",
|
|
"-Xdoclint:none",
|
|
"-overview", testSrc("overview.html"),
|
|
"-sourcepath", testSrc,
|
|
"-group", "Z Group", "testpkgnomodule",
|
|
"-group", "A Group", "testpkgnomodule1",
|
|
"testpkgnomodule", "testpkgnomodule1");
|
|
checkExit(Exit.OK);
|
|
checkGroupOptionPackageOrdering();
|
|
}
|
|
|
|
/**
|
|
* Test -group option for a single module.
|
|
*/
|
|
@Test
|
|
public void testGroupOptionSingleModule() {
|
|
javadoc("-d", "out-groupsinglemodule",
|
|
"-use",
|
|
"-Xdoclint:none",
|
|
"--module-source-path", testSrc,
|
|
"-group", "Module Group B", "moduleB*",
|
|
"--module", "moduleB",
|
|
"testpkg2mdlB", "testpkgmdlB");
|
|
checkExit(Exit.OK);
|
|
checkGroupOptionSingleModule();
|
|
}
|
|
|
|
/**
|
|
* Test -group option for a single module.
|
|
*/
|
|
@Test
|
|
public void testModuleName() {
|
|
javadoc("-d", "out-modulename",
|
|
"-use",
|
|
"-Xdoclint:none",
|
|
"--module-source-path", testSrc,
|
|
"--module", "moduleB,test.moduleFullName",
|
|
"testpkg2mdlB", "testpkgmdlB", "testpkgmdlfullname");
|
|
checkExit(Exit.OK);
|
|
checkModuleName(true);
|
|
}
|
|
|
|
/**
|
|
* Test -linkoffline option.
|
|
*/
|
|
@Test
|
|
public void testLinkOffline() {
|
|
String url = "https://docs.oracle.com/javase/9/docs/api/";
|
|
javadoc("-d", "out-linkoffline",
|
|
"-use",
|
|
"--show-module-contents=all",
|
|
"-Xdoclint:none",
|
|
"--module-source-path", testSrc,
|
|
"--module", "moduleA,moduleB",
|
|
"-linkoffline", url, testSrc + "/jdk",
|
|
"testpkgmdlA", "testpkgmdlB", "testpkg3mdlB");
|
|
checkExit(Exit.OK);
|
|
checkLinkOffline();
|
|
}
|
|
|
|
/**
|
|
* Test -linksource option.
|
|
*/
|
|
@Test
|
|
public void testLinkSource() {
|
|
javadoc("-d", "out-linksource",
|
|
"-use",
|
|
"-linksource",
|
|
"--no-platform-links",
|
|
"-Xdoclint:none",
|
|
"--module-source-path", testSrc,
|
|
"--module", "moduleA,moduleB");
|
|
checkExit(Exit.OK);
|
|
checkLinks();
|
|
checkLinkSource(false);
|
|
}
|
|
|
|
/**
|
|
* Test -linksource option combined with -private.
|
|
*/
|
|
@Test
|
|
public void testLinkSourcePrivate() {
|
|
javadoc("-d", "out-linksource-private",
|
|
"-use",
|
|
"-private",
|
|
"-linksource",
|
|
"--no-platform-links",
|
|
"-Xdoclint:none",
|
|
"--module-source-path", testSrc,
|
|
"--module", "moduleA,moduleB");
|
|
checkExit(Exit.OK);
|
|
checkLinks();
|
|
checkLinkSource(true);
|
|
}
|
|
|
|
void checkDescription(boolean found) {
|
|
checkOutput("moduleA/module-summary.html", found,
|
|
"""
|
|
<!-- ============ MODULE DESCRIPTION =========== -->
|
|
<a name="module-description">
|
|
<!-- -->
|
|
</a>
|
|
<div class="block">This is a test description for the moduleA module with a Sear\
|
|
ch phrase <span id="searchphrase" class="search-tag-result">search phrase</span>\
|
|
.</div>""");
|
|
checkOutput("moduleB/module-summary.html", found,
|
|
"""
|
|
<!-- ============ MODULE DESCRIPTION =========== -->
|
|
<a name="module-description">
|
|
<!-- -->
|
|
</a>
|
|
<div class="block">This is a test description for the moduleB module. Search wor\
|
|
d <span id="search_word" class="search-tag-result">search_word</span> with no de\
|
|
scription.</div>""");
|
|
checkOutput("index.html", found,
|
|
"""
|
|
</script>
|
|
<div class="block">The overview summary page header.</div>
|
|
</div>
|
|
<div class="overview-summary">
|
|
<table summary="Module Summary table, listing modules, and an explanation">
|
|
<caption><span>Modules</span><span class="tab-end"> </span></caption>""");
|
|
checkOutput("index.html", false,
|
|
"""
|
|
</table>
|
|
</div>
|
|
<div class="block">The overview summary page header.</div>
|
|
</div>
|
|
<div class="overview-summary">
|
|
<table summary="Module Summary table, listing modules, and an explanation">
|
|
<caption><span>Modules</span><span class="tab-end"> </span></caption>""");
|
|
}
|
|
|
|
void checkHtml5Description(boolean found) {
|
|
checkOutput("moduleA/module-summary.html", found,
|
|
"""
|
|
<section class="module-description" id="module-description">
|
|
<div class="deprecation-block"><span class="deprecated-label">Deprecated, for re\
|
|
moval: This API element is subject to removal in a future version.</span>
|
|
<div class="deprecation-comment">This module is deprecated.</div>
|
|
</div>
|
|
<!-- ============ MODULE DESCRIPTION =========== -->
|
|
<div class="block">This is a test description for the moduleA module with a Sear\
|
|
ch phrase <span id="searchphrase" class="search-tag-result">search phrase</span>\
|
|
.</div>""");
|
|
checkOutput("moduleB/module-summary.html", found,
|
|
"""
|
|
<section class="module-description" id="module-description">
|
|
<!-- ============ MODULE DESCRIPTION =========== -->
|
|
<div class="block">This is a test description for the moduleB module. Search wor\
|
|
d <span id="search_word" class="search-tag-result">search_word</span> with no de\
|
|
scription.</div>""");
|
|
checkOutput("index.html", found,
|
|
"""
|
|
</nav>
|
|
</header>
|
|
<div class="main-grid">
|
|
<main role="main">
|
|
<div class="block">The overview summary page header.</div>
|
|
<div id="all-modules-table">
|
|
<div class="caption"><span>Modules</span></div>
|
|
<div class="summary-table two-column-summary">""");
|
|
checkOutput("index.html", false,
|
|
"""
|
|
</div>
|
|
</main>
|
|
<main role="main">
|
|
<div class="block">The overview summary page header.</div>
|
|
</div>
|
|
<div id="all-modules-table">
|
|
<div class="caption"><span>Modules</span></div>
|
|
<div class="summary-table two-column-summary">""");
|
|
}
|
|
|
|
void checkHtml5NoDescription(boolean found) {
|
|
checkOutput("moduleA/module-summary.html", found,
|
|
"""
|
|
<div class="header">
|
|
<h1 title="Module moduleA" class="title">Module moduleA</h1>
|
|
</div>
|
|
<hr>
|
|
<div class="horizontal-scroll">
|
|
<div class="module-signature"><span class="annotations">@Deprecated(forRemoval=true)
|
|
</span>module <span class="element-name">moduleA</span></div>
|
|
</div>
|
|
<section class="summary">
|
|
<ul class="summary-list">
|
|
<li>
|
|
<section class="packages-summary" id="packages-summary">
|
|
<!-- ============ PACKAGES SUMMARY =========== -->""");
|
|
checkOutput("moduleB/module-summary.html", found,
|
|
"""
|
|
<div class="header">
|
|
<h1 title="Module moduleB" class="title">Module moduleB</h1>
|
|
</div>
|
|
<hr>
|
|
<div class="horizontal-scroll">
|
|
<div class="module-signature"><span class="annotations"><a href="testpkgmdlB/Ann\
|
|
otationType.html" title="annotation interface in testpkgmdlB">@AnnotationType</a\
|
|
>(<a href="testpkgmdlB/AnnotationType.html#optional()">optional</a>="Module Anno\
|
|
tation",
|
|
<a href="testpkgmdlB/AnnotationType.html#required()">required</a>=2016)
|
|
</span>module <span class="element-name">moduleB</span></div>
|
|
</div>
|
|
<section class="summary">
|
|
<ul class="summary-list">
|
|
<li>
|
|
<section class="packages-summary" id="packages-summary">
|
|
<!-- ============ PACKAGES SUMMARY =========== -->""");
|
|
}
|
|
|
|
void checkModuleLink() {
|
|
checkOutput("index.html", false,
|
|
"<li>Module</li>");
|
|
checkOutput("moduleA/module-summary.html", true,
|
|
"""
|
|
<li class="nav-bar-cell1-rev">Module</li>""");
|
|
checkOutput("moduleB/module-summary.html", true,
|
|
"""
|
|
<li class="nav-bar-cell1-rev">Module</li>""");
|
|
checkOutput("moduleA/testpkgmdlA/class-use/TestClassInModuleA.html", true,
|
|
"""
|
|
<li><a href="../../module-summary.html">moduleA</a></li>""");
|
|
checkOutput("moduleB/testpkgmdlB/package-summary.html", true,
|
|
"""
|
|
<li><a href="../module-summary.html">moduleB</a></li>""");
|
|
checkOutput("moduleB/testpkgmdlB/TestClassInModuleB.html", false,
|
|
"""
|
|
<li><a href="../module-summary.html">Module</a></li>""");
|
|
checkOutput("moduleB/testpkgmdlB/class-use/TestClassInModuleB.html", true,
|
|
"""
|
|
<li><a href="../../module-summary.html">moduleB</a></li>""");
|
|
}
|
|
|
|
void checkNoModuleLink() {
|
|
checkOutput("testpkgnomodule/package-summary.html", true,
|
|
"""
|
|
<ul class="nav-list" title="Navigation">
|
|
<li><a href="../testpkgnomodule/package-summary.html">Package</a></li>""");
|
|
checkOutput("testpkgnomodule/TestClassNoModule.html", true,
|
|
"""
|
|
<ul class="nav-list" title="Navigation">
|
|
<li><a href="../testpkgnomodule/package-summary.html">Package</a></li>""");
|
|
checkOutput("testpkgnomodule/class-use/TestClassNoModule.html", true,
|
|
"""
|
|
<ul class="nav-list" title="Navigation">
|
|
<li><a href="../../testpkgnomodule/package-summary.html">Package</a></li>""");
|
|
}
|
|
|
|
void checkModuleTags() {
|
|
checkOutput("moduletags/module-summary.html", true,
|
|
"""
|
|
Type Link: <a href="testpkgmdltags/TestClassInModuleTags.html" title="class in t\
|
|
estpkgmdltags"><code>TestClassInModuleTags</code></a>.""",
|
|
"""
|
|
Member Link: <a href="testpkgmdltags/TestClassInModuleTags.html#testMethod(java.\
|
|
lang.String)"><code>testMethod(String)</code></a>.""",
|
|
"""
|
|
Package Link: <a href="testpkgmdltags/package-summary.html"><code>testpkgmdltags</code></a>.""",
|
|
"""
|
|
</div>
|
|
<dl class="notes">""",
|
|
"""
|
|
<dt>Since:</dt>
|
|
<dd>JDK 9</dd>""",
|
|
"""
|
|
<dt>See Also:</dt>
|
|
<dd>
|
|
<ul class="tag-list">
|
|
<li>"Test see tag"</li>
|
|
<li><a href="testpkgmdltags/TestClassInModuleTags.html" title="class in testpkgmdlta\
|
|
gs"><code>TestClassInModuleTags</code></a></li>
|
|
</ul>
|
|
</dd>""",
|
|
"""
|
|
<dt>Regular Tag:</dt>
|
|
<dd>Just a regular simple tag.</dd>""",
|
|
"""
|
|
<dt>Module Tag:</dt>
|
|
<dd>Just a simple module tag.</dd>""",
|
|
"""
|
|
<dt>Version:</dt>
|
|
<dd>1.0</dd>""",
|
|
"""
|
|
<dt>Author:</dt>
|
|
<dd>Alice</dd>""");
|
|
checkOutput("moduletags/testpkgmdltags/TestClassInModuleTags.html", false,
|
|
"""
|
|
<dt>Module Tag:</dt>
|
|
<dd>Just a simple module tag.</dd>""");
|
|
}
|
|
|
|
void checkHtml5OverviewSummaryModules() {
|
|
checkOutput("index.html", true,
|
|
"""
|
|
<div id="all-modules-table">
|
|
<div class="caption"><span>Modules</span></div>
|
|
<div class="summary-table two-column-summary">
|
|
<div class="table-header col-first">Module</div>
|
|
<div class="table-header col-last">Description</div>
|
|
""");
|
|
checkOutput("overview-summary.html", false,
|
|
"""
|
|
<div id="all-modules-table">
|
|
<div class="caption"><span>Packages</span></div>
|
|
<div class="summary-table two-column-summary">
|
|
<div class="table-header col-first">Package</div>
|
|
<div class="table-header col-last">Description</div>
|
|
""");
|
|
}
|
|
|
|
void checkHtml5OverviewSummaryPackages() {
|
|
checkOutput("index.html", false,
|
|
"""
|
|
<div class="overview-summary" id="all-modules-table">
|
|
<table class="summary-table">
|
|
<caption><span>Modules</span></caption>
|
|
<table-header>
|
|
<tr>
|
|
<th class="col-first" scope="col">Module</th>
|
|
<th class="col-last" scope="col">Description</th>
|
|
</tr>
|
|
</table-header>""",
|
|
"""
|
|
</table>
|
|
</div>
|
|
</main>
|
|
<main role="main">
|
|
<div class="block">The overview summary page header.</div>
|
|
</div>
|
|
<a id="Packages">
|
|
<!-- -->
|
|
</a>
|
|
<div class="overview-summary">
|
|
<table>
|
|
<caption><span>Packages</span></caption>""");
|
|
checkOutput("index.html", true,
|
|
"""
|
|
<div id="all-packages-table">
|
|
<div class="caption"><span>Packages</span></div>
|
|
<div class="summary-table two-column-summary">
|
|
<div class="table-header col-first">Package</div>
|
|
<div class="table-header col-last">Description</div>""",
|
|
"""
|
|
</nav>
|
|
</header>
|
|
<div class="main-grid">
|
|
<main role="main">
|
|
<div class="block">The overview summary page header.</div>
|
|
<div id="all-packages-table">
|
|
<div class="caption"><span>Packages</span></div>
|
|
<div class="summary-table two-column-summary">""");
|
|
}
|
|
|
|
void checkModuleSummary() {
|
|
checkOutput("moduleA/module-summary.html", true,
|
|
"""
|
|
<ol class="toc-list">
|
|
<li><a href="#" tabindex="0">Description</a></li>
|
|
<li><a href="#packages-summary" tabindex="0">Packages</a></li>
|
|
<li><a href="#modules-summary" tabindex="0">Modules</a></li>
|
|
</ol>""",
|
|
"""
|
|
<section class="modules-summary" id="modules-summary">
|
|
<!-- ============ MODULES SUMMARY =========== -->
|
|
<h2>Modules</h2>""",
|
|
"""
|
|
<div class="col-first even-row-color package-summary-table package-summary-table\
|
|
-tab1"><a href="testpkgmdlA/package-summary.html">testpkgmdlA</a></div>
|
|
<div class="col-last even-row-color package-summary-table package-summary-table-tab1"> </div>""",
|
|
"""
|
|
<section class="packages-summary" id="packages-summary">
|
|
<!-- ============ PACKAGES SUMMARY =========== -->
|
|
<h2>Packages</h2>""",
|
|
"""
|
|
<div class="col-first even-row-color">transitive</div>
|
|
<div class="col-second even-row-color"><a href="../moduleB/module-summary.html">moduleB</a></div>
|
|
<div class="col-last even-row-color">
|
|
<div class="block">This is a test description for the moduleB module.</div>
|
|
</div>
|
|
""");
|
|
checkOutput("moduleB/module-summary.html", true,
|
|
"""
|
|
<ol class="toc-list">
|
|
<li><a href="#" tabindex="0">Description</a></li>
|
|
<li><a href="#packages-summary" tabindex="0">Packages</a></li>
|
|
<li><a href="#services-summary" tabindex="0">Services</a></li>
|
|
</ol>""",
|
|
"""
|
|
<!-- ============ PACKAGES SUMMARY =========== -->
|
|
<h2>Packages</h2>""",
|
|
"""
|
|
<div class="col-first even-row-color package-summary-table package-summary-table\
|
|
-tab2"><a href="testpkgmdlB/package-summary.html">testpkgmdlB</a></div>
|
|
<div class="col-last even-row-color package-summary-table package-summary-table-tab2"> </div>
|
|
</div>""",
|
|
"""
|
|
<!-- ============ PACKAGES SUMMARY =========== -->
|
|
<h2>Packages</h2>""",
|
|
"""
|
|
<!-- ============ SERVICES SUMMARY =========== -->
|
|
<h2>Services</h2>""",
|
|
"""
|
|
<div class="col-first even-row-color"><a href="testpkgmdlB/TestClassInModuleB.ht\
|
|
ml" title="class in testpkgmdlB">TestClassInModuleB</a></div>
|
|
<div class="col-last even-row-color">
|
|
<div class="block">With a test description for uses.</div>
|
|
</div>""",
|
|
"""
|
|
<div class="caption"><span>Opens</span></div>
|
|
<div class="summary-table two-column-summary">
|
|
<div class="table-header col-first">Package</div>
|
|
<div class="table-header col-last">Description</div>""",
|
|
"""
|
|
<div class="caption"><span>Uses</span></div>
|
|
<div class="details-table two-column-summary">
|
|
<div class="table-header col-first">Type</div>
|
|
<div class="table-header col-last">Description</div>""",
|
|
"""
|
|
<div class="caption"><span>Provides</span></div>
|
|
<div class="details-table two-column-summary">
|
|
<div class="table-header col-first">Type</div>
|
|
<div class="table-header col-last">Description</div>""");
|
|
}
|
|
|
|
void checkAggregatorModuleSummary() {
|
|
checkOutput("moduleT/module-summary.html", true,
|
|
"""
|
|
<div class="header">
|
|
<h1 title="Module moduleT" class="title">Module moduleT</h1>
|
|
</div>""",
|
|
"""
|
|
<div class="block">This is a test description for the moduleT module. Search phr\
|
|
ase <span id="searchphrase" class="search-tag-result">search phrase</span>. Make\
|
|
sure there are no exported packages.</div>""",
|
|
"""
|
|
<div class="col-first even-row-color">transitive</div>
|
|
<div class="col-second even-row-color"><a href="../moduleA/module-summary.html">moduleA</a></div>
|
|
<div class="col-last even-row-color">
|
|
<div class="block">This is a test description for the moduleA module with a Search phrase search phrase.</div>
|
|
</div>
|
|
<div class="col-first odd-row-color">transitive</div>
|
|
<div class="col-second odd-row-color"><a href="../moduleB/module-summary.html">moduleB</a></div>
|
|
<div class="col-last odd-row-color">
|
|
<div class="block">This is a test description for the moduleB module.</div>
|
|
</div>""");
|
|
}
|
|
|
|
void checkNegatedModuleSummary() {
|
|
checkOutput("moduleA/module-summary.html", false,
|
|
"""
|
|
<!-- ============ SERVICES SUMMARY =========== -->
|
|
<h2>Services</h2>""");
|
|
}
|
|
|
|
void checkModuleFilesAndLinks(boolean found) {
|
|
checkFileAndOutput("moduleA/testpkgmdlA/package-summary.html", found,
|
|
"""
|
|
<li><a href="../module-summary.html">moduleA</a></li>""",
|
|
"""
|
|
<li><a href="../module-summary.html">moduleA</a></li>""");
|
|
checkFileAndOutput("moduleA/testpkgmdlA/TestClassInModuleA.html", found,
|
|
"""
|
|
<li><a href="../module-summary.html">moduleA</a></li>""",
|
|
"""
|
|
<li><a href="../module-summary.html">moduleA</a></li>""");
|
|
checkFileAndOutput("moduleB/testpkgmdlB/AnnotationType.html", found,
|
|
"""
|
|
<li><a href="../module-summary.html">moduleB</a></li>""",
|
|
"""
|
|
<li><a href="package-summary.html">testpkgmdlB</a></li>""");
|
|
checkFiles(found,
|
|
"moduleA/module-summary.html");
|
|
}
|
|
|
|
void checkModulesInSearch(boolean found) {
|
|
checkOutput("index-all.html", found,
|
|
"""
|
|
<dl class="index">
|
|
<dt><a href="moduleA/module-summary.html">moduleA</a> - module moduleA</dt>
|
|
<dd>
|
|
<div class="block">This is a test description for the moduleA module with a Search phrase search phrase.</div>
|
|
</dd>
|
|
<dt><a href="moduleB/module-summary.html">moduleB</a> - module moduleB</dt>
|
|
<dd>
|
|
<div class="block">This is a test description for the moduleB module.</div>
|
|
</dd>
|
|
</dl>""",
|
|
"""
|
|
<dl class="index">
|
|
<dt><a href="moduleB/module-summary.html#search_word" class="search-tag-link">se\
|
|
arch_word</a> - Search tag in module moduleB</dt>
|
|
<dd> </dd>
|
|
<dt><a href="moduleA/module-summary.html#searchphrase" class="search-tag-link">s\
|
|
earch phrase</a> - Search tag in module moduleA</dt>
|
|
<dd>with description</dd>
|
|
</dl>""");
|
|
checkOutput("index-all.html", false,
|
|
"""
|
|
<dt><a href="moduleA/module-summary.html#searchphrase" class="search-tag-link">s\
|
|
earch phrase</a> - Search tag in module moduleA</dt>
|
|
<dd>with description</dd>
|
|
<dt><a href="moduleA/module-summary.html#searchphrase" class="search-tag-link">s\
|
|
earch phrase</a></span> - Search tag in module moduleA</dt>
|
|
<dd>with description</dd>""");
|
|
}
|
|
|
|
void checkModuleModeCommon() {
|
|
checkOutput("index.html", true,
|
|
"""
|
|
<div class="col-first even-row-color all-modules-table all-modules-table-tab1"><\
|
|
a href="moduleA/module-summary.html">moduleA</a></div>
|
|
<div class="col-last even-row-color all-modules-table all-modules-table-tab1">
|
|
<div class="block">This is a test description for the moduleA module with a Search phrase search phrase.</div>""",
|
|
"""
|
|
<div class="col-first odd-row-color all-modules-table all-modules-table-tab1"><a\
|
|
href="moduleB/module-summary.html">moduleB</a></div>
|
|
<div class="col-last odd-row-color all-modules-table all-modules-table-tab1">
|
|
<div class="block">This is a test description for the moduleB module.</div>""",
|
|
"""
|
|
<div class="col-first odd-row-color all-modules-table all-modules-table-tab1"><a\
|
|
href="moduletags/module-summary.html">moduletags</a></div>
|
|
<div class="col-last odd-row-color all-modules-table all-modules-table-tab1">
|
|
<div class="block">This is a test description for the moduletags module.<br>
|
|
Type Link: <a href="moduletags/testpkgmdltags/TestClassInModuleTags.html" title\
|
|
="class in testpkgmdltags"><code>TestClassInModuleTags</code></a>.<br>
|
|
Member Link: <a href="moduletags/testpkgmdltags/TestClassInModuleTags.html#test\
|
|
Method(java.lang.String)"><code>testMethod(String)</code></a>.<br>
|
|
Package Link: <a href="moduletags/testpkgmdltags/package-summary.html"><code>testpkgmdltags</code></a>.<br></div>
|
|
</div>""");
|
|
checkOutput("moduleA/module-summary.html", true,
|
|
"""
|
|
<ol class="toc-list">
|
|
<li><a href="#" tabindex="0">Description</a></li>
|
|
<li><a href="#packages-summary" tabindex="0">Packages</a></li>
|
|
<li><a href="#modules-summary" tabindex="0">Modules</a></li>
|
|
</ol>""",
|
|
"""
|
|
<div class="col-first even-row-color"><a href="../moduleB/module-summary.html">moduleB</a></div>
|
|
<div class="col-last even-row-color"><a href="../moduleB/testpkgmdlB/package-summary.html">testpkgmdlB</a></div>
|
|
""");
|
|
checkOutput("moduletags/module-summary.html", true,
|
|
"""
|
|
<div class="col-first even-row-color package-summary-table package-summary-table\
|
|
-tab1"><a href="testpkgmdltags/package-summary.html">testpkgmdltags</a></div>
|
|
<div class="col-last even-row-color package-summary-table package-summary-table-tab1"> </div>""",
|
|
"""
|
|
<ol class="toc-list">
|
|
<li><a href="#" tabindex="0">Description</a></li>
|
|
<li><a href="#packages-summary" tabindex="0">Packages</a></li>
|
|
<li><a href="#modules-summary" tabindex="0">Modules</a></li>
|
|
</ol>""",
|
|
"""
|
|
<div class="caption"><span>Indirect Requires</span></div>
|
|
<div class="details-table three-column-summary">""",
|
|
"""
|
|
<div class="col-first even-row-color">transitive</div>
|
|
<div class="col-second even-row-color"><a href="../moduleB/module-summary.html">moduleB</a></div>
|
|
<div class="col-last even-row-color">
|
|
<div class="block">This is a test description for the moduleB module.</div>
|
|
</div>""",
|
|
"""
|
|
<div class="caption"><span>Indirect Exports</span></div>
|
|
<div class="details-table two-column-summary">""",
|
|
"""
|
|
<div class="caption"><span>Requires</span></div>
|
|
<div class="details-table three-column-summary">
|
|
<div class="table-header col-first">Modifier</div>
|
|
<div class="table-header col-second">Module</div>
|
|
<div class="table-header col-last">Description</div>""",
|
|
"""
|
|
<div class="caption"><span>Indirect Requires</span></div>
|
|
<div class="details-table three-column-summary">
|
|
<div class="table-header col-first">Modifier</div>
|
|
<div class="table-header col-second">Module</div>
|
|
<div class="table-header col-last">Description</div>""",
|
|
"""
|
|
<div class="caption"><span>Indirect Opens</span></div>
|
|
<div class="details-table two-column-summary">
|
|
<div class="table-header col-first">From</div>
|
|
<div class="table-header col-last">Packages</div>""",
|
|
"""
|
|
<div class="col-first even-row-color"><a href="../moduleB/module-summary.html">moduleB</a></div>
|
|
<div class="col-last even-row-color"><a href="../moduleB/testpkgmdlB/package-summary.html">testpkgmdlB</a></div>
|
|
""");
|
|
}
|
|
|
|
void checkModuleModeApi(boolean found) {
|
|
checkOutput("moduleA/module-summary.html", found,
|
|
"""
|
|
<div class="col-first even-row-color package-summary-table package-summary-table\
|
|
-tab1"><a href="testpkgmdlA/package-summary.html">testpkgmdlA</a></div>
|
|
<div class="col-last even-row-color package-summary-table package-summary-table-tab1"> </div>""");
|
|
checkOutput("moduleB/module-summary.html", found,
|
|
"""
|
|
<ol class="toc-list">
|
|
<li><a href="#" tabindex="0">Description</a></li>
|
|
<li><a href="#packages-summary" tabindex="0">Packages</a></li>
|
|
<li><a href="#services-summary" tabindex="0">Services</a></li>
|
|
</ol>""",
|
|
"""
|
|
<div class="col-first even-row-color package-summary-table package-summary-table\
|
|
-tab2"><a href="testpkgmdlB/package-summary.html">testpkgmdlB</a></div>
|
|
<div class="col-last even-row-color package-summary-table package-summary-table-tab2"> </div>""",
|
|
"""
|
|
<div id="package-summary-table">
|
|
<div class="caption"><span>Opens</span></div>
|
|
<div class="summary-table two-column-summary">
|
|
<div class="table-header col-first">Package</div>
|
|
<div class="table-header col-last">Description</div>
|
|
<div class="col-first even-row-color package-summary-table package-summary-table\
|
|
-tab2"><a href="testpkgmdlB/package-summary.html">testpkgmdlB</a></div>
|
|
<div class="col-last even-row-color package-summary-table package-summary-table-tab2"> </div>
|
|
</div>
|
|
</div>""",
|
|
"""
|
|
<div class="col-first even-row-color"><a href="testpkgmdlB/TestClassInModuleB.ht\
|
|
ml" title="class in testpkgmdlB">TestClassInModuleB</a></div>
|
|
<div class="col-last even-row-color">
|
|
<div class="block">With a test description for uses.</div>
|
|
""");
|
|
checkOutput("moduletags/module-summary.html", found,
|
|
"""
|
|
<div class="col-first even-row-color">transitive static</div>
|
|
<div class="col-second even-row-color"><a href="../moduleA/module-summary.html">moduleA</a></div>
|
|
<div class="col-last even-row-color">
|
|
<div class="block">This is a test description for the moduleA module with a Search phrase search phrase.</div>""");
|
|
}
|
|
|
|
void checkModuleModeAll(boolean found) {
|
|
checkOutput("moduleA/module-summary.html", found,
|
|
"""
|
|
<div class="col-first even-row-color"> </div>
|
|
<div class="col-second even-row-color">java.base</div>
|
|
<div class="col-last even-row-color"> </div>""",
|
|
"""
|
|
<div class="col-first even-row-color"> </div>
|
|
<div class="col-second even-row-color"><a href="../moduleC/module-summary.html">moduleC</a></div>
|
|
<div class="col-last even-row-color">
|
|
<div class="block">This is a test description for the moduleC module.</div>
|
|
</div>""",
|
|
"""
|
|
<div class="col-first even-row-color"><a href="../moduleC/module-summary.html">moduleC</a></div>
|
|
<div class="col-last even-row-color"><a href="../moduleC/testpkgmdlC/package-summary.html">testpkgmdlC</a></div>""",
|
|
"""
|
|
<div class="col-first odd-row-color package-summary-table package-summary-table-\
|
|
tab1"><a href="testpkgmdlA/package-summary.html">testpkgmdlA</a></div>
|
|
<div class="col-second odd-row-color package-summary-table package-summary-table-tab1">All Modules</div>
|
|
<div class="col-last odd-row-color package-summary-table package-summary-table-tab1"> </div>""",
|
|
"""
|
|
<div class="table-tabs" role="tablist" aria-orientation="horizontal">\
|
|
<button id="package-summary-table-tab0" role="tab" aria-selected="true" aria-con\
|
|
trols="package-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)"\
|
|
onclick="show('package-summary-table', 'package-summary-table', 3)" class="acti\
|
|
ve-table-tab">All Packages</button>\
|
|
<button id="package-summary-table-tab1" role="tab" aria-selected="false" aria-co\
|
|
ntrols="package-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event\
|
|
)" onclick="show('package-summary-table', 'package-summary-table-tab1', 3)" clas\
|
|
s="table-tab">Exports</button>\
|
|
<button id="package-summary-table-tab3" role="tab" aria-selected="false" aria-co\
|
|
ntrols="package-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event\
|
|
)" onclick="show('package-summary-table', 'package-summary-table-tab3', 3)" clas\
|
|
s="table-tab">Concealed</button>\
|
|
</div>""",
|
|
"""
|
|
<div class="col-first even-row-color package-summary-table package-summary-table\
|
|
-tab3"><a href="concealedpkgmdlA/package-summary.html">concealedpkgmdlA</a></div\
|
|
>
|
|
<div class="col-second even-row-color package-summary-table package-summary-table-tab3">None</div>
|
|
<div class="col-last even-row-color package-summary-table package-summary-table-tab3"> </div>""");
|
|
checkOutput("moduleB/module-summary.html", found,
|
|
"""
|
|
<ol class="toc-list">
|
|
<li><a href="#" tabindex="0">Description</a></li>
|
|
<li><a href="#packages-summary" tabindex="0">Packages</a></li>
|
|
<li><a href="#modules-summary" tabindex="0">Modules</a></li>
|
|
<li><a href="#services-summary" tabindex="0">Services</a></li>
|
|
</ol>""",
|
|
"""
|
|
<div class="col-first even-row-color package-summary-table package-summary-table\
|
|
-tab2"><a href="testpkgmdlB/package-summary.html">testpkgmdlB</a></div>
|
|
<div class="col-second even-row-color package-summary-table package-summary-table-tab2">None</div>
|
|
<div class="col-second even-row-color package-summary-table package-summary-table-tab2">All Modules</div>
|
|
<div class="col-last even-row-color package-summary-table package-summary-table-tab2"> </div>""",
|
|
"""
|
|
<div class="col-first even-row-color"> </div>
|
|
<div class="col-second even-row-color">java.base</div>
|
|
<div class="col-last even-row-color"> </div>""",
|
|
"""
|
|
<div class="col-first even-row-color"><a href="testpkgmdlB/TestClass2InModuleB.html"\
|
|
title="class in testpkgmdlB">TestClass2InModuleB</a></div>
|
|
<div class="col-last even-row-color"> </div>""",
|
|
"""
|
|
<div class="col-first even-row-color"><a href="testpkg2mdlB/TestInterface2InModuleB.h\
|
|
tml" title="interface in testpkg2mdlB">TestInterface2InModuleB</a></div>
|
|
<div class="col-last even-row-color"> <br>(<span class="implementation-label">Im\
|
|
plementation(s):</span> <a href="testpkgmdlB/TestClass2InModuleB.html" titl\
|
|
e="class in testpkgmdlB">TestClass2InModuleB</a>)</div>""",
|
|
"""
|
|
<div class="col-first odd-row-color"><a href="testpkg2mdlB/TestInterfaceInModuleB.ht\
|
|
ml" title="interface in testpkg2mdlB">TestInterfaceInModuleB</a></div>
|
|
<div class="col-last odd-row-color"> <br>(<span class="implementation-label">Im\
|
|
plementation(s):</span> <a href="testpkgmdlB/TestClassInModuleB.html" title\
|
|
="class in testpkgmdlB">TestClassInModuleB</a>)</div>""",
|
|
"""
|
|
<div class="table-tabs" role="tablist" aria-orientation="horizontal">\
|
|
<button id="package-summary-table-tab0" role="tab" aria-selected="true" aria-con\
|
|
trols="package-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)"\
|
|
onclick="show('package-summary-table', 'package-summary-table', 4)" class="acti\
|
|
ve-table-tab">All Packages</button>\
|
|
<button id="package-summary-table-tab1" role="tab" aria-selected="false" aria-co\
|
|
ntrols="package-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event\
|
|
)" onclick="show('package-summary-table', 'package-summary-table-tab1', 4)" clas\
|
|
s="table-tab">Exports</button>\
|
|
<button id="package-summary-table-tab2" role="tab" aria-selected="false" aria-co\
|
|
ntrols="package-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event\
|
|
)" onclick="show('package-summary-table', 'package-summary-table-tab2', 4)" clas\
|
|
s="table-tab">Opens</button>\
|
|
</div>""",
|
|
"""
|
|
<div class="col-first odd-row-color"><a href="testpkgmdlB/TestClassInModuleB.htm\
|
|
l" title="class in testpkgmdlB">TestClassInModuleB</a></div>
|
|
<div class="col-last odd-row-color">
|
|
<div class="block">With a test description for uses.</div>
|
|
""");
|
|
checkOutput("moduleC/module-summary.html", found,
|
|
"""
|
|
<div class="caption"><span>Exports</span></div>
|
|
<div class="summary-table three-column-summary">
|
|
<div class="table-header col-first">Package</div>
|
|
<div class="table-header col-second">Exported To Modules</div>
|
|
<div class="table-header col-last">Description</div>""");
|
|
checkOutput("moduletags/module-summary.html", found,
|
|
"""
|
|
<div class="col-first odd-row-color">transitive static</div>
|
|
<div class="col-second odd-row-color"><a href="../moduleA/module-summary.html">moduleA</a></div>
|
|
<div class="col-last odd-row-color">
|
|
<div class="block">This is a test description for the moduleA module with a Search phrase search phrase.</div>""");
|
|
}
|
|
|
|
void checkModuleDeprecation(boolean found) {
|
|
checkOutput("moduleA/module-summary.html", found,
|
|
"""
|
|
<div class="deprecation-block"><span class="deprecated-label">Deprecated, for re\
|
|
moval: This API element is subject to removal in a future version.</span>
|
|
<div class="deprecation-comment">This module is deprecated.</div>
|
|
</div>""");
|
|
checkOutput("deprecated-list.html", found,
|
|
"""
|
|
<ul class="contents-list">
|
|
<li id="contents-for-removal"><a href="#for-removal">Terminally Deprecated</a></li>
|
|
<li id="contents-module"><a href="#module">Modules</a></li>
|
|
</ul>""",
|
|
"""
|
|
<div class="col-summary-item-name even-row-color"><a href="moduleA/module-summary.html">moduleA</a></div>
|
|
<div class="col-last even-row-color">
|
|
<div class="block">This module is deprecated.</div>""");
|
|
checkOutput("moduleB/module-summary.html", !found,
|
|
"""
|
|
<div class="deprecation-block"><span class="deprecated-label">Deprecated.</span>
|
|
<div class="deprecation-comment">This module is deprecated using just the javadoc tag.</div>
|
|
""");
|
|
checkOutput("moduletags/module-summary.html", found,
|
|
"""
|
|
<div class="header">
|
|
<h1 title="Module moduletags" class="title">Module moduletags</h1>
|
|
</div>
|
|
<hr>
|
|
<div class="horizontal-scroll">
|
|
<div class="module-signature"><span class="annotations">@Deprecated
|
|
</span>module <span class="element-name">moduletags</span></div>""",
|
|
"""
|
|
<div class="deprecation-block"><span class="deprecated-label">Deprecated.</span></div>""");
|
|
}
|
|
|
|
void checkModuleAnnotation() {
|
|
checkOutput("moduleB/module-summary.html", true,
|
|
"""
|
|
<div class="header">
|
|
<h1 title="Module moduleB" class="title">Module moduleB</h1>
|
|
</div>
|
|
<hr>
|
|
<div class="horizontal-scroll">
|
|
<div class="module-signature"><span class="annotations"><a href="testpkgmdlB/Ann\
|
|
otationType.html" title="annotation interface in testpkgmdlB">@AnnotationType</a\
|
|
>(<a href="testpkgmdlB/AnnotationType.html#optional()">optional</a>="Module Anno\
|
|
tation",
|
|
<a href="testpkgmdlB/AnnotationType.html#required()">required</a>=2016)
|
|
</span>module <span class="element-name">moduleB</span></div>""");
|
|
checkOutput("moduleB/module-summary.html", false,
|
|
"@AnnotationTypeUndocumented");
|
|
}
|
|
|
|
void checkModuleSummaryNoExported(boolean found) {
|
|
checkOutput("moduleNoExport/module-summary.html", found,
|
|
"""
|
|
<!-- ============ PACKAGES SUMMARY =========== -->
|
|
<h2>Packages</h2>""",
|
|
"""
|
|
<div class="caption"><span>Concealed</span></div>""");
|
|
}
|
|
|
|
void checkGroupOption() {
|
|
checkOutput("index.html", true,
|
|
"""
|
|
<div id="all-modules-table">
|
|
<div class="table-tabs" role="tablist" aria-orientation="horizontal">\
|
|
<button id="all-modules-table-tab0" role="tab" aria-selected="true" aria-control\
|
|
s="all-modules-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick\
|
|
="show('all-modules-table', 'all-modules-table', 2)" class="active-table-tab">Al\
|
|
l Modules</button>\
|
|
<button id="all-modules-table-tab1" role="tab" aria-selected="false" aria-contro\
|
|
ls="all-modules-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" oncli\
|
|
ck="show('all-modules-table', 'all-modules-table-tab1', 2)" class="table-tab">Mo\
|
|
dule Group A</button>\
|
|
<button id="all-modules-table-tab2" role="tab" aria-selected="false" aria-contro\
|
|
ls="all-modules-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" oncli\
|
|
ck="show('all-modules-table', 'all-modules-table-tab2', 2)" class="table-tab">Mo\
|
|
dule Group B & C</button>\
|
|
<button id="all-modules-table-tab3" role="tab" aria-selected="false" aria-contro\
|
|
ls="all-modules-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" oncli\
|
|
ck="show('all-modules-table', 'all-modules-table-tab3', 2)" class="table-tab">Ot\
|
|
her Modules</button>\
|
|
</div>
|
|
<div id="all-modules-table.tabpanel" role="tabpanel" aria-labelledby="all-modules-table-tab0">
|
|
<div class="summary-table two-column-summary">""");
|
|
checkOutput("index.html", false,
|
|
"""
|
|
<div class="overview-summary">
|
|
<table>
|
|
<caption><span>Modules</span></caption>""",
|
|
"Java SE Modules");
|
|
}
|
|
|
|
void checkGroupOptionOrdering() {
|
|
checkOutput("index.html", true,
|
|
"""
|
|
<div class="table-tabs" role="tablist" aria-orientation="horizontal">\
|
|
<button id="all-modules-table-tab0" role="tab" aria-selected="true" aria-control\
|
|
s="all-modules-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick\
|
|
="show('all-modules-table', 'all-modules-table', 2)" class="active-table-tab">Al\
|
|
l Modules</button>\
|
|
<button id="all-modules-table-tab1" role="tab" aria-selected="false" aria-contro\
|
|
ls="all-modules-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" oncli\
|
|
ck="show('all-modules-table', 'all-modules-table-tab1', 2)" class="table-tab">B\
|
|
Group</button>\
|
|
<button id="all-modules-table-tab2" role="tab" aria-selected="false" aria-contro\
|
|
ls="all-modules-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" oncli\
|
|
ck="show('all-modules-table', 'all-modules-table-tab2', 2)" class="table-tab">C\
|
|
Group</button>\
|
|
<button id="all-modules-table-tab3" role="tab" aria-selected="false" aria-contro\
|
|
ls="all-modules-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" oncli\
|
|
ck="show('all-modules-table', 'all-modules-table-tab3', 2)" class="table-tab">A\
|
|
Group</button>\
|
|
<button id="all-modules-table-tab4" role="tab" aria-selected="false" aria-contro\
|
|
ls="all-modules-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" oncli\
|
|
ck="show('all-modules-table', 'all-modules-table-tab4', 2)" class="table-tab">Ot\
|
|
her Modules</button>\
|
|
</div>""");
|
|
checkOutput("index.html", false,
|
|
"""
|
|
<div class="table-tabs" role="tablist" aria-orientation="horizontal">\
|
|
<button id="all-modules-table-tab0" role="tab" aria-selected="true" aria-control\
|
|
s="all-modules-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick\
|
|
="show('all-modules-table', 'all-modules-table', 2)" class="active-table-tab">Al\
|
|
l Modules</button>\
|
|
<button id="all-modules-table-tab1" role="tab" aria-selected="false" aria-contro\
|
|
ls="all-modules-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" oncli\
|
|
ck="show('all-modules-table', 'all-modules-table-tab1', 2)" class="table-tab">A\
|
|
Group</button>\
|
|
<button id="all-modules-table-tab2" role="tab" aria-selected="false" aria-contro\
|
|
ls="all-modules-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" oncli\
|
|
ck="show('all-modules-table', 'all-modules-table-tab2', 2)" class="table-tab">B\
|
|
Group</button>\
|
|
<button id="all-modules-table-tab3" role="tab" aria-selected="false" aria-contro\
|
|
ls="all-modules-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" oncli\
|
|
ck="show('all-modules-table', 'all-modules-table-tab3', 2)" class="table-tab">C\
|
|
Group</button>\
|
|
<button id="all-modules-table-tab4" role="tab" aria-selected="false" aria-contro\
|
|
ls="all-modules-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" oncli\
|
|
ck="show('all-modules-table', 'all-modules-table-tab4', 2)" class="table-tab">Ot\
|
|
her Modules</button>\
|
|
</div>""",
|
|
"Java SE Modules");
|
|
}
|
|
|
|
void checkUnnamedModuleGroupOption() {
|
|
checkOutput("index.html", true,
|
|
"""
|
|
<div class="block">The overview summary page header.</div>
|
|
<div id="all-packages-table">
|
|
<div class="table-tabs" role="tablist" aria-orientation="horizontal">\
|
|
<button id="all-packages-table-tab0" role="tab" aria-selected="true" aria-contro\
|
|
ls="all-packages-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" oncli\
|
|
ck="show('all-packages-table', 'all-packages-table', 2)" class="active-table-tab\
|
|
">All Packages</button>\
|
|
<button id="all-packages-table-tab1" role="tab" aria-selected="false" aria-contro\
|
|
ls="all-packages-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" oncli\
|
|
ck="show('all-packages-table', 'all-packages-table-tab1', 2)" class="table-tab">P\
|
|
ackage Group 0</button>\
|
|
<button id="all-packages-table-tab2" role="tab" aria-selected="false" aria-contro\
|
|
ls="all-packages-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" oncli\
|
|
ck="show('all-packages-table', 'all-packages-table-tab2', 2)" class="table-tab">P\
|
|
ackage Group 1</button>\
|
|
</div>
|
|
<div id="all-packages-table.tabpanel" role="tabpanel" aria-labelledby="all-packages-table-tab0">
|
|
<div class="summary-table two-column-summary">""");
|
|
}
|
|
|
|
void checkGroupOptionPackageOrdering() {
|
|
checkOutput("index.html", true,
|
|
"""
|
|
<div class="table-tabs" role="tablist" aria-orientation="horizontal">\
|
|
<button id="all-packages-table-tab0" role="tab" aria-selected="true" aria-contro\
|
|
ls="all-packages-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" oncli\
|
|
ck="show('all-packages-table', 'all-packages-table', 2)" class="active-table-tab\
|
|
">All Packages</button>\
|
|
<button id="all-packages-table-tab1" role="tab" aria-selected="false" aria-contr\
|
|
ols="all-packages-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onc\
|
|
lick="show('all-packages-table', 'all-packages-table-tab1', 2)" class="table-tab\
|
|
">Z Group</button>\
|
|
<button id="all-packages-table-tab2" role="tab" aria-selected="false" aria-contr\
|
|
ols="all-packages-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onc\
|
|
lick="show('all-packages-table', 'all-packages-table-tab2', 2)" class="table-tab\
|
|
">A Group</button>\
|
|
</div>""");
|
|
}
|
|
|
|
void checkGroupOptionSingleModule() {
|
|
checkOutput("index.html", true,
|
|
"window.location.replace('moduleB/module-summary.html')");
|
|
}
|
|
|
|
void checkModuleName(boolean found) {
|
|
checkOutput("test.moduleFullName/module-summary.html", found,
|
|
"""
|
|
<div class="header">
|
|
<h1 title="Module test.moduleFullName" class="title">Module test.moduleFullName</h1>
|
|
</div>""");
|
|
checkOutput("index-all.html", found,
|
|
"""
|
|
<h2 class="title" id="I:T">T</h2>
|
|
<dl class="index">
|
|
<dt><a href="test.moduleFullName/module-summary.html">test.moduleFullName</a> - module test.moduleFullName</dt>
|
|
<dd>
|
|
<div class="block">This is a test description for the test.moduleFullName.</div>
|
|
</dd>""");
|
|
checkOutput("test.moduleFullName/module-summary.html", !found,
|
|
"""
|
|
<div class="header">
|
|
<h1 title="Module moduleFullName" class="title">Module moduleFullName</h1>
|
|
</div>""");
|
|
checkOutput("index-all.html", !found,
|
|
"""
|
|
<dl class="index">
|
|
<dt><a href="test.moduleFullName/module-summary.html">moduleFullName</a> - module moduleFullName</dt>
|
|
<dd>
|
|
<div class="block">This is a test description for the test.moduleFullName.</div>
|
|
</dd>
|
|
</dl>""");
|
|
}
|
|
|
|
void checkLinkOffline() {
|
|
checkOutput("moduleB/testpkg3mdlB/package-summary.html", true,
|
|
"""
|
|
<a href="https://docs.oracle.com/javase/9/docs/api/java.base/java/lang/String.ht\
|
|
ml" title="class or interface in java.lang" class="external-link"><code>Link to \
|
|
String Class</code></a>""");
|
|
checkOutput("moduleB/testpkg3mdlB/package-summary.html", true,
|
|
"""
|
|
<a href="https://docs.oracle.com/javase/9/docs/api/java.base/java/lang/package-s\
|
|
ummary.html" class="external-link"><code>Link to java.lang package</code></a>""");
|
|
checkOutput("moduleB/testpkg3mdlB/package-summary.html", true,
|
|
"""
|
|
<a href="https://docs.oracle.com/javase/9/docs/api/java.base/module-summary.html\
|
|
" class="external-link"><code>Link to java.base module</code></a>""");
|
|
}
|
|
|
|
void checkLinkSource(boolean includePrivate) {
|
|
checkOutput("moduleA/module-summary.html", !includePrivate,
|
|
"""
|
|
div id="package-summary-table">
|
|
<div class="caption"><span>Exports</span></div>
|
|
<div class="summary-table two-column-summary">
|
|
<div class="table-header col-first">Package</div>
|
|
<div class="table-header col-last">Description</div>
|
|
<div class="col-first even-row-color package-summary-table package-summary-table-tab1">\
|
|
<a href="testpkgmdlA/package-summary.html">testpkgmdlA</a></div>
|
|
<div class="col-last even-row-color package-summary-table package-summary-table-tab1"> </div>
|
|
</div>
|
|
</div>
|
|
""");
|
|
checkOutput("moduleA/testpkgmdlA/TestClassInModuleA.html", true,
|
|
"""
|
|
<section class="class-description" id="class-description">
|
|
<hr>
|
|
<div class="horizontal-scroll">
|
|
<div class="type-signature"><span class="modifiers">public class </span><span cl\
|
|
ass="element-name"><a href="../../src-html/moduleA/testpkgmdlA/TestClassInModule\
|
|
A.html#line-25">TestClassInModuleA</a></span>
|
|
<span class="extends-implements">extends java.lang.Object</span></div>
|
|
</div>
|
|
</section>""");
|
|
checkOutput("src-html/moduleA/testpkgmdlA/TestClassInModuleA.html", true,
|
|
"""
|
|
<span class="source-line-no">019</span><span id="line-19"> * Please contact Orac\
|
|
le, 500 Oracle Parkway, Redwood Shores, CA 94065 USA</span>
|
|
<span class="source-line-no">020</span><span id="line-20"> * or visit www.oracle\
|
|
.com if you need additional information or have any</span>
|
|
<span class="source-line-no">021</span><span id="line-21"> * questions.</span>
|
|
<span class="source-line-no">022</span><span id="line-22"> */</span>
|
|
<span class="source-line-no">023</span><span id="line-23">package testpkgmdlA;</span>
|
|
<span class="source-line-no">024</span><span id="line-24"></span>
|
|
<span class="source-line-no">025</span><span id="line-25">public class TestClassInModuleA {</span>
|
|
<span class="source-line-no">026</span><span id="line-26">}</span>""");
|
|
if (includePrivate) {
|
|
checkOutput("src-html/moduleA/concealedpkgmdlA/ConcealedClassInModuleA.html", true,
|
|
"""
|
|
<span class="source-line-no">024</span><span id="line-24">package concealedpkgmdlA;</span>
|
|
<span class="source-line-no">025</span><span id="line-25"></span>
|
|
<span class="source-line-no">026</span><span id="line-26">public class ConcealedClassInModuleA {</span>
|
|
<span class="source-line-no">027</span><span id="line-27"> public void testMethodConcealedClass() { }</span>
|
|
<span class="source-line-no">028</span><span id="line-28">}</span>""");
|
|
}
|
|
}
|
|
|
|
void checkAllPkgsAllClasses(boolean found) {
|
|
checkOutput("allclasses-index.html", true,
|
|
"""
|
|
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id=\
|
|
"all-classes-table-tab0" role="tab" aria-selected="true" aria-controls="all-clas\
|
|
ses-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('all\
|
|
-classes-table', 'all-classes-table', 2)" class="active-table-tab">All Classes a\
|
|
nd Interfaces</button>\
|
|
<button id="all-classes-table-tab2" role="tab" aria-selected="false" aria-contro\
|
|
ls="all-classes-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" oncli\
|
|
ck="show('all-classes-table', 'all-classes-table-tab2', 2)" class="table-tab">Cl\
|
|
asses</button>\
|
|
<button id="all-classes-table-tab6" role="tab" aria-selected="false" aria-contro\
|
|
ls="all-classes-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" oncli\
|
|
ck="show('all-classes-table', 'all-classes-table-tab6', 2)" class="table-tab">An\
|
|
notation Interfaces</button></div>
|
|
""",
|
|
"""
|
|
<div class="table-header col-first">Class</div>
|
|
<div class="table-header col-last">Description</div>
|
|
""");
|
|
checkOutput("allpackages-index.html", true,
|
|
"""
|
|
<div class="caption"><span>Package Summary</span></div>
|
|
<div class="summary-table two-column-summary">
|
|
<div class="table-header col-first">Package</div>
|
|
<div class="table-header col-last">Description</div>
|
|
""");
|
|
checkOutput("allclasses-index.html", found,
|
|
"""
|
|
<div class="summary-table two-column-summary">
|
|
""");
|
|
checkOutput("allpackages-index.html", found,
|
|
"""
|
|
<div class="caption"><span>Package Summary</span></div>
|
|
<div class="summary-table two-column-summary">
|
|
""");
|
|
checkOutput("allclasses-index.html", !found,
|
|
"""
|
|
<table summary="Class Summary table, listing classes, and an explanation" aria-labelledby="t0">""");
|
|
checkOutput("allpackages-index.html", !found,
|
|
"""
|
|
<div class="packages-summary">
|
|
<table summary="Package Summary table, listing packages, and an explanation">""");
|
|
checkOutput("type-search-index.js", true,
|
|
"""
|
|
{"l":"All Classes and Interfaces","u":"allclasses-index.html"}""");
|
|
checkOutput("package-search-index.js", true,
|
|
"""
|
|
{"l":"All Packages","u":"allpackages-index.html"}""");
|
|
checkOutput("index-all.html", true,
|
|
"""
|
|
<br><a href="allclasses-index.html">All Classes and Interfaces</a\
|
|
><span class="vertical-separator">|</span><a href="allpackages-index.html">All&n\
|
|
bsp;Packages</a>""");
|
|
}
|
|
}
|