aoqi@0: /* aoqi@0: * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved. aoqi@0: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. aoqi@0: * aoqi@0: * This code is free software; you can redistribute it and/or modify it aoqi@0: * under the terms of the GNU General Public License version 2 only, as aoqi@0: * published by the Free Software Foundation. Oracle designates this aoqi@0: * particular file as subject to the "Classpath" exception as provided aoqi@0: * by Oracle in the LICENSE file that accompanied this code. aoqi@0: * aoqi@0: * This code is distributed in the hope that it will be useful, but WITHOUT aoqi@0: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or aoqi@0: * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License aoqi@0: * version 2 for more details (a copy is included in the LICENSE file that aoqi@0: * accompanied this code). aoqi@0: * aoqi@0: * You should have received a copy of the GNU General Public License version aoqi@0: * 2 along with this work; if not, write to the Free Software Foundation, aoqi@0: * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. aoqi@0: * aoqi@0: * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA aoqi@0: * or visit www.oracle.com if you need additional information or have any aoqi@0: * questions. aoqi@0: */ aoqi@0: aoqi@0: /* aoqi@0: * @test aoqi@0: * @bug 6786690 6820360 8025633 8026567 aoqi@0: * @summary This test verifies the nesting of definition list tags. aoqi@0: * @author Bhavesh Patel aoqi@0: * @library ../lib/ aoqi@0: * @build JavadocTester TestHtmlDefinitionListTag aoqi@0: * @run main TestHtmlDefinitionListTag aoqi@0: */ aoqi@0: aoqi@0: public class TestHtmlDefinitionListTag extends JavadocTester { aoqi@0: aoqi@0: private static final String BUG_ID = "6786690-6820360"; aoqi@0: aoqi@0: // Test common to all runs of javadoc. The class signature should print aoqi@0: // properly enclosed definition list tags and the Annotation Type aoqi@0: // Optional Element should print properly nested definition list tags aoqi@0: // for default value. aoqi@0: private static final String[][] TEST_ALL = { aoqi@0: {BUG_ID + FS + "pkg1" + FS + "C1.html", "
public class " +
aoqi@0:                  "C1" + NL +
aoqi@0:                  "extends java.lang.Object" + NL + "implements java.io.Serializable
"}, aoqi@0: {BUG_ID + FS + "pkg1" + FS + "C4.html", "
" + NL + aoqi@0: "
Default:
" + NL + "
true
" + NL + aoqi@0: "
"}}; aoqi@0: aoqi@0: // Test for normal run of javadoc in which various ClassDocs and aoqi@0: // serialized form should have properly nested definition list tags aoqi@0: // enclosing comments, tags and deprecated information. aoqi@0: private static final String[][] TEST_CMNT_DEPR = { aoqi@0: {BUG_ID + FS + "pkg1" + FS + "package-summary.html", "
" + NL + aoqi@0: "
Since:
" + NL + aoqi@0: "
JDK1.0
" + NL + "
"}, aoqi@0: {BUG_ID + FS + "pkg1" + FS + "C1.html", "
" + NL + "
Since:
" + NL + aoqi@0: "
JDK1.0
" + NL + "
See Also:
" + NL + aoqi@0: "
" + aoqi@0: "C2, " + NL + "" + aoqi@0: "Serialized Form
" + NL + "
"}, aoqi@0: {BUG_ID + FS + "pkg1" + FS + "C1.html", "
" + NL + "
Since:
" + NL + aoqi@0: "
1.4
" + NL + aoqi@0: "
See Also:
" + NL + "
" + aoqi@0: "" + aoqi@0: "setUndecorated(boolean)
" + NL + "
"}, aoqi@0: {BUG_ID + FS + "pkg1" + FS + "C1.html", "
"+ NL + "
Parameters:
" + NL + "
title" + aoqi@0: " - the title
" + NL + "
test - boolean value" + aoqi@0: "
" + NL + "
Throws:
" + NL + aoqi@0: "
java.lang.IllegalArgumentException - if the " + aoqi@0: "owner's" + NL + aoqi@0: " GraphicsConfiguration is not from a screen " + aoqi@0: "device
" + NL + "
HeadlessException
" + NL + "
"}, aoqi@0: {BUG_ID + FS + "pkg1" + FS + "C1.html", "
" + NL + "
Parameters:
" + NL + "
undecorated" + aoqi@0: " - true if no decorations are" + NL + aoqi@0: " to be enabled;" + NL + " false " + aoqi@0: "if decorations are to be enabled.
" + NL + "
Since:" + aoqi@0: "
" + NL + "
1.4
" + NL + aoqi@0: "
See Also:
" + NL + "
" + aoqi@0: "readObject()" + aoqi@0: "
" + NL + "
"}, aoqi@0: {BUG_ID + FS + "pkg1" + FS + "C1.html", "
" + NL + "
Throws:
" + NL + aoqi@0: "
java.io.IOException
" + NL + "
See Also:" + aoqi@0: "
" + NL + "
" + aoqi@0: "setUndecorated(boolean)
" + NL + "
"}, aoqi@0: {BUG_ID + FS + "pkg1" + FS + "C2.html", "
" + NL + "
Parameters:" + aoqi@0: "
" + NL + "
set - boolean
" + NL + "
" + aoqi@0: "Since:
" + NL + "
1.4
" + NL + "
"}, aoqi@0: {BUG_ID + FS + "serialized-form.html", "
" + NL + "
Throws:" + aoqi@0: "
" + NL + "
" + aoqi@0: "java.io.IOException
" + NL + "
See Also:" + aoqi@0: "
" + NL + "
" + aoqi@0: "C1.setUndecorated(boolean)
" + NL + "
"}, aoqi@0: {BUG_ID + FS + "serialized-form.html", "Deprecated." + aoqi@0: " As of JDK version 1.5, replaced by" + NL + aoqi@0: " " + aoqi@0: "setUndecorated(boolean)." + NL + aoqi@0: "
This field indicates whether the C1 is " + aoqi@0: "undecorated.
" + NL + " " + NL + "
" + NL + "
Since:
" + NL + aoqi@0: "
1.4
" + NL + "
See Also:" + aoqi@0: "
" + NL + "
" + aoqi@0: "C1.setUndecorated(boolean)
" + NL + "
"}, aoqi@0: {BUG_ID + FS + "serialized-form.html", "Deprecated." + aoqi@0: " As of JDK version 1.5, replaced by" + NL + aoqi@0: " " + aoqi@0: "setUndecorated(boolean)." + NL + aoqi@0: "
Reads the object stream.
" + NL + aoqi@0: "
" + NL + "
Throws:" + aoqi@0: "
" + NL + "
" + aoqi@0: "IOException
" + NL + aoqi@0: "
java.io.IOException
" + NL + "
"}, aoqi@0: {BUG_ID + FS + "serialized-form.html", "Deprecated." + aoqi@0: " " + NL + aoqi@0: "
The name for this class.
"}}; aoqi@0: aoqi@0: // Test with -nodeprecated option. The ClassDocs should have properly nested aoqi@0: // definition list tags enclosing comments and tags. The ClassDocs should not aoqi@0: // display definition list for deprecated information. The serialized form aoqi@0: // should display properly nested definition list tags for comments, tags aoqi@0: // and deprecated information. aoqi@0: private static final String[][] TEST_NODEPR = { aoqi@0: {BUG_ID + FS + "pkg1" + FS + "package-summary.html", "
" + NL + aoqi@0: "
Since:
" + NL + aoqi@0: "
JDK1.0
" + NL + "
"}, aoqi@0: {BUG_ID + FS + "pkg1" + FS + "C1.html", "
" + NL + "
Since:" + aoqi@0: "
" + NL + "
JDK1.0
" + NL + "
See Also:" + aoqi@0: "
" + NL + "
" + aoqi@0: "C2, " + NL + "" + aoqi@0: "Serialized Form
" + NL + "
"}, aoqi@0: {BUG_ID + FS + "pkg1" + FS + "C1.html", "
" + NL + "
Parameters:" + aoqi@0: "
" + NL + "
title - the title
" + NL + "
" + aoqi@0: "test - boolean value
" + NL + "
Throws:" + aoqi@0: "
" + NL + "
java.lang.IllegalArgumentException" + aoqi@0: " - if the owner's" + NL + " GraphicsConfiguration" + aoqi@0: " is not from a screen device
" + NL + "
" + aoqi@0: "HeadlessException
" + NL + "
"}, aoqi@0: {BUG_ID + FS + "pkg1" + FS + "C1.html", "
" + NL + "
Parameters:" + aoqi@0: "
" + NL + "
undecorated - true" + aoqi@0: " if no decorations are" + NL + " to be enabled;" + NL + aoqi@0: " false if decorations are to be enabled." + aoqi@0: "
" + NL + "
Since:
" + NL + "
1.4
" + NL + aoqi@0: "
See Also:
" + NL + "
" + aoqi@0: "readObject()
" + NL + "
"}, aoqi@0: {BUG_ID + FS + "pkg1" + FS + "C1.html", "
" + NL + "
Throws:" + aoqi@0: "
" + NL + "
java.io.IOException
" + NL + "
" + aoqi@0: "See Also:
" + NL + "
" + aoqi@0: "setUndecorated(boolean)
" + NL + "
"}, aoqi@0: {BUG_ID + FS + "serialized-form.html", "
" + NL + "
Throws:" + aoqi@0: "
" + NL + "
" + aoqi@0: "java.io.IOException
" + NL + "
See Also:" + aoqi@0: "
" + NL + "
" + aoqi@0: "C1.setUndecorated(boolean)
" + NL + "
"}, aoqi@0: {BUG_ID + FS + "serialized-form.html", "Deprecated." + aoqi@0: " As of JDK version 1.5, replaced by" + NL + aoqi@0: " " + aoqi@0: "setUndecorated(boolean)." + NL + aoqi@0: "
This field indicates whether the C1 is " + aoqi@0: "undecorated.
" + NL + " " + NL + "
" + NL + "
Since:
" + NL + aoqi@0: "
1.4
" + NL + "
See Also:" + aoqi@0: "
" + NL + "
" + aoqi@0: "C1.setUndecorated(boolean)
" + NL + "
"}, aoqi@0: {BUG_ID + FS + "serialized-form.html", "Deprecated." + aoqi@0: " As of JDK version 1.5, replaced by" + NL + aoqi@0: " " + aoqi@0: "setUndecorated(boolean)." + NL + aoqi@0: "
Reads the object stream.
" + NL + aoqi@0: "
" + NL + "
Throws:" + aoqi@0: "
" + NL + "
" + aoqi@0: "IOException
" + NL + aoqi@0: "
java.io.IOException
" + NL + "
"}, aoqi@0: {BUG_ID + FS + "serialized-form.html", "Deprecated." + aoqi@0: " " + NL + "
" + aoqi@0: "The name for this class.
"}}; aoqi@0: aoqi@0: // Test with -nocomment and -nodeprecated options. The ClassDocs whould aoqi@0: // not display definition lists for any member details. aoqi@0: private static final String[][] TEST_NOCMNT_NODEPR = { aoqi@0: {BUG_ID + FS + "pkg1" + FS + "C1.html", "
public void readObject()" + NL +
aoqi@0:                  "                throws java.io.IOException
" + NL + ""}, aoqi@0: {BUG_ID + FS + "pkg1" + FS + "C2.html", "
public C2()
" + NL + aoqi@0: ""}, aoqi@0: {BUG_ID + FS + "pkg1" + FS + "C1.ModalExclusionType.html", "
public " +
aoqi@0:                  "static final C1.ModalExclusionType " +
aoqi@0:                  "APPLICATION_EXCLUDE
" + NL + ""}, aoqi@0: {BUG_ID + FS + "serialized-form.html", "
boolean " +
aoqi@0:                  "undecorated
" + NL + "
" + aoqi@0: "Deprecated. As of JDK version 1.5, replaced by" + NL + aoqi@0: " " + aoqi@0: "setUndecorated(boolean).
" + NL + ""}, aoqi@0: {BUG_ID + FS + "serialized-form.html", "" + aoqi@0: "Deprecated. As of JDK version" + aoqi@0: " 1.5, replaced by" + NL + aoqi@0: " " + aoqi@0: "setUndecorated(boolean)." + NL + ""}}; aoqi@0: aoqi@0: // Test for valid HTML generation which should not comprise of empty aoqi@0: // definition list tags. aoqi@0: private static final String[][] NEGATED_TEST = { aoqi@0: {BUG_ID + FS + "pkg1" + FS + "package-summary.html", "
"}, aoqi@0: {BUG_ID + FS + "pkg1" + FS + "package-summary.html", "
" + NL + "
"}, aoqi@0: {BUG_ID + FS + "pkg1" + FS + "C1.html", "
"}, aoqi@0: {BUG_ID + FS + "pkg1" + FS + "C1.html", "
" + NL + "
"}, aoqi@0: {BUG_ID + FS + "pkg1" + FS + "C1.ModalExclusionType.html", "
"}, aoqi@0: {BUG_ID + FS + "pkg1" + FS + "C1.ModalExclusionType.html", "
" + NL + "
"}, aoqi@0: {BUG_ID + FS + "pkg1" + FS + "C2.html", "
"}, aoqi@0: {BUG_ID + FS + "pkg1" + FS + "C2.html", "
" + NL + "
"}, aoqi@0: {BUG_ID + FS + "pkg1" + FS + "C2.ModalType.html", "
"}, aoqi@0: {BUG_ID + FS + "pkg1" + FS + "C2.ModalType.html", "
" + NL + "
"}, aoqi@0: {BUG_ID + FS + "pkg1" + FS + "C3.html", "
"}, aoqi@0: {BUG_ID + FS + "pkg1" + FS + "C3.html", "
" + NL + "
"}, aoqi@0: {BUG_ID + FS + "pkg1" + FS + "C4.html", "
"}, aoqi@0: {BUG_ID + FS + "pkg1" + FS + "C4.html", "
" + NL + "
"}, aoqi@0: {BUG_ID + FS + "pkg1" + FS + "C5.html", "
"}, aoqi@0: {BUG_ID + FS + "pkg1" + FS + "C5.html", "
" + NL + "
"}, aoqi@0: {BUG_ID + FS + "overview-tree.html", "
"}, aoqi@0: {BUG_ID + FS + "overview-tree.html", "
" + NL + "
"}, aoqi@0: {BUG_ID + FS + "serialized-form.html", "
"}, aoqi@0: {BUG_ID + FS + "serialized-form.html", "
" + NL + "
"}}; aoqi@0: aoqi@0: private static final String[] ARGS1 = aoqi@0: new String[] { aoqi@0: "-Xdoclint:none", "-d", BUG_ID, "-sourcepath", SRC_DIR, "pkg1"}; aoqi@0: aoqi@0: private static final String[] ARGS2 = aoqi@0: new String[] { aoqi@0: "-Xdoclint:none", "-d", BUG_ID, "-nocomment", "-sourcepath", SRC_DIR, "pkg1"}; aoqi@0: aoqi@0: private static final String[] ARGS3 = aoqi@0: new String[] { aoqi@0: "-Xdoclint:none", "-d", BUG_ID, "-nodeprecated", "-sourcepath", SRC_DIR, "pkg1"}; aoqi@0: aoqi@0: private static final String[] ARGS4 = aoqi@0: new String[] { aoqi@0: "-Xdoclint:none", "-d", BUG_ID, "-nocomment", "-nodeprecated", "-sourcepath", SRC_DIR, "pkg1"}; aoqi@0: aoqi@0: /** aoqi@0: * The entry point of the test. aoqi@0: * @param args the array of command line arguments. aoqi@0: */ aoqi@0: public static void main(String[] args) { aoqi@0: TestHtmlDefinitionListTag tester = new TestHtmlDefinitionListTag(); aoqi@0: tester.exactNewlineMatch = false; aoqi@0: run(tester, ARGS1, TEST_ALL, NEGATED_TEST); aoqi@0: run(tester, ARGS1, TEST_CMNT_DEPR, NEGATED_TEST); aoqi@0: run(tester, ARGS2, TEST_ALL, NEGATED_TEST); aoqi@0: run(tester, ARGS2, NO_TEST, TEST_CMNT_DEPR); aoqi@0: run(tester, ARGS3, TEST_ALL, NEGATED_TEST); aoqi@0: run(tester, ARGS3, TEST_NODEPR, TEST_NOCMNT_NODEPR); aoqi@0: run(tester, ARGS4, TEST_ALL, NEGATED_TEST); aoqi@0: run(tester, ARGS4, TEST_NOCMNT_NODEPR, TEST_CMNT_DEPR); aoqi@0: tester.printSummary(); aoqi@0: } aoqi@0: aoqi@0: /** aoqi@0: * {@inheritDoc} aoqi@0: */ aoqi@0: public String getBugId() { aoqi@0: return BUG_ID; aoqi@0: } aoqi@0: aoqi@0: /** aoqi@0: * {@inheritDoc} aoqi@0: */ aoqi@0: public String getBugName() { aoqi@0: return getClass().getName(); aoqi@0: } aoqi@0: }