TestNavigation.java revision 3300:d52219fa3026
1/* 2 * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. 8 * 9 * This code is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * version 2 for more details (a copy is included in the LICENSE file that 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 */ 23 24/* 25 * @test 26 * @bug 4131628 4664607 7025314 8023700 7198273 8025633 8026567 8081854 8150188 27 * @summary Make sure the Next/Prev Class links iterate through all types. 28 * Make sure the navagation is 2 columns, not 3. 29 * @author jamieh 30 * @library ../lib 31 * @modules jdk.javadoc/jdk.javadoc.internal.tool 32 * @build JavadocTester 33 * @run main TestNavigation 34 */ 35 36public class TestNavigation extends JavadocTester { 37 38 public static void main(String... args) throws Exception { 39 TestNavigation tester = new TestNavigation(); 40 tester.runTests(); 41 } 42 43 @Test 44 void test() { 45 javadoc("-d", "out", "-overview", testSrc("overview.html"), 46 "-sourcepath", testSrc, 47 "pkg"); 48 checkExit(Exit.OK); 49 50 checkOutput("pkg/A.html", true, 51 "<li>Prev Class</li>", 52 "<a href=\"../pkg/C.html\" title=\"class in pkg\"><span class=\"typeNameLink\">Next Class</span></a>", 53 "<li><a href=\"../overview-summary.html\">Overview</a></li>"); 54 55 checkOutput("pkg/C.html", true, 56 "<a href=\"../pkg/A.html\" title=\"annotation in pkg\"><span class=\"typeNameLink\">Prev Class</span></a>", 57 "<a href=\"../pkg/E.html\" title=\"enum in pkg\"><span class=\"typeNameLink\">Next Class</span></a>", 58 "<li><a href=\"../overview-summary.html\">Overview</a></li>"); 59 60 checkOutput("pkg/E.html", true, 61 "<a href=\"../pkg/C.html\" title=\"class in pkg\"><span class=\"typeNameLink\">Prev Class</span></a>", 62 "<a href=\"../pkg/I.html\" title=\"interface in pkg\"><span class=\"typeNameLink\">Next Class</span></a>", 63 "<li><a href=\"../overview-summary.html\">Overview</a></li>"); 64 65 checkOutput("pkg/I.html", true, 66 "<a href=\"../pkg/E.html\" title=\"enum in pkg\"><span class=\"typeNameLink\">Prev Class</span></a>", 67 "<li>Next Class</li>", 68 // Test for 4664607 69 "<div class=\"skipNav\"><a href=\"#skip.navbar.top\" title=\"Skip navigation links\">Skip navigation links</a></div>\n" 70 + "<a name=\"navbar.top.firstrow\">\n" 71 + "<!-- -->\n" 72 + "</a>", 73 "<li><a href=\"../overview-summary.html\">Overview</a></li>"); 74 75 // Remaining tests check for additional padding to offset the fixed navigation bar. 76 checkOutput("pkg/A.html", true, 77 "<!-- ========= END OF TOP NAVBAR ========= -->\n" 78 + "</div>\n" 79 + "<div class=\"navPadding\"> </div>\n" 80 + "<!-- ======== START OF CLASS DATA ======== -->"); 81 82 checkOutput("pkg/package-summary.html", true, 83 "<!-- ========= END OF TOP NAVBAR ========= -->\n" 84 + "</div>\n" 85 + "<div class=\"navPadding\"> </div>\n" 86 + "<div class=\"header\">"); 87 } 88 89 // Test for checking additional padding to offset the fixed navigation bar in HTML5. 90 @Test 91 void test1() { 92 javadoc("-d", "out-1", "-html5", 93 "-sourcepath", testSrc, 94 "pkg"); 95 checkExit(Exit.OK); 96 97 checkOutput("pkg/A.html", true, 98 "<!-- ========= END OF TOP NAVBAR ========= -->\n" 99 + "</div>\n" 100 + "<div class=\"navPadding\"> </div>\n" 101 + "</nav>\n" 102 + "</header>\n" 103 + "<!-- ======== START OF CLASS DATA ======== -->"); 104 105 checkOutput("pkg/package-summary.html", true, 106 "<!-- ========= END OF TOP NAVBAR ========= -->\n" 107 + "</div>\n" 108 + "<div class=\"navPadding\"> </div>\n" 109 + "</nav>"); 110 } 111 112 // Test to make sure that no extra padding for nav bar gets generated if -nonavbar is specified for HTML4. 113 @Test 114 void test2() { 115 javadoc("-d", "out-2", "-nonavbar", 116 "-sourcepath", testSrc, 117 "pkg"); 118 checkExit(Exit.OK); 119 120 checkOutput("pkg/A.html", false, 121 "<!-- ========= END OF TOP NAVBAR ========= -->\n" 122 + "</div>\n" 123 + "<div class=\"navPadding\"> </div>\n" 124 + "<!-- ======== START OF CLASS DATA ======== -->"); 125 126 checkOutput("pkg/package-summary.html", false, 127 "<!-- ========= END OF TOP NAVBAR ========= -->\n" 128 + "</div>\n" 129 + "<div class=\"navPadding\"> </div>\n" 130 + "<div class=\"header\">"); 131 } 132 133 // Test to make sure that no extra padding for nav bar gets generated if -nonavbar is specified for HTML5. 134 @Test 135 void test3() { 136 javadoc("-d", "out-3", "-html5", "-nonavbar", 137 "-sourcepath", testSrc, 138 "pkg"); 139 checkExit(Exit.OK); 140 141 checkOutput("pkg/A.html", false, 142 "<!-- ========= END OF TOP NAVBAR ========= -->\n" 143 + "</div>\n" 144 + "<div class=\"navPadding\"> </div>\n" 145 + "</nav>\n" 146 + "</header>\n" 147 + "<!-- ======== START OF CLASS DATA ======== -->"); 148 149 checkOutput("pkg/package-summary.html", false, 150 "<!-- ========= END OF TOP NAVBAR ========= -->\n" 151 + "</div>\n" 152 + "<div class=\"navPadding\"> </div>\n" 153 + "</nav>"); 154 } 155} 156