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