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: " " + 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: " " + 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: " " + 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: " " + 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.
" + NL + ""},
aoqi@0: {BUG_ID + FS + "serialized-form.html", "" +
aoqi@0: "Deprecated. " + 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: }