TestSerializedForm.java revision 3300:d52219fa3026
139220Sgibbs/*
265942Sgibbs * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
339220Sgibbs * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
455581Sgibbs *
539220Sgibbs * This code is free software; you can redistribute it and/or modify it
639220Sgibbs * under the terms of the GNU General Public License version 2 only, as
739220Sgibbs * published by the Free Software Foundation.
839220Sgibbs *
939220Sgibbs * This code is distributed in the hope that it will be useful, but WITHOUT
1039220Sgibbs * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
1139220Sgibbs * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
1254211Sgibbs * version 2 for more details (a copy is included in the LICENSE file that
1339220Sgibbs * accompanied this code).
1439220Sgibbs *
1539220Sgibbs * You should have received a copy of the GNU General Public License version
1654211Sgibbs * 2 along with this work; if not, write to the Free Software Foundation,
1763457Sgibbs * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
1839220Sgibbs *
1939220Sgibbs * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
2039220Sgibbs * or visit www.oracle.com if you need additional information or have any
2139220Sgibbs * questions.
2239220Sgibbs */
2339220Sgibbs
2439220Sgibbs/*
2539220Sgibbs * @test
2639220Sgibbs * @bug 4341304 4485668 4966728 8032066 8071982
2739220Sgibbs * @summary Test that methods readResolve and writeReplace show
2839220Sgibbs * up in serialized-form.html the same way that readObject and writeObject do.
2939220Sgibbs * If the doclet includes readResolve and writeReplace in the serialized-form
3039220Sgibbs * documentation that same way the it includes readObject and writeObject, the
3170204Sgibbs * test passes.  This also tests that throws tag information is correctly shown
3265942Sgibbs * in the serialized form page.
3350477Speter * Make sure see tags work in serialized form.
3439220Sgibbs * @author jamieh
3539220Sgibbs * @library ../lib/
3639220Sgibbs * @modules jdk.javadoc/jdk.javadoc.internal.tool
3739220Sgibbs * @build JavadocTester
3839220Sgibbs * @build TestSerializedForm
3965942Sgibbs * @run main TestSerializedForm
4063457Sgibbs */
4139220Sgibbs
4265942Sgibbsimport java.io.*;
4365942Sgibbs
4465942Sgibbspublic class TestSerializedForm extends JavadocTester {
4539220Sgibbs    public static void main(String... args) throws Exception {
4665942Sgibbs        TestSerializedForm tester = new TestSerializedForm();
4745965Sgibbs        tester.runTests();
4845965Sgibbs//        tester.run(ARGS, TEST, NEGATED_TEST);
4945965Sgibbs//        tester.run(ARGS_PRIVATE, TEST_PRIVATE, NEGATED_TEST_PRIVATE);
5045965Sgibbs//        tester.printSummary();
5145965Sgibbs    }
5245965Sgibbs
5345965Sgibbs    // @ignore 8146022
5445965Sgibbs    // @Test
5565942Sgibbs    void testDefault() {
5665942Sgibbs        javadoc("-d", "out-default", "-serialwarn", "-Xdoclint:none",
5765942Sgibbs                "-sourcepath", testSrc,
5865942Sgibbs                testSrc("SerializedForm.java"), testSrc("ExternalizedForm.java"), "pkg1");
5965942Sgibbs        checkExit(Exit.OK);
6065942Sgibbs
6165942Sgibbs        checkOutput("serialized-form.html", true,
6265942Sgibbs                "protected java.lang.Object readResolve()",
6365942Sgibbs                "protected java.lang.Object writeReplace()",
6465942Sgibbs                "protected java.lang.Object readObjectNoData()",
6565942Sgibbs                "<h3>Serialization Overview</h3>\n<ul class=\"blockList\">\n"
6665942Sgibbs                + "<li class=\"blockListLast\">\n<div class=\"block\">"
6765942Sgibbs                + "<span class=\"deprecatedLabel\">Deprecated.</span>&nbsp;</div>\n"
6865942Sgibbs                + "<dl>\n<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
6965942Sgibbs                + "<dd><code>TestSerializedForm</code></dd>\n</dl>",
7065942Sgibbs                "<h3>Class pkg1.NestedInnerClass.InnerClass.ProNestedInnerClass "
7165942Sgibbs                + "extends java.lang.Object implements Serializable</h3>",
7265942Sgibbs                "<h3>Class pkg1.PrivateIncludeInnerClass.PriInnerClass extends "
7365942Sgibbs                + "java.lang.Object implements Serializable</h3>",
7465942Sgibbs                "<h3>Class pkg1.ProtectedInnerClass.ProInnerClass extends "
7565942Sgibbs                + "java.lang.Object implements Serializable</h3>");
7665942Sgibbs
7765942Sgibbs        checkOutput("serialized-form.html", false,
7865942Sgibbs                "<h3>Class <a href=\"pkg1/NestedInnerClass.InnerClass.ProNestedInnerClass.html\" "
7965942Sgibbs                + "title=\"class in pkg1\">pkg1.NestedInnerClass.InnerClass.ProNestedInnerClass</a> "
8065942Sgibbs                + "extends java.lang.Object implements Serializable</h3>",
8165942Sgibbs                "<h3>Class <a href=\"pkg1/PrivateInnerClass.PriInnerClass.html\" title=\"class in pkg1\">"
8265942Sgibbs                + "pkg1.PrivateInnerClass.PriInnerClass</a> extends java.lang.Object implements Serializable</h3>",
8365942Sgibbs                "<h3>Class <a href=\"pkg1/ProtectedInnerClass.ProInnerClass.html\" title=\"class in pkg1\">"
8465942Sgibbs                + "pkg1.ProtectedInnerClass.ProInnerClass</a> extends java.lang.Object implements Serializable</h3>",
8565942Sgibbs                "<h3>Class pkg1.PublicExcludeInnerClass.PubInnerClass extends java.lang.Object implements "
8665942Sgibbs                + "Serializable</h3>");
8765942Sgibbs    }
8865942Sgibbs
8965942Sgibbs    @Test
9065942Sgibbs    void testPrivate() {
9165942Sgibbs        javadoc("-private",
9265942Sgibbs                "-d", "out-private",
9365942Sgibbs                "-sourcepath", testSrc,
9465942Sgibbs                testSrc("SerializedForm.java"), testSrc("ExternalizedForm.java"), "pkg1");
9565942Sgibbs        checkExit(Exit.OK);
9665942Sgibbs
9765942Sgibbs        checkOutput("serialized-form.html", true,
9868579Sgibbs                "<h3>Class <a href=\"pkg1/NestedInnerClass.InnerClass.ProNestedInnerClass.html\" "
9968579Sgibbs                + "title=\"class in pkg1\">pkg1.NestedInnerClass.InnerClass.ProNestedInnerClass</a> "
10068579Sgibbs                + "extends java.lang.Object implements Serializable</h3>",
10168579Sgibbs                "<h3>Class <a href=\"pkg1/PrivateIncludeInnerClass.PriInnerClass.html\" title=\"class in pkg1\">"
10268579Sgibbs                + "pkg1.PrivateIncludeInnerClass.PriInnerClass</a> extends java.lang.Object implements Serializable</h3>",
10365942Sgibbs                "<h3>Class <a href=\"pkg1/ProtectedInnerClass.ProInnerClass.html\" title=\"class in pkg1\">"
10445965Sgibbs                + "pkg1.ProtectedInnerClass.ProInnerClass</a> extends java.lang.Object implements Serializable</h3>");
10563457Sgibbs
10663457Sgibbs        checkOutput("serialized-form.html", false,
10763457Sgibbs                "<h3>Class pkg1.NestedInnerClass.InnerClass.ProNestedInnerClass "
10863457Sgibbs                + "extends java.lang.Object implements Serializable</h3>",
10963457Sgibbs                "<h3>Class pkg1.PrivateInnerClass.PriInnerClass extends "
11063457Sgibbs                + "java.lang.Object implements Serializable</h3>",
11170204Sgibbs                "<h3>Class pkg1.ProtectedInnerClass.ProInnerClass extends "
11270204Sgibbs                + "java.lang.Object implements Serializable</h3>",
11370204Sgibbs                "<h3>Class <a href=\"pkg1/PublicExcludeInnerClass.PubInnerClass.html\" "
11463457Sgibbs                + "title=\"class in pkg1\">pkg1.PublicExcludeInnerClass.PubInnerClass</a> "
11570204Sgibbs                + "extends java.lang.Object implements Serializable</h3>");
11663457Sgibbs    }
11763457Sgibbs}
11845965Sgibbs