8202959: Rearrange the top and bottom navigation bar in the javadoc generated pages

Co-authored-by: Bhavesh Patel <bhavesh.x.patel@oracle.com>
Reviewed-by: darcy, jjg
This commit is contained in:
Jonathan Gibbons 2018-06-28 15:46:27 -07:00
parent 736e57146d
commit 3ae58c7fdc
16 changed files with 126 additions and 155 deletions
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets
test/langtools
jdk/javadoc
doclet
tool/api/basic
tools/javadoc/api/basic

@ -85,16 +85,13 @@ public class AllClassesFrameWriter extends HtmlDocletWriter {
* "allclasses-frame.html" file. Generate the file in the current or the * "allclasses-frame.html" file. Generate the file in the current or the
* destination directory. * destination directory.
* *
* @param indexBuilder IndexBuilder object for all classes index. * @param configuration the configuration for this javadoc run
* @throws DocFileIOException * @throws DocFileIOException
*/ */
public static void generate(HtmlConfiguration configuration, public static void generate(HtmlConfiguration configuration,
IndexBuilder indexBuilder) throws DocFileIOException { IndexBuilder indexBuilder) throws DocFileIOException {
if (configuration.frames) { if (configuration.frames) {
generate(configuration, indexBuilder, DocPaths.ALLCLASSES_FRAME, true); generate(configuration, indexBuilder, DocPaths.ALLCLASSES_FRAME, true);
generate(configuration, indexBuilder, DocPaths.ALLCLASSES_NOFRAME, false);
} else {
generate(configuration, indexBuilder, DocPaths.ALLCLASSES, false);
} }
} }

@ -375,23 +375,6 @@ public class HelpWriter extends HtmlDocletWriter {
ul.addContent(htmlTree); ul.addContent(htmlTree);
} }
// All Classes
Content allclassesHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
contents.allClassesLabel);
htmlTree = (configuration.allowTag(HtmlTag.SECTION))
? HtmlTree.SECTION(allclassesHead)
: HtmlTree.LI(HtmlStyle.blockList, allclassesHead);
Content allClassesBody = contents.getContent("doclet.help.all_classes.body",
links.createLink(DocPaths.AllClasses(configuration.frames),
resources.getText("doclet.All_Classes")));
Content allclassesPara = HtmlTree.P(allClassesBody);
htmlTree.addContent(allclassesPara);
if (configuration.allowTag(HtmlTag.SECTION)) {
ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
} else {
ul.addContent(htmlTree);
}
// Serialized Form // Serialized Form
Content sHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING, Content sHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
contents.serializedForm); contents.serializedForm);

@ -106,23 +106,17 @@ public class Navigation {
} }
enum Position { enum Position {
BOTTOM("allclasses_navbar_bottom", HtmlConstants.START_OF_BOTTOM_NAVBAR, HtmlConstants.END_OF_BOTTOM_NAVBAR), BOTTOM(HtmlConstants.START_OF_BOTTOM_NAVBAR, HtmlConstants.END_OF_BOTTOM_NAVBAR),
TOP("allclasses_navbar_top", HtmlConstants.START_OF_TOP_NAVBAR, HtmlConstants.END_OF_TOP_NAVBAR); TOP(HtmlConstants.START_OF_TOP_NAVBAR, HtmlConstants.END_OF_TOP_NAVBAR);
final String allClassesLinkId;
final Content startOfNav; final Content startOfNav;
final Content endOfNav; final Content endOfNav;
Position(String allClassesLinkId, Content startOfNav, Content endOfNav) { Position(Content startOfNav, Content endOfNav) {
this.allClassesLinkId = allClassesLinkId;
this.startOfNav = startOfNav; this.startOfNav = startOfNav;
this.endOfNav = endOfNav; this.endOfNav = endOfNav;
} }
String allClassesLinkId() {
return allClassesLinkId;
}
Content startOfNav() { Content startOfNav() {
return startOfNav; return startOfNav;
} }
@ -130,20 +124,6 @@ public class Navigation {
Content endOfNav() { Content endOfNav() {
return endOfNav; return endOfNav;
} }
Script allClassesLinkScript() {
return new Script("<!--\n"
+ " allClassesLink = document.getElementById(")
.appendStringLiteral(allClassesLinkId)
.append(");\n"
+ " if(window==top) {\n"
+ " allClassesLink.style.display = \"block\";\n"
+ " }\n"
+ " else {\n"
+ " allClassesLink.style.display = \"none\";\n"
+ " }\n"
+ " //-->\n");
}
} }
/** /**
@ -971,13 +951,6 @@ public class Navigation {
tree.addContent(HtmlTree.LI(noFramesContent)); tree.addContent(HtmlTree.LI(noFramesContent));
} }
private void addNavLinkClassIndex(Content tree) {
Content allClassesContent = links.createLink(pathToRoot.resolve(
DocPaths.AllClasses(configuration.frames)),
contents.allClassesLabel, "", "");
tree.addContent(HtmlTree.LI(allClassesContent));
}
private void addSearch(Content tree) { private void addSearch(Content tree) {
String searchValueId = "search"; String searchValueId = "search";
String reset = "reset"; String reset = "reset";
@ -990,16 +963,6 @@ public class Navigation {
tree.addContent(ulSearch); tree.addContent(ulSearch);
} }
private void addAllClassesLinkScript(Content tree, boolean top) {
Content div = HtmlTree.DIV(top
? Position.TOP.allClassesLinkScript().asContent()
: Position.BOTTOM.allClassesLinkScript().asContent());
Content div_noscript = HtmlTree.DIV(contents.noScriptMessage);
Content noScript = HtmlTree.NOSCRIPT(div_noscript);
div.addContent(noScript);
tree.addContent(div);
}
private void addFixedNavScript(Content tree) { private void addFixedNavScript(Content tree) {
tree.addContent(FIXED_NAV_SCRIPT.asContent()); tree.addContent(FIXED_NAV_SCRIPT.asContent());
} }
@ -1046,26 +1009,6 @@ public class Navigation {
} }
HtmlTree subDiv = new HtmlTree(HtmlTag.DIV); HtmlTree subDiv = new HtmlTree(HtmlTag.DIV);
subDiv.setStyle(HtmlStyle.subNav); subDiv.setStyle(HtmlStyle.subNav);
HtmlTree ulFrames = new HtmlTree(HtmlTag.UL);
ulFrames.setStyle(HtmlStyle.navList);
if (!configuration.nonavbar) {
if (configuration.frames) {
addNavShowLists(ulFrames);
addNavHideLists(ulFrames);
}
}
subDiv.addContent(ulFrames);
HtmlTree ulAllClasses = new HtmlTree(HtmlTag.UL);
ulAllClasses.setStyle(HtmlStyle.navList);
ulAllClasses.addAttr(HtmlAttr.ID, top
? Position.TOP.allClassesLinkId()
: Position.BOTTOM.allClassesLinkId());
addNavLinkClassIndex(ulAllClasses);
subDiv.addContent(ulAllClasses);
if (top && configuration.createindex) {
addSearch(subDiv);
}
addAllClassesLinkScript(subDiv, top);
HtmlTree div = new HtmlTree(HtmlTag.DIV); HtmlTree div = new HtmlTree(HtmlTag.DIV);
// Add the summary links if present. // Add the summary links if present.
HtmlTree ulNavSummary = new HtmlTree(HtmlTag.UL); HtmlTree ulNavSummary = new HtmlTree(HtmlTag.UL);
@ -1077,10 +1020,22 @@ public class Navigation {
ulNavDetail.setStyle(HtmlStyle.subNavList); ulNavDetail.setStyle(HtmlStyle.subNavList);
addDetailLinks(ulNavDetail); addDetailLinks(ulNavDetail);
div.addContent(ulNavDetail); div.addContent(ulNavDetail);
HtmlTree ulFrames = new HtmlTree(HtmlTag.UL);
ulFrames.setStyle(HtmlStyle.navList);
if (!configuration.nonavbar) {
if (configuration.frames) {
addNavShowLists(ulFrames);
addNavHideLists(ulFrames);
}
}
div.addContent(ulFrames);
subDiv.addContent(div); subDiv.addContent(div);
subDiv.addContent(queue.poll()); if (top && configuration.createindex) {
addSearch(subDiv);
}
if (top) { if (top) {
fixedNavDiv.addContent(subDiv); fixedNavDiv.addContent(subDiv);
fixedNavDiv.addContent(queue.poll());
fixedNavDiv.addContent(Position.TOP.endOfNav()); fixedNavDiv.addContent(Position.TOP.endOfNav());
tree.addContent(fixedNavDiv); tree.addContent(fixedNavDiv);
HtmlTree paddingDiv = HtmlTree.DIV(HtmlStyle.navPadding, Contents.SPACE); HtmlTree paddingDiv = HtmlTree.DIV(HtmlStyle.navPadding, Contents.SPACE);
@ -1088,6 +1043,7 @@ public class Navigation {
addFixedNavScript(tree); addFixedNavScript(tree);
} else { } else {
tree.addContent(subDiv); tree.addContent(subDiv);
tree.addContent(queue.poll());
tree.addContent(Position.BOTTOM.endOfNav()); tree.addContent(Position.BOTTOM.endOfNav());
} }
return tree; return tree;

@ -168,8 +168,6 @@ doclet.help.frames.head=\
Frames/No Frames Frames/No Frames
doclet.help.frames.body=\ doclet.help.frames.body=\
These links show and hide the HTML frames. All pages are available with or without frames. These links show and hide the HTML frames. All pages are available with or without frames.
doclet.help.all_classes.body=\
The {0} link shows all classes and interfaces except non-static nested types.
doclet.help.serial_form.body=\ doclet.help.serial_form.body=\
Each serializable or externalizable class has a description of its serialization fields and \ Each serializable or externalizable class has a description of its serialization fields and \
methods. This information is of interest to re-implementors, not to developers using the API. \ methods. This information is of interest to re-implementors, not to developers using the API. \

@ -191,6 +191,9 @@ sup {
padding:0 0 5px 6px; padding:0 0 5px 6px;
text-transform:uppercase; text-transform:uppercase;
} }
.subNav .navList {
padding-top:5px;
}
ul.navList, ul.subNavList { ul.navList, ul.subNavList {
float:left; float:left;
margin:0 25px 0 0; margin:0 25px 0 0;
@ -220,6 +223,7 @@ ul.navListSearch li label {
ul.subNavList li { ul.subNavList li {
list-style:none; list-style:none;
float:left; float:left;
padding-top:10px;
} }
.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited { .topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
color:#FFFFFF; color:#FFFFFF;
@ -784,6 +788,7 @@ ul.ui-autocomplete li {
padding-left:20px; padding-left:20px;
position:relative; position:relative;
right:-18px; right:-18px;
width:400px;
} }
#reset { #reset {
background-color: rgb(255,255,255); background-color: rgb(255,255,255);

@ -51,6 +51,7 @@ public class WindowTitles extends JavadocTester {
"-sourcepath", testSrc, "-sourcepath", testSrc,
"p1", "p2"); "p1", "p2");
checkExit(Exit.OK); checkExit(Exit.OK);
checkFiles(false, "allclasses-noframe.html");
checkTitle("overview-summary.html", "Overview"); checkTitle("overview-summary.html", "Overview");
checkTitle("overview-tree.html", "Class Hierarchy"); checkTitle("overview-tree.html", "Class Hierarchy");
@ -61,7 +62,6 @@ public class WindowTitles extends JavadocTester {
checkTitle("p1/package-use.html", "Uses of Package p1"); checkTitle("p1/package-use.html", "Uses of Package p1");
checkTitle("p1/C1.html", "C1"); checkTitle("p1/C1.html", "C1");
checkTitle("allclasses-frame.html", "All Classes"); checkTitle("allclasses-frame.html", "All Classes");
checkTitle("allclasses-noframe.html", "All Classes");
checkTitle("constant-values.html", "Constant Field Values"); checkTitle("constant-values.html", "Constant Field Values");
checkTitle("deprecated-list.html", "Deprecated List"); checkTitle("deprecated-list.html", "Deprecated List");
checkTitle("serialized-form.html", "Serialized Form"); checkTitle("serialized-form.html", "Serialized Form");

@ -287,24 +287,19 @@ public class TestFramesNoFrames extends JavadocTester {
private void checkAllClassesFiles() { private void checkAllClassesFiles() {
// these files are only generated in frames mode // these files are only generated in frames mode
checkFiles(frames, checkFiles(frames,
"allclasses-frame.html", "allclasses-frame.html");
"allclasses-noframe.html");
// this file is only generated when not in frames mode checkFiles(false,
checkFiles(!frames,
"allclasses.html"); "allclasses.html");
checkFiles(false,
"allclasses-noframe.html");
if (frames) { if (frames) {
checkOutput("allclasses-frame.html", true, checkOutput("allclasses-frame.html", true,
classes.stream() classes.stream()
.map(c -> "title=\"class in " + packagePart(c) + "\" target=\"classFrame\">" + classPart(c) + "</a>") .map(c -> "title=\"class in " + packagePart(c) + "\" target=\"classFrame\">" + classPart(c) + "</a>")
.toArray(String[]::new)); .toArray(String[]::new));
checkOutput("allclasses-noframe.html", false,
"target=\"classFrame\">");
} else {
checkOutput("allclasses.html", false,
"target=\"classFrame\">");
} }
} }

@ -45,6 +45,7 @@ public class TestGeneratedBy extends JavadocTester {
"-sourcepath", testSrc, "-sourcepath", testSrc,
"pkg"); "pkg");
checkExit(Exit.OK); checkExit(Exit.OK);
checkFiles(false, "allclasses-noframe.html");
checkTimestamps(true); checkTimestamps(true);
} }
@ -57,6 +58,7 @@ public class TestGeneratedBy extends JavadocTester {
"-sourcepath", testSrc, "-sourcepath", testSrc,
"pkg"); "pkg");
checkExit(Exit.OK); checkExit(Exit.OK);
checkFiles(false, "allclasses-noframe.html");
checkTimestamps(false); checkTimestamps(false);
} }
@ -67,7 +69,6 @@ public class TestGeneratedBy extends JavadocTester {
"pkg/package-summary.html", "pkg/package-summary.html",
"pkg/package-frame.html", "pkg/package-frame.html",
"pkg/package-tree.html", "pkg/package-tree.html",
"allclasses-noframe.html",
"constant-values.html", "constant-values.html",
"allclasses-frame.html", "allclasses-frame.html",
"overview-tree.html", "overview-tree.html",

@ -117,14 +117,6 @@ public class TestHtmlVersion extends JavadocTester {
+ "<ul>\n" + "<ul>\n"
+ "<li>"); + "<li>");
// Test for allclasses-noframe page
checkOutput("allclasses-noframe.html", true,
"<!DOCTYPE HTML>",
"<meta name=\"dc.created\"",
"<main role=\"main\" class=\"indexContainer\">\n"
+ "<ul>\n"
+ "<li>");
// Test for overview-summary page // Test for overview-summary page
checkOutput("overview-summary.html", true, checkOutput("overview-summary.html", true,
"<!DOCTYPE HTML>", "<!DOCTYPE HTML>",
@ -655,14 +647,6 @@ public class TestHtmlVersion extends JavadocTester {
+ "<ul>\n" + "<ul>\n"
+ "<li>"); + "<li>");
// Negated test for allclasses-noframe page
checkOutput("allclasses-noframe.html", false,
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
"<meta name=\"date\"",
"<div class=\"indexContainer\">\n"
+ "<ul>\n"
+ "<li>");
// Negated test for overview-summary page // Negated test for overview-summary page
checkOutput("overview-summary.html", false, checkOutput("overview-summary.html", false,
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
@ -1088,14 +1072,6 @@ public class TestHtmlVersion extends JavadocTester {
+ "<ul>\n" + "<ul>\n"
+ "<li>"); + "<li>");
// Test for allclasses-noframe page
checkOutput("allclasses-noframe.html", true,
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
"<meta name=\"date\"",
"<div class=\"indexContainer\">\n"
+ "<ul>\n"
+ "<li>");
// Test for overview-summary page // Test for overview-summary page
checkOutput("overview-summary.html", true, checkOutput("overview-summary.html", true,
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
@ -1539,14 +1515,6 @@ public class TestHtmlVersion extends JavadocTester {
+ "<ul>\n" + "<ul>\n"
+ "<li>"); + "<li>");
// Negated test for allclasses-noframe page
checkOutput("allclasses-noframe.html", false,
"<!DOCTYPE HTML>",
"<meta name=\"dc.created\"",
"<main role=\"main\" class=\"indexContainer\">\n"
+ "<ul>\n"
+ "<li>");
// Negated test for overview-summary page // Negated test for overview-summary page
checkOutput("overview-summary.html", false, checkOutput("overview-summary.html", false,
"<!DOCTYPE HTML>", "<!DOCTYPE HTML>",

@ -102,7 +102,7 @@ public class TestModuleDirs extends JavadocTester {
+ "<li><a href=\"overview-frame.html\" target=\"packageListFrame\">All&nbsp;Packages</a></li>\n" + "<li><a href=\"overview-frame.html\" target=\"packageListFrame\">All&nbsp;Packages</a></li>\n"
+ "<li><a href=\"module-overview-frame.html\" target=\"packageListFrame\">All&nbsp;Modules</a></li>\n" + "<li><a href=\"module-overview-frame.html\" target=\"packageListFrame\">All&nbsp;Modules</a></li>\n"
+ "</ul>\n"); + "</ul>\n");
checkOutput("ma-summary.html", true, checkOutput("ma-summary.html", false,
"<ul class=\"navList\" id=\"allclasses_navbar_top\">\n" "<ul class=\"navList\" id=\"allclasses_navbar_top\">\n"
+ "<li><a href=\"allclasses-noframe.html\">All&nbsp;Classes</a></li>\n" + "<li><a href=\"allclasses-noframe.html\">All&nbsp;Classes</a></li>\n"
+ "</ul>\n"); + "</ul>\n");
@ -145,7 +145,7 @@ public class TestModuleDirs extends JavadocTester {
+ "<li><a href=\"../overview-frame.html\" target=\"packageListFrame\">All&nbsp;Packages</a></li>\n" + "<li><a href=\"../overview-frame.html\" target=\"packageListFrame\">All&nbsp;Packages</a></li>\n"
+ "<li><a href=\"../module-overview-frame.html\" target=\"packageListFrame\">All&nbsp;Modules</a></li>\n" + "<li><a href=\"../module-overview-frame.html\" target=\"packageListFrame\">All&nbsp;Modules</a></li>\n"
+ "</ul>\n"); + "</ul>\n");
checkOutput("ma/module-summary.html", true, checkOutput("ma/module-summary.html", false,
"<ul class=\"navList\" id=\"allclasses_navbar_top\">\n" "<ul class=\"navList\" id=\"allclasses_navbar_top\">\n"
+ "<li><a href=\"../allclasses-noframe.html\">All&nbsp;Classes</a></li>\n" + "<li><a href=\"../allclasses-noframe.html\">All&nbsp;Classes</a></li>\n"
+ "</ul>\n"); + "</ul>\n");

@ -1148,7 +1148,8 @@ public class TestModules extends JavadocTester {
"module-overview-frame.html"); "module-overview-frame.html");
checkFiles(true, checkFiles(true,
"moduleC/module-summary.html", "moduleC/module-summary.html",
"allclasses-frame.html", "allclasses-frame.html");
checkFiles(false,
"allclasses-noframe.html"); "allclasses-noframe.html");
} }

@ -81,34 +81,73 @@ public class TestModuleNavigation extends JavadocTester {
checkOutput("overview-summary.html", false, checkOutput("overview-summary.html", false,
"Prev", "Prev",
"Next"); "Next",
"All&nbsp;Classes",
"<script type=\"text/javascript\"><!--\n"
+ " allClassesLink = document.getElementById(\"allclasses_navbar_top\");",
"<script type=\"text/javascript\"><!--\n"
+ " allClassesLink = document.getElementById(\"allclasses_navbar_bottom\");");
checkOutput("m/module-summary.html", false, checkOutput("m/module-summary.html", false,
"Prev&nbsp;Module", "Prev&nbsp;Module",
"Next&nbsp;Module"); "Next&nbsp;Module",
"All&nbsp;Classes",
"<script type=\"text/javascript\"><!--\n"
+ " allClassesLink = document.getElementById(\"allclasses_navbar_top\");",
"<script type=\"text/javascript\"><!--\n"
+ " allClassesLink = document.getElementById(\"allclasses_navbar_bottom\");");
checkOutput("m2/m2p1/package-summary.html", false, checkOutput("m2/m2p1/package-summary.html", false,
"Prev&nbsp;Package", "Prev&nbsp;Package",
"Next&nbsp;Package"); "Next&nbsp;Package",
"All&nbsp;Classes",
"<script type=\"text/javascript\"><!--\n"
+ " allClassesLink = document.getElementById(\"allclasses_navbar_top\");",
"<script type=\"text/javascript\"><!--\n"
+ " allClassesLink = document.getElementById(\"allclasses_navbar_bottom\");");
checkOutput("m2/m2p1/Am2.html", false, checkOutput("m2/m2p1/Am2.html", false,
"Prev&nbsp;Class", "Prev&nbsp;Class",
"Next&nbsp;Class"); "Next&nbsp;Class",
"All&nbsp;Classes",
"<script type=\"text/javascript\"><!--\n"
+ " allClassesLink = document.getElementById(\"allclasses_navbar_top\");",
"<script type=\"text/javascript\"><!--\n"
+ " allClassesLink = document.getElementById(\"allclasses_navbar_bottom\");");
checkOutput("m2/m2p1/class-use/Am2.html", false, checkOutput("m2/m2p1/class-use/Am2.html", false,
"Prev", "Prev",
"Next"); "Next",
"All&nbsp;Classes",
"<script type=\"text/javascript\"><!--\n"
+ " allClassesLink = document.getElementById(\"allclasses_navbar_top\");",
"<script type=\"text/javascript\"><!--\n"
+ " allClassesLink = document.getElementById(\"allclasses_navbar_bottom\");");
checkOutput("m2/m2p1/package-tree.html", false, checkOutput("m2/m2p1/package-tree.html", false,
"Prev", "Prev",
"Next"); "Next",
"All&nbsp;Classes",
"<script type=\"text/javascript\"><!--\n"
+ " allClassesLink = document.getElementById(\"allclasses_navbar_top\");",
"<script type=\"text/javascript\"><!--\n"
+ " allClassesLink = document.getElementById(\"allclasses_navbar_bottom\");");
checkOutput("deprecated-list.html", false, checkOutput("deprecated-list.html", false,
"Prev", "Prev",
"Next"); "Next",
"All&nbsp;Classes",
"<script type=\"text/javascript\"><!--\n"
+ " allClassesLink = document.getElementById(\"allclasses_navbar_top\");",
"<script type=\"text/javascript\"><!--\n"
+ " allClassesLink = document.getElementById(\"allclasses_navbar_bottom\");");
checkOutput("index-all.html", false, checkOutput("index-all.html", false,
"Prev", "Prev",
"Next"); "Next",
"<script type=\"text/javascript\"><!--\n"
+ " allClassesLink = document.getElementById(\"allclasses_navbar_top\");",
"<script type=\"text/javascript\"><!--\n"
+ " allClassesLink = document.getElementById(\"allclasses_navbar_bottom\");");
} }
} }

@ -60,6 +60,7 @@ public class TestNavigation extends JavadocTester {
"-sourcepath", testSrc, "-sourcepath", testSrc,
"pkg"); "pkg");
checkExit(Exit.OK); checkExit(Exit.OK);
checkSubNav();
checkOutput("pkg/A.html", true, checkOutput("pkg/A.html", true,
"<ul class=\"navList\" title=\"Navigation\">\n" + "<ul class=\"navList\" title=\"Navigation\">\n" +
@ -117,6 +118,7 @@ public class TestNavigation extends JavadocTester {
"-sourcepath", testSrc, "-sourcepath", testSrc,
"pkg"); "pkg");
checkExit(Exit.OK); checkExit(Exit.OK);
checkSubNav();
checkOutput("pkg/I.html", true, checkOutput("pkg/I.html", true,
// Test for 4664607 // Test for 4664607
@ -156,6 +158,7 @@ public class TestNavigation extends JavadocTester {
"-sourcepath", testSrc, "-sourcepath", testSrc,
"pkg"); "pkg");
checkExit(Exit.OK); checkExit(Exit.OK);
checkSubNav();
checkOutput("pkg/A.html", true, checkOutput("pkg/A.html", true,
"<!-- ========= END OF TOP NAVBAR ========= -->\n" "<!-- ========= END OF TOP NAVBAR ========= -->\n"
@ -189,6 +192,7 @@ public class TestNavigation extends JavadocTester {
"-sourcepath", testSrc, "-sourcepath", testSrc,
"pkg"); "pkg");
checkExit(Exit.OK); checkExit(Exit.OK);
checkSubNav();
checkOutput("pkg/A.html", false, checkOutput("pkg/A.html", false,
"<!-- ========= END OF TOP NAVBAR ========= -->\n" "<!-- ========= END OF TOP NAVBAR ========= -->\n"
@ -221,6 +225,7 @@ public class TestNavigation extends JavadocTester {
"-sourcepath", testSrc, "-sourcepath", testSrc,
"pkg"); "pkg");
checkExit(Exit.OK); checkExit(Exit.OK);
checkSubNav();
checkOutput("pkg/A.html", false, checkOutput("pkg/A.html", false,
"<!-- ========= END OF TOP NAVBAR ========= -->\n" "<!-- ========= END OF TOP NAVBAR ========= -->\n"
@ -329,4 +334,42 @@ public class TestNavigation extends JavadocTester {
"<li>Constr&nbsp;|&nbsp;</li>", "<li>Constr&nbsp;|&nbsp;</li>",
"<li>Method</li>"); "<li>Method</li>");
} }
private void checkSubNav() {
checkOutput("pkg/A.html", false,
"All&nbsp;Classes",
"<script type=\"text/javascript\"><!--\n"
+ " allClassesLink = document.getElementById(\"allclasses_navbar_top\");",
"<script type=\"text/javascript\"><!--\n"
+ " allClassesLink = document.getElementById(\"allclasses_navbar_bottom\");");
checkOutput("pkg/C.html", false,
"All&nbsp;Classes",
"<script type=\"text/javascript\"><!--\n"
+ " allClassesLink = document.getElementById(\"allclasses_navbar_top\");",
"<script type=\"text/javascript\"><!--\n"
+ " allClassesLink = document.getElementById(\"allclasses_navbar_bottom\");");
checkOutput("pkg/E.html", false,
"All&nbsp;Classes",
"<script type=\"text/javascript\"><!--\n"
+ " allClassesLink = document.getElementById(\"allclasses_navbar_top\");",
"<script type=\"text/javascript\"><!--\n"
+ " allClassesLink = document.getElementById(\"allclasses_navbar_bottom\");");
checkOutput("pkg/I.html", false,
"All&nbsp;Classes",
"<script type=\"text/javascript\"><!--\n"
+ " allClassesLink = document.getElementById(\"allclasses_navbar_top\");",
"<script type=\"text/javascript\"><!--\n"
+ " allClassesLink = document.getElementById(\"allclasses_navbar_bottom\");");
checkOutput("pkg/package-summary.html", false,
"All&nbsp;Classes",
"<script type=\"text/javascript\"><!--\n"
+ " allClassesLink = document.getElementById(\"allclasses_navbar_top\");",
"<script type=\"text/javascript\"><!--\n"
+ " allClassesLink = document.getElementById(\"allclasses_navbar_bottom\");");
}
} }

@ -132,6 +132,7 @@ public class TestOrdering extends JavadocTester {
"--frames", "--frames",
"pkg1"); "pkg1");
tester.checkExit(Exit.OK); tester.checkExit(Exit.OK);
tester.checkFiles(false, "allclasses-noframe.html");
checkClassUseOrdering("pkg1/class-use/UsedClass.html"); checkClassUseOrdering("pkg1/class-use/UsedClass.html");
@ -182,20 +183,6 @@ public class TestOrdering extends JavadocTester {
"<dd><code>iterator</code>&nbsp;in interface&nbsp;<code>java.util.Collection&lt;", "<dd><code>iterator</code>&nbsp;in interface&nbsp;<code>java.util.Collection&lt;",
"<dd><code>iterator</code>&nbsp;in interface&nbsp;<code>java.lang.Iterable&lt;"); "<dd><code>iterator</code>&nbsp;in interface&nbsp;<code>java.lang.Iterable&lt;");
tester.checkOrder("allclasses-noframe.html",
"pkg1/A.html\" title=\"class in pkg1",
"pkg1/A.C.html\" title=\"class in pkg1",
"pkg1/B.html\" title=\"class in pkg1",
"pkg1/B.A.html\" title=\"class in pkg1",
"pkg1/C1.html\" title=\"class in pkg1",
"pkg1/C2.html\" title=\"class in pkg1",
"pkg1/C3.html\" title=\"class in pkg1",
"pkg1/C4.html\" title=\"class in pkg1",
"pkg1/ImplementsOrdering.html\" title=\"interface in pkg1",
"pkg1/MethodOrder.html\" title=\"class in pkg1",
"pkg1/OverrideOrdering.html\" title=\"class in pkg1",
"pkg1/UsedClass.html\" title=\"class in pkg1");
tester.checkOrder("allclasses-frame.html", tester.checkOrder("allclasses-frame.html",
"pkg1/A.html\" title=\"class in pkg1", "pkg1/A.html\" title=\"class in pkg1",
"pkg1/A.C.html\" title=\"class in pkg1", "pkg1/A.C.html\" title=\"class in pkg1",

@ -190,7 +190,6 @@ class APITest {
* Standard files generated by processing a documented class pkg.C. * Standard files generated by processing a documented class pkg.C.
*/ */
protected static Set<String> standardExpectFiles = new HashSet<>(Arrays.asList( protected static Set<String> standardExpectFiles = new HashSet<>(Arrays.asList(
"allclasses.html",
"allclasses-index.html", "allclasses-index.html",
"allpackages-index.html", "allpackages-index.html",
"constant-values.html", "constant-values.html",

@ -190,7 +190,6 @@ class APITest {
* Standard files generated by processing a documented class pkg.C. * Standard files generated by processing a documented class pkg.C.
*/ */
protected static Set<String> standardExpectFiles = new HashSet<>(Arrays.asList( protected static Set<String> standardExpectFiles = new HashSet<>(Arrays.asList(
"allclasses.html",
"allclasses-index.html", "allclasses-index.html",
"allpackages-index.html", "allpackages-index.html",
"constant-values.html", "constant-values.html",