1 /* 2 * Copyright (c) 2015, 2019, 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 8072945 8081854 8141492 8148985 8150188 4649116 8173707 8151743 8169819 8183037 8182765 8196202 27 * 8202624 8210047 8184205 8221871 8223733 8223378 28 * @summary Test the version of HTML generated by the javadoc tool. 29 * @library ../../lib 30 * @modules jdk.javadoc/jdk.javadoc.internal.tool 31 * @build javadoc.tester.* 32 * @run main TestHtmlVersion 33 */ 34 35 import javadoc.tester.JavadocTester; 36 37 public class TestHtmlVersion extends JavadocTester { 38 39 public static void main(String... args) throws Exception { 40 TestHtmlVersion tester = new TestHtmlVersion(); 41 tester.runTests(); 42 } 43 44 @Test 45 public void test1() { 46 javadoc("-d", "out-1", 47 "-private", 48 "-linksource", 49 "-sourcepath", testSrc, 50 "-use", 51 "pkg", "pkg1", "pkg2", "pkg3"); 52 checkExit(Exit.OK); 53 54 html5Output(); 55 html5NegatedOutput(); 56 } 57 58 @Test 59 public void test4() { 60 javadoc("-d", "out-4", 61 "-private", 62 "-linksource", 63 "-sourcepath", testSrc, 64 "-use", 65 "pkg3"); 66 checkExit(Exit.OK); 67 } 68 69 void html5Output() { 70 // Test for overview-summary page 71 checkOutput("index.html", true, 72 "<!DOCTYPE HTML>", 73 "<meta name=\"dc.created\"", 74 "<ul id=\"navbar.top.firstrow\" class=\"navList\" title=\"Navigation\">\n", 75 "<div class=\"overviewSummary\">\n" 76 + "<table>\n" 77 + "<caption>", 78 "<header role=\"banner\" class=\"flexHeader\">\n" 79 + "<nav role=\"navigation\">\n" 80 + "<!-- ========= START OF TOP NAVBAR ======= -->", 81 "<footer role=\"contentinfo\">\n" 82 + "<nav role=\"navigation\">\n" 83 + "<!-- ======= START OF BOTTOM NAVBAR ====== -->"); 84 85 // Test for package-summary page 86 checkOutput("pkg/package-summary.html", true, 87 "<!DOCTYPE HTML>", 88 "<meta name=\"dc.created\"", 89 "<ul id=\"navbar.top.firstrow\" class=\"navList\" title=\"Navigation\">\n", 90 "<div class=\"typeSummary\">\n<table>", 91 "<header role=\"banner\" class=\"flexHeader\">\n" 92 + "<nav role=\"navigation\">\n" 93 + "<!-- ========= START OF TOP NAVBAR ======= -->", 94 "<main role=\"main\">\n" 95 + "<div class=\"header\">", 96 "<section class=\"packageDescription\" id=\"package.description\">\n" 97 + "<div class=\"block\">Test package.</div>", 98 "<footer role=\"contentinfo\">\n" 99 + "<nav role=\"navigation\">\n" 100 + "<!-- ======= START OF BOTTOM NAVBAR ====== -->"); 101 // No package description 102 checkOutput("pkg1/package-summary.html", true, 103 "<div class=\"contentContainer\">\n" 104 + "<section class=\"summary\">\n" 105 + "<ul class=\"blockList\">\n" 106 + "<li class=\"blockList\">\n" 107 + "<div class=\"typeSummary\">\n<table>\n" 108 + "<caption><span>Class Summary</span><span class=\"tabEnd\"> </span></caption>"); 109 110 // Test for package-tree page 111 checkOutput("pkg/package-tree.html", true, 112 "<!DOCTYPE HTML>", 113 "<meta name=\"dc.created\"", 114 "<ul id=\"navbar.top.firstrow\" class=\"navList\" title=\"Navigation\">\n", 115 "<li class=\"circle\">", 116 "<header role=\"banner\" class=\"flexHeader\">\n" 117 + "<nav role=\"navigation\">\n" 118 + "<!-- ========= START OF TOP NAVBAR ======= -->", 119 "<main role=\"main\">\n" 120 + "<div class=\"header\">", 121 "<section class=\"hierarchy\">\n" 122 + "<h2 title=\"Class Hierarchy\">Class Hierarchy</h2>", 123 "<section class=\"hierarchy\">\n" 124 + "<h2 title=\"Interface Hierarchy\">Interface Hierarchy</h2>", 125 "<section class=\"hierarchy\">\n" 126 + "<h2 title=\"Annotation Type Hierarchy\">Annotation Type Hierarchy</h2>", 127 "<section class=\"hierarchy\">\n" 128 + "<h2 title=\"Enum Hierarchy\">Enum Hierarchy</h2>", 129 "<footer role=\"contentinfo\">\n" 130 + "<nav role=\"navigation\">\n" 131 + "<!-- ======= START OF BOTTOM NAVBAR ====== -->"); 132 133 // Test for package-use page 134 checkOutput("pkg1/package-use.html", true, 135 "<!DOCTYPE HTML>", 136 "<meta name=\"dc.created\"", 137 "<ul id=\"navbar.top.firstrow\" class=\"navList\" title=\"Navigation\">\n", 138 "<div class=\"useSummary\">\n<table>", 139 "<header role=\"banner\" class=\"flexHeader\">\n" 140 + "<nav role=\"navigation\">\n" 141 + "<!-- ========= START OF TOP NAVBAR ======= -->", 142 "<main role=\"main\">\n" 143 + "<div class=\"header\">", 144 "<footer role=\"contentinfo\">\n" 145 + "<nav role=\"navigation\">\n" 146 + "<!-- ======= START OF BOTTOM NAVBAR ====== -->"); 147 148 // Test for constant-values page 149 checkOutput("constant-values.html", true, 150 "<!DOCTYPE HTML>", 151 "<meta name=\"dc.created\"", 152 "<ul id=\"navbar.top.firstrow\" class=\"navList\" title=\"Navigation\">\n", 153 "<div class=\"constantsSummary\">\n<table>", 154 "<header role=\"banner\" class=\"flexHeader\">\n" 155 + "<nav role=\"navigation\">\n" 156 + "<!-- ========= START OF TOP NAVBAR ======= -->", 157 "<main role=\"main\">\n" 158 + "<div class=\"header\">", 159 "<section class=\"packages\">\n" 160 + "<h2 title=\"Contents\">Contents</h2>\n", 161 "<section class=\"constantsSummary\" id=\"pkg\">\n" 162 + "<h2 title=\"pkg\">pkg.*</h2>\n", 163 "<footer role=\"contentinfo\">\n" 164 + "<nav role=\"navigation\">\n" 165 + "<!-- ======= START OF BOTTOM NAVBAR ====== -->"); 166 167 // Test for deprecated-list page 168 checkOutput("deprecated-list.html", true, 169 "<!DOCTYPE HTML>", 170 "<meta name=\"dc.created\"", 171 "<ul id=\"navbar.top.firstrow\" class=\"navList\" title=\"Navigation\">\n", 172 "<div class=\"deprecatedSummary\" id=\"class\">\n<table>", 173 "<header role=\"banner\" class=\"flexHeader\">\n" 174 + "<nav role=\"navigation\">\n" 175 + "<!-- ========= START OF TOP NAVBAR ======= -->", 176 "<main role=\"main\">\n" 177 + "<div class=\"header\">", 178 "<footer role=\"contentinfo\">\n" 179 + "<nav role=\"navigation\">\n" 180 + "<!-- ======= START OF BOTTOM NAVBAR ====== -->"); 181 182 // Test for serialized-form page 183 checkOutput("serialized-form.html", true, 184 "<!DOCTYPE HTML>", 185 "<meta name=\"dc.created\"", 186 "<ul id=\"navbar.top.firstrow\" class=\"navList\" title=\"Navigation\">\n", 187 "<header role=\"banner\" class=\"flexHeader\">\n" 188 + "<nav role=\"navigation\">\n" 189 + "<!-- ========= START OF TOP NAVBAR ======= -->", 190 "<main role=\"main\">\n" 191 + "<div class=\"header\">", 192 "<section class=\"serializedPackageContainer\">\n" 193 + "<h2 title=\"Package\">Package pkg</h2>\n", 194 "<footer role=\"contentinfo\">\n" 195 + "<nav role=\"navigation\">\n" 196 + "<!-- ======= START OF BOTTOM NAVBAR ====== -->"); 197 198 // Test for overview-tree page 199 checkOutput("overview-tree.html", true, 200 "<!DOCTYPE HTML>", 201 "<meta name=\"dc.created\"", 202 "<ul id=\"navbar.top.firstrow\" class=\"navList\" title=\"Navigation\">\n", 203 "<li class=\"circle\">", 204 "<header role=\"banner\" class=\"flexHeader\">\n" 205 + "<nav role=\"navigation\">\n" 206 + "<!-- ========= START OF TOP NAVBAR ======= -->", 207 "<main role=\"main\">\n" 208 + "<div class=\"header\">", 209 "<section class=\"hierarchy\">\n" 210 + "<h2 title=\"Class Hierarchy\">Class Hierarchy</h2>\n", 211 "<section class=\"hierarchy\">\n" 212 + "<h2 title=\"Interface Hierarchy\">Interface Hierarchy</h2>\n", 213 "<section class=\"hierarchy\">\n" 214 + "<h2 title=\"Annotation Type Hierarchy\">Annotation Type Hierarchy</h2>\n", 215 "<section class=\"hierarchy\">\n" 216 + "<h2 title=\"Enum Hierarchy\">Enum Hierarchy</h2>\n", 217 "<footer role=\"contentinfo\">\n" 218 + "<nav role=\"navigation\">\n" 219 + "<!-- ======= START OF BOTTOM NAVBAR ====== -->"); 220 221 // Test for index-all page 222 checkOutput("index-all.html", true, 223 "<!DOCTYPE HTML>", 224 "<meta name=\"dc.created\"", 225 "<ul id=\"navbar.top.firstrow\" class=\"navList\" title=\"Navigation\">\n", 226 "<header role=\"banner\" class=\"flexHeader\">\n" 227 + "<nav role=\"navigation\">\n" 228 + "<!-- ========= START OF TOP NAVBAR ======= -->", 229 "</header>\n" 230 + "<div class=\"flexContent\">\n" 231 + "<main role=\"main\">", 232 "<footer role=\"contentinfo\">\n" 233 + "<nav role=\"navigation\">\n" 234 + "<!-- ======= START OF BOTTOM NAVBAR ====== -->"); 235 236 // Test for src-html page 237 checkOutput("src-html/pkg/AnotherClass.html", true, 238 "<!DOCTYPE HTML>", 239 "<main role=\"main\">\n" 240 + "<div class=\"sourceContainer\">"); 241 242 // Test for help-doc page 243 checkOutput("help-doc.html", true, 244 "<!DOCTYPE HTML>", 245 "<meta name=\"dc.created\"", 246 "<ul id=\"navbar.top.firstrow\" class=\"navList\" title=\"Navigation\">\n", 247 "<header role=\"banner\" class=\"flexHeader\">\n" 248 + "<nav role=\"navigation\">\n" 249 + "<!-- ========= START OF TOP NAVBAR ======= -->", 250 "<main role=\"main\">\n" 251 + "<div class=\"header\">", 252 "<section class=\"helpSection\">\n" 253 + "<h2>Overview</h2>\n", 254 "<section class=\"helpSection\">\n" 255 + "<h2>Package</h2>\n", 256 "<section class=\"helpSection\">\n" 257 + "<h2>Class or Interface</h2>\n", 258 "<footer role=\"contentinfo\">\n" 259 + "<nav role=\"navigation\">\n" 260 + "<!-- ======= START OF BOTTOM NAVBAR ====== -->"); 261 262 // Test for a regular class page and members (nested class, field, constructore and method) 263 checkOutput("pkg/AnotherClass.html", true, 264 "<!DOCTYPE HTML>", 265 "<meta name=\"dc.created\"", 266 "<ul id=\"navbar.top.firstrow\" class=\"navList\" title=\"Navigation\">\n", 267 "<header role=\"banner\" class=\"flexHeader\">\n" 268 + "<nav role=\"navigation\">\n" 269 + "<!-- ========= START OF TOP NAVBAR ======= -->", 270 "<main role=\"main\">\n" 271 + "<!-- ======== START OF CLASS DATA ======== -->\n" 272 + "<div class=\"header\">", 273 "<section class=\"nestedClassSummary\" id=\"nested.class.summary\">\n" 274 + "<h2>Nested Class Summary</h2>\n" 275 + "<div class=\"memberSummary\">\n<table>", 276 "<section class=\"fieldSummary\" id=\"field.summary\">\n" 277 + "<h2>Field Summary</h2>\n" 278 + "<div class=\"memberSummary\">\n<table>", 279 "<section class=\"constructorSummary\" id=\"constructor.summary\">\n" 280 + "<h2>Constructor Summary</h2>\n" 281 + "<div class=\"memberSummary\">\n<table>", 282 "<section class=\"methodSummary\" id=\"method.summary\">\n" 283 + "<h2>Method Summary</h2>", 284 "<section class=\"fieldDetails\" id=\"field.detail\">\n" 285 + "<h2>Field Details</h2>\n", 286 "<section class=\"constructorDetails\" id=\"constructor.detail\">\n" 287 + "<h2>Constructor Details</h2>\n", 288 "<section class=\"methodDetails\" id=\"method.detail\">\n" 289 + "<h2>Method Details</h2>\n", 290 "<footer role=\"contentinfo\">\n" 291 + "<nav role=\"navigation\">\n" 292 + "<!-- ======= START OF BOTTOM NAVBAR ====== -->"); 293 294 // Test for enum page 295 checkOutput("pkg/AnotherClass.ModalExclusionType.html", true, 296 "<!DOCTYPE HTML>", 297 "<meta name=\"dc.created\"", 298 "<ul id=\"navbar.top.firstrow\" class=\"navList\" title=\"Navigation\">\n", 299 "<header role=\"banner\" class=\"flexHeader\">\n" 300 + "<nav role=\"navigation\">\n" 301 + "<!-- ========= START OF TOP NAVBAR ======= -->", 302 "<main role=\"main\">\n" 303 + "<!-- ======== START OF CLASS DATA ======== -->\n" 304 + "<div class=\"header\">", 305 "<section class=\"constantsSummary\" id=\"enum.constant.summary\">\n" 306 + "<h2>Enum Constant Summary</h2>\n" 307 + "<div class=\"memberSummary\">\n", 308 "<table aria-labelledby=\"t0\">\n", 309 "<section class=\"methodSummary\" id=\"method.summary\">\n" 310 + "<h2>Method Summary</h2>\n" 311 + "<div class=\"memberSummary\">\n", 312 "<table aria-labelledby=\"t0\">", 313 "<section class=\"constantDetails\" id=\"enum.constant.detail\">\n" 314 + "<h2>Enum Constant Details</h2>\n", 315 "<section class=\"methodDetails\" id=\"method.detail\">\n" 316 + "<h2>Method Details</h2>\n", 317 "<footer role=\"contentinfo\">\n" 318 + "<nav role=\"navigation\">\n" 319 + "<!-- ======= START OF BOTTOM NAVBAR ====== -->"); 320 321 // Test for interface page 322 checkOutput("pkg2/Interface.html", true, 323 "<!DOCTYPE HTML>", 324 "<meta name=\"dc.created\"", 325 "<ul id=\"navbar.top.firstrow\" class=\"navList\" title=\"Navigation\">\n", 326 "<header role=\"banner\" class=\"flexHeader\">\n" 327 + "<nav role=\"navigation\">\n" 328 + "<!-- ========= START OF TOP NAVBAR ======= -->", 329 "<main role=\"main\">\n" 330 + "<!-- ======== START OF CLASS DATA ======== -->\n" 331 + "<div class=\"header\">", 332 "<section class=\"methodSummary\" id=\"method.summary\">\n" 333 + "<h2>Method Summary</h2>\n" 334 + "<div class=\"memberSummary\">\n", 335 "<table aria-labelledby=\"t0\">\n", 336 "<section class=\"methodDetails\" id=\"method.detail\">\n" 337 + "<h2>Method Details</h2>\n", 338 "<footer role=\"contentinfo\">\n" 339 + "<nav role=\"navigation\">\n" 340 + "<!-- ======= START OF BOTTOM NAVBAR ====== -->"); 341 342 // Test for error page 343 checkOutput("pkg/TestError.html", true, 344 "<!DOCTYPE HTML>", 345 "<meta name=\"dc.created\"", 346 "<ul id=\"navbar.top.firstrow\" class=\"navList\" title=\"Navigation\">\n", 347 "<header role=\"banner\" class=\"flexHeader\">\n" 348 + "<nav role=\"navigation\">\n" 349 + "<!-- ========= START OF TOP NAVBAR ======= -->", 350 "<main role=\"main\">\n" 351 + "<!-- ======== START OF CLASS DATA ======== -->\n" 352 + "<div class=\"header\">", 353 "<section class=\"constructorSummary\" id=\"constructor.summary\">\n" 354 + "<h2>Constructor Summary</h2>", 355 "<section class=\"constructorDetails\" id=\"constructor.detail\">\n" 356 + "<h2>Constructor Details</h2>\n", 357 "<footer role=\"contentinfo\">\n" 358 + "<nav role=\"navigation\">\n" 359 + "<!-- ======= START OF BOTTOM NAVBAR ====== -->"); 360 361 // Test for exception page 362 checkOutput("pkg/TestException.html", true, 363 "<!DOCTYPE HTML>", 364 "<meta name=\"dc.created\"", 365 "<ul id=\"navbar.top.firstrow\" class=\"navList\" title=\"Navigation\">\n", 366 "<header role=\"banner\" class=\"flexHeader\">\n" 367 + "<nav role=\"navigation\">\n" 368 + "<!-- ========= START OF TOP NAVBAR ======= -->", 369 "<main role=\"main\">\n" 370 + "<!-- ======== START OF CLASS DATA ======== -->\n" 371 + "<div class=\"header\">", 372 "<section class=\"constructorSummary\" id=\"constructor.summary\">\n" 373 + "<h2>Constructor Summary</h2>", 374 "<section class=\"constructorDetails\" id=\"constructor.detail\">\n" 375 + "<h2>Constructor Details</h2>\n", 376 "<footer role=\"contentinfo\">\n" 377 + "<nav role=\"navigation\">\n" 378 + "<!-- ======= START OF BOTTOM NAVBAR ====== -->"); 379 380 // Test for annotation page 381 checkOutput("pkg2/TestAnnotationType.html", true, 382 "<!DOCTYPE HTML>", 383 "<meta name=\"dc.created\"", 384 "<ul id=\"navbar.top.firstrow\" class=\"navList\" title=\"Navigation\">\n", 385 "<header role=\"banner\" class=\"flexHeader\">\n" 386 + "<nav role=\"navigation\">\n" 387 + "<!-- ========= START OF TOP NAVBAR ======= -->", 388 "<main role=\"main\">\n" 389 + "<!-- ======== START OF CLASS DATA ======== -->\n" 390 + "<div class=\"header\">", 391 "<section class=\"memberSummary\" id=\"annotation.type.required.element.summary\">\n" 392 + "<h2>Required Element Summary</h2>\n" 393 + "<div class=\"memberSummary\">\n<table>", 394 "<section class=\"memberSummary\" id=\"annotation.type.optional.element.summary\">\n" 395 + "<h2>Optional Element Summary</h2>\n" 396 + "<div class=\"memberSummary\">\n<table>", 397 "<section class=\"details\" id=\"annotation.type.element.detail\">\n" 398 + "<ul class=\"blockList\">\n" 399 + "<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->\n" 400 + "<li class=\"blockList\">\n" 401 + "<section class=\"memberDetails\">\n" 402 + "<h2>Element Details</h2>\n", 403 "<footer role=\"contentinfo\">\n" 404 + "<nav role=\"navigation\">\n" 405 + "<!-- ======= START OF BOTTOM NAVBAR ====== -->"); 406 407 // Test for class use page 408 checkOutput("pkg1/class-use/RegClass.html", true, 409 "<!DOCTYPE HTML>", 410 "<meta name=\"dc.created\"", 411 "<ul id=\"navbar.top.firstrow\" class=\"navList\" title=\"Navigation\">\n", 412 "<header role=\"banner\" class=\"flexHeader\">\n" 413 + "<nav role=\"navigation\">\n" 414 + "<!-- ========= START OF TOP NAVBAR ======= -->", 415 "<main role=\"main\">\n" 416 + "<div class=\"header\">", 417 "<div class=\"useSummary\">\n<table>", 418 "<section class=\"detail\" id=\"pkg\">\n" 419 + "<h2>Uses of <a href=\"../RegClass.html\" title=\"class in pkg1\">RegClass</a> in <a href=\"../../pkg/package-summary.html\">pkg</a></h2>\n" 420 + "<div class=\"useSummary\">\n<table>", 421 "<footer role=\"contentinfo\">\n" 422 + "<nav role=\"navigation\">\n" 423 + "<!-- ======= START OF BOTTOM NAVBAR ====== -->"); 424 } 425 426 void html5NegatedOutput() { 427 // Negated test for overview-summary page 428 checkOutput("overview-summary.html", false, 429 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">", 430 "<meta name=\"date\"", 431 "<a name=\"navbar.top.firstrow\">\n" 432 + "<!-- -->\n" 433 + "</a>", 434 "<table summary=\"Package Summary table, listing packages, and an explanation\">\n" 435 + "<caption>", 436 "</noscript>\n" 437 + "<!-- ========= START OF TOP NAVBAR ======= -->"); 438 439 // Negated test for package-summary page 440 checkOutput("pkg/package-summary.html", false, 441 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">", 442 "<meta name=\"date\"", 443 "<a name=\"navbar.top.firstrow\">\n" 444 + "<!-- -->\n" 445 + "</a>", 446 "<section>\n" 447 + "<h2 title=\"PackagAnotherClass.ModalExclusionType.htmle pkg Description\">Package pkg Description</h2>\n", 448 "<div class=\"typeSummary\">\n<table summary=\"Interface Summary table, listing interfaces, and an explanation\">", 449 "<div class=\"typeSummary\">\n<table summary=\"Class Summary table, listing classes, and an explanation\">", 450 "<div class=\"typeSummary\">\n<table summary=\"Enum Summary table, listing enums, and an explanation\">", 451 "<div class=\"typeSummary\">\n<table summary=\"Exception Summary table, listing exceptions, and an explanation\">", 452 "<div class=\"typeSummary\">\n<table summary=\"Error Summary table, listing errors, and an explanation\">", 453 "<div class=\"typeSummary\">\n<table summary=\"Annotation Types Summary table, listing annotation types, and an explanation\">"); 454 455 // Negated test for package-tree page 456 checkOutput("pkg/package-tree.html", false, 457 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">", 458 "<meta name=\"date\"", 459 "<a name=\"navbar.top.firstrow\">\n" 460 + "<!-- -->\n" 461 + "</a>"); 462 463 // Negated test for package-use page 464 checkOutput("pkg1/package-use.html", false, 465 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">", 466 "<meta name=\"date\"", 467 "<a name=\"navbar.top.firstrow\">\n" 468 + "<!-- -->\n" 469 + "</a>", 470 "<div class=\"useSummary\">\n" 471 + "<table summary=\"Use table, listing packages, and an explanation\">"); 472 473 // Negated test for constant-values page 474 checkOutput("constant-values.html", false, 475 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">", 476 "<meta name=\"date\"", 477 "<a name=\"navbar.top.firstrow\">\n" 478 + "<!-- -->\n" 479 + "</a>", 480 "<!-- ========= END OF TOP NAVBAR ========= -->\n" 481 + "</div>\n" 482 + "<div class=\"header\">", 483 "<div class=\"constantsSummary\">\n" 484 + "<table summary=\"Constant Field Values table, listing constant fields, and values\">"); 485 486 // Negated test for deprecated-list page 487 checkOutput("deprecated-list.html", false, 488 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">", 489 "<meta name=\"date\"", 490 "<a name=\"navbar.top.firstrow\">\n" 491 + "<!-- -->\n" 492 + "</a>", 493 "<!-- ========= END OF TOP NAVBAR ========= -->\n" 494 + "</div>\n" 495 + "<div class=\"header\">\n" 496 + "<h1 title=\"Deprecated API\" class=\"title\">Deprecated API</h1>\n" 497 + "<h2 title=\"Contents\">Contents</h2>", 498 "<div class=\"deprecatedSummary\">\n<table summary=\"Classes table, listing classes, and an explanation\">", 499 "<div class=\"deprecatedSummary\">\n<table summary=\"Enums table, listing enums, and an explanation\">", 500 "<div class=\"deprecatedSummary\">\n<table summary=\"Exceptions table, listing exceptions, and an explanation\">", 501 "<div class=\"deprecatedSummary\">\n<table summary=\"Errors table, listing errors, and an explanation\">", 502 "<div class=\"deprecatedSummary\">\n<table summary=\"Annotation Types table, listing annotation types, and an explanation\">", 503 "<div class=\"deprecatedSummary\">\n<table summary=\"Fields table, listing fields, and an explanation\">", 504 "<div class=\"deprecatedSummary\">\n<table summary=\"Methods table, listing methods, and an explanation\">", 505 "<div class=\"deprecatedSummary\">\n<table summary=\"Constructors table, listing constructors, and an explanation\">", 506 "<div class=\"deprecatedSummary\">\n<table summary=\"Enum Constants table, listing enum constants, and an explanation\">", 507 "<div class=\"deprecatedSummary\">\n<table summary=\"Annotation Type Elements table, listing annotation type elements, and an explanation\">"); 508 509 // Negated test for serialized-form page 510 checkOutput("serialized-form.html", false, 511 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">", 512 "<meta name=\"date\"", 513 "<a name=\"navbar.top.firstrow\">\n" 514 + "<!-- -->\n" 515 + "</a>", 516 "<!-- ========= END OF TOP NAVBAR ========= -->\n" 517 + "</div>\n" 518 + "<div class=\"header\">", 519 "<li class=\"blockList\">\n" 520 + "<h2 title=\"Package\">Package pkg</h2>"); 521 522 // Negated test for overview-tree page 523 checkOutput("overview-tree.html", false, 524 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">", 525 "<meta name=\"date\"", 526 "<a name=\"navbar.top.firstrow\">\n" 527 + "<!-- -->\n" 528 + "</a>", 529 "<!-- ========= END OF TOP NAVBAR ========= -->\n" 530 + "</div>\n" 531 + "<div class=\"header\">", 532 "<div class=\"contentContainer\">\n" 533 + "<h2 title=\"Class Hierarchy\">Class Hierarchy</h2>", 534 "</ul>\n" 535 + "<h2 title=\"Interface Hierarchy\">Interface Hierarchy</h2>", 536 "</ul>\n" 537 + "<h2 title=\"Enum Hierarchy\">Enum Hierarchy</h2>"); 538 539 // Negated test for index-all page 540 checkOutput("index-all.html", false, 541 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">", 542 "<meta name=\"date\"", 543 "<a name=\"navbar.top.firstrow\">\n" 544 + "<!-- -->\n" 545 + "</a>", 546 "<!-- ========= END OF TOP NAVBAR ========= -->\n" 547 + "</div>\n" 548 + "<div class=\"contentContainer\">"); 549 550 // Negated test for src-html page 551 checkOutput("src-html/pkg/AnotherClass.html", false, 552 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">", 553 "<body>\n" 554 + "<div class=\"sourceContainer\">"); 555 556 // Negated test for help-doc page 557 checkOutput("help-doc.html", false, 558 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">", 559 "<meta name=\"date\"", 560 "<a name=\"navbar.top.firstrow\">\n" 561 + "<!-- -->\n" 562 + "</a>", 563 "<!-- ========= END OF TOP NAVBAR ========= -->\n" 564 + "</div>\n" 565 + "<div class=\"header\">", 566 "<ul class=\"blockList\">\n" 567 + "<li class=\"blockList\">\n" 568 + "<h2>Overview</h2>", 569 "<li class=\"blockList\">\n" 570 + "<h2>Package</h2>", 571 "<li class=\"blockList\">\n" 572 + "<h2>Class/Interface</h2>"); 573 574 // Negated test for a regular class page and members (nested class, field, constructore and method) 575 checkOutput("pkg/AnotherClass.html", false, 576 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">", 577 "<meta name=\"date\"", 578 "<a name=\"navbar.top.firstrow\">\n" 579 + "<!-- -->\n" 580 + "</a>", 581 "<!-- ======== NESTED CLASS SUMMARY ======== -->\n" 582 + "<ul class=\"blockList\">\n" 583 + "<li class=\"blockList\"><a name=\"nested.class.summary\">\n" 584 + "<!-- -->\n" 585 + "</a>\n" 586 + "<h2>Nested Class Summary</h2>\n" 587 + "<div class=\"memberSummary\">\n" 588 + "<table summary=\"Nested Class Summary table, listing nested classes, and an explanation\">", 589 "<!-- =========== FIELD SUMMARY =========== -->\n" 590 + "<ul class=\"blockList\">\n" 591 + "<li class=\"blockList\"><a name=\"field.summary\">\n" 592 + "<!-- -->\n" 593 + "</a>\n" 594 + "<h2>Field Summary</h2>\n" 595 + "<div class=\"memberSummary\">\n" 596 + "<table summary=\"Field Summary table, listing fields, and an explanation\">", 597 "<!-- ======== CONSTRUCTOR SUMMARY ======== -->\n" 598 + "<ul class=\"blockList\">\n" 599 + "<li class=\"blockList\"><a name=\"constructor.summary\">\n" 600 + "<!-- -->\n" 601 + "</a>\n" 602 + "<h2>Constructor Summary</h2>\n" 603 + "<div class=\"memberSummary\">\n" 604 + "<table summary=\"Constructor Summary table, listing constructors, and an explanation\">", 605 "<!-- ========== METHOD SUMMARY =========== -->\n" 606 + "<ul class=\"blockList\">\n" 607 + "<li class=\"blockList\"><a name=\"method.summary\">\n" 608 + "<!-- -->\n" 609 + "</a>\n" 610 + "<h2>Method Summary</h2>\n" 611 + "<div class=\"memberSummary\">\n" 612 + "<table summary=\"Method Summary table, listing methods, and an explanation\">", 613 "<!-- ============ FIELD DETAIL =========== -->\n" 614 + "<ul class=\"blockList\">\n" 615 + "<li class=\"blockList\"><a name=\"field.detail\">\n" 616 + "<!-- -->\n" 617 + "</a>\n" 618 + "<h2>Field Details</h2>", 619 "<!-- ========= CONSTRUCTOR DETAIL ======== -->\n" 620 + "<ul class=\"blockList\">\n" 621 + "<li class=\"blockList\"><a name=\"constructor.detail\">\n" 622 + "<!-- -->\n" 623 + "</a>\n" 624 + "<h2>Constructor Details</h2>", 625 "<!-- ============ METHOD DETAIL ========== -->\n" 626 + "<ul class=\"blockList\">\n" 627 + "<li class=\"blockList\"><a name=\"method.detail\">\n" 628 + "<!-- -->\n" 629 + "</a>\n" 630 + "<h2>Method Details</h2>"); 631 632 // Negated test for enum page 633 checkOutput("pkg/AnotherClass.ModalExclusionType.html", false, 634 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">", 635 "<meta name=\"date\"", 636 "<a name=\"navbar.top.firstrow\">\n" 637 + "<!-- -->\n" 638 + "</a>", 639 "<!-- =========== ENUM CONSTANT SUMMARY =========== -->\n" 640 + "<ul class=\"blockList\">\n" 641 + "<li class=\"blockList\"><a name=\"enum.constant.summary\">\n" 642 + "<!-- -->\n" 643 + "</a>\n" 644 + "<h2>Enum Constant Summary</h2>\n" 645 + "<div class=\"memberSummary\">\n" 646 + "<table summary=\"Enum Constant Summary table, listing enum constants, and an explanation\">", 647 "<!-- ========== METHOD SUMMARY =========== -->\n" 648 + "<ul class=\"blockList\">\n" 649 + "<li class=\"blockList\"><a name=\"method.summary\">\n" 650 + "<!-- -->\n" 651 + "</a>\n" 652 + "<h2>Method Summary</h2>\n" 653 + "<div class=\"memberSummary\">\n" 654 + "<table summary=\"Method Summary table, listing methods, and an explanation\">", 655 "<!-- ============ ENUM CONSTANT DETAIL =========== -->\n" 656 + "<ul class=\"blockList\">\n" 657 + "<li class=\"blockList\"><a name=\"enum.constant.detail\">\n" 658 + "<!-- -->\n" 659 + "</a>\n" 660 + "<h2>Enum Constant Details</h2>", 661 "<!-- ============ METHOD DETAIL ========== -->\n" 662 + "<ul class=\"blockList\">\n" 663 + "<li class=\"blockList\"><a name=\"method.detail\">\n" 664 + "<!-- -->\n" 665 + "</a>\n" 666 + "<h2>Method Details</h2>"); 667 668 // Negated test for interface page 669 checkOutput("pkg2/Interface.html", false, 670 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">", 671 "<meta name=\"date\"", 672 "<a name=\"navbar.top.firstrow\">\n" 673 + "<!-- -->\n" 674 + "</a>", 675 "<!-- ========== METHOD SUMMARY =========== -->\n" 676 + "<ul class=\"blockList\">\n" 677 + "<li class=\"blockList\"><a name=\"method.summary\">\n" 678 + "<!-- -->\n" 679 + "</a>\n" 680 + "<h2>Method Summary</h2>\n" 681 + "<div class=\"memberSummary\">\n" 682 + "<table summary=\"Method Summary table, listing methods, and an explanation\">", 683 "<!-- ============ METHOD DETAIL ========== -->\n" 684 + "<ul class=\"blockList\">\n" 685 + "<li class=\"blockList\"><a name=\"method.detail\">\n" 686 + "<!-- -->\n" 687 + "</a>\n" 688 + "<h2>Method Details</h2>"); 689 690 // Negated test for error page 691 checkOutput("pkg/TestError.html", false, 692 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">", 693 "<meta name=\"date\"", 694 "<a name=\"navbar.top.firstrow\">\n" 695 + "<!-- -->\n" 696 + "</a>", 697 "<!-- ======== CONSTRUCTOR SUMMARY ======== -->\n" 698 + "<ul class=\"blockList\">\n" 699 + "<li class=\"blockList\"><a name=\"constructor.summary\">\n" 700 + "<!-- -->\n" 701 + "</a>\n" 702 + "<h2>Constructor Summary</h2>", 703 "<!-- ========= CONSTRUCTOR DETAIL ======== -->\n" 704 + "<ul class=\"blockList\">\n" 705 + "<li class=\"blockList\"><a name=\"constructor.detail\">\n" 706 + "<!-- -->\n" 707 + "</a>\n" 708 + "<h2>Constructor Details</h2>"); 709 710 // Negated test for exception page 711 checkOutput("pkg/TestException.html", false, 712 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">", 713 "<meta name=\"date\"", 714 "<a name=\"navbar.top.firstrow\">\n" 715 + "<!-- -->\n" 716 + "</a>", 717 "<!-- ======== CONSTRUCTOR SUMMARY ======== -->\n" 718 + "<ul class=\"blockList\">\n" 719 + "<li class=\"blockList\"><a name=\"constructor.summary\">\n" 720 + "<!-- -->\n" 721 + "</a>\n" 722 + "<h2>Constructor Summary</h2>", 723 "<!-- ========= CONSTRUCTOR DETAIL ======== -->\n" 724 + "<ul class=\"blockList\">\n" 725 + "<li class=\"blockList\"><a name=\"constructor.detail\">\n" 726 + "<!-- -->\n" 727 + "</a>\n" 728 + "<h2>Constructor Details</h2>"); 729 730 // Negated test for annotation page 731 checkOutput("pkg2/TestAnnotationType.html", false, 732 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">", 733 "<meta name=\"date\"", 734 "<a name=\"navbar.top.firstrow\">\n" 735 + "<!-- -->\n" 736 + "</a>", 737 "<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->\n" 738 + "<ul class=\"blockList\">\n" 739 + "<li class=\"blockList\"><a name=\"annotation.type.required.element.summary\">\n" 740 + "<!-- -->\n" 741 + "</a>\n" 742 + "<h2>Required Element Summary</h2>\n" 743 + "<div class=\"memberSummary\">\n" 744 + "<table summary=\"Required Element Summary table, listing required elements, and an explanation\">", 745 "<!-- =========== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY =========== -->\n" 746 + "<ul class=\"blockList\">\n" 747 + "<li class=\"blockList\"><a name=\"annotation.type.optional.element.summary\">\n" 748 + "<!-- -->\n" 749 + "</a>\n" 750 + "<h2>Optional Element Summary</h2>\n" 751 + "<div class=\"memberSummary\">\n" 752 + "<table summary=\"Optional Element Summary table, listing optional elements, and an explanation\">", 753 "<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->\n" 754 + "<ul class=\"blockList\">\n" 755 + "<li class=\"blockList\"><a name=\"annotation.type.element.detail\">\n" 756 + "<!-- -->\n" 757 + "</a>\n" 758 + "<h2>Element Details</h2>"); 759 760 // Negated test for class use page 761 checkOutput("pkg1/class-use/RegClass.html", false, 762 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">", 763 "<meta name=\"date\"", 764 "<a name=\"navbar.top.firstrow\">\n" 765 + "<!-- -->\n" 766 + "</a>", 767 "<!-- ========= END OF TOP NAVBAR ========= -->\n" 768 + "</div>\n" 769 + "<div class=\"header\">", 770 "<div class=\"useSummary\">\n" 771 + "<table summary=\"Use table, listing packages, and an explanation\">", 772 "<li class=\"blockList\"><a name=\"pkg\">\n" 773 + "<!-- -->\n" 774 + "</a>\n" 775 + "<h2>Uses of <a href=\"../RegClass.html\" title=\"class in pkg1\">RegClass</a> in <a href=\"../../pkg/package-summary.html\">pkg</a></h2>\n" 776 + "<div class=\"useSummary\">\n<table summary=\"Use table, listing fields, and an explanation\">"); 777 778 // Negated test for main index page 779 checkOutput("index.html", false, 780 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">", 781 "<body>\n" 782 + "<script type=\"text/javascript\">\n" 783 + "if (targetPage == \"\" || targetPage == \"undefined\")\n" 784 + " window.location.replace('overview-summary.html');\n" 785 + "</script>\n" 786 + "<noscript>JavaScript is disabled on your browser.</noscript>\n" 787 + "<div class=\"mainContainer\">\n"); 788 } 789 }