test/langtools/jdk/javadoc/doclet/testSeeTag/TestSeeTag.java
author jjg
Fri, 21 Dec 2018 10:38:33 -0800
changeset 53097 2e82ca64b25d
parent 52871 c09bff7928e8
child 53562 0d9dee001667
permissions -rw-r--r--
8215516: Move JavadocTester to a named package Reviewed-by: hannesw
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
19497
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
     1
/*
48654
36f58bd6269f 8195796: Reduce the size of relative URLs in generated docs
jjg
parents: 47216
diff changeset
     2
 * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
19497
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
     4
 *
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
     7
 * published by the Free Software Foundation.
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
     8
 *
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
    13
 * accompanied this code).
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
    14
 *
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
    18
 *
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
    21
 * questions.
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
    22
 */
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
    23
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
    24
/*
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
    25
 * @test
52664
15fc92f4ae9a 8200432: javadoc fails with ClassCastException on {@link byte[]}
hannesw
parents: 49139
diff changeset
    26
 * @bug      8017191 8182765 8200432
19497
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
    27
 * @summary  Javadoc is confused by at-link to imported classes outside of the set of generated packages
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
    28
 * @author   jjg
53097
2e82ca64b25d 8215516: Move JavadocTester to a named package
jjg
parents: 52871
diff changeset
    29
 * @library  ../../lib
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 35426
diff changeset
    30
 * @modules jdk.javadoc/jdk.javadoc.internal.tool
53097
2e82ca64b25d 8215516: Move JavadocTester to a named package
jjg
parents: 52871
diff changeset
    31
 * @build    javadoc.tester.*
19497
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
    32
 * @run main TestSeeTag
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
    33
 */
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
    34
53097
2e82ca64b25d 8215516: Move JavadocTester to a named package
jjg
parents: 52871
diff changeset
    35
import javadoc.tester.JavadocTester;
2e82ca64b25d 8215516: Move JavadocTester to a named package
jjg
parents: 52871
diff changeset
    36
19497
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
    37
public class TestSeeTag extends JavadocTester {
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
    38
24399
af1a0220d0fa 8038730: Clean up the way JavadocTester is invoked, and checks for errors.
jjg
parents: 24072
diff changeset
    39
    public static void main(String... args) throws Exception {
af1a0220d0fa 8038730: Clean up the way JavadocTester is invoked, and checks for errors.
jjg
parents: 24072
diff changeset
    40
        TestSeeTag tester = new TestSeeTag();
af1a0220d0fa 8038730: Clean up the way JavadocTester is invoked, and checks for errors.
jjg
parents: 24072
diff changeset
    41
        tester.runTests();
af1a0220d0fa 8038730: Clean up the way JavadocTester is invoked, and checks for errors.
jjg
parents: 24072
diff changeset
    42
    }
19497
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
    43
24399
af1a0220d0fa 8038730: Clean up the way JavadocTester is invoked, and checks for errors.
jjg
parents: 24072
diff changeset
    44
    @Test
53097
2e82ca64b25d 8215516: Move JavadocTester to a named package
jjg
parents: 52871
diff changeset
    45
    public void test() {
24399
af1a0220d0fa 8038730: Clean up the way JavadocTester is invoked, and checks for errors.
jjg
parents: 24072
diff changeset
    46
        javadoc("-d", "out",
af1a0220d0fa 8038730: Clean up the way JavadocTester is invoked, and checks for errors.
jjg
parents: 24072
diff changeset
    47
                "-sourcepath", testSrc,
af1a0220d0fa 8038730: Clean up the way JavadocTester is invoked, and checks for errors.
jjg
parents: 24072
diff changeset
    48
                "pkg");
af1a0220d0fa 8038730: Clean up the way JavadocTester is invoked, and checks for errors.
jjg
parents: 24072
diff changeset
    49
        checkExit(Exit.OK);
19497
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
    50
24399
af1a0220d0fa 8038730: Clean up the way JavadocTester is invoked, and checks for errors.
jjg
parents: 24072
diff changeset
    51
        checkOutput("pkg/Test.html", true,
35426
374342e56a56 8035473: [javadoc] Revamp the existing Doclet APIs
ksrini
parents: 30730
diff changeset
    52
            "<code>List</code>",
374342e56a56 8035473: [javadoc] Revamp the existing Doclet APIs
ksrini
parents: 30730
diff changeset
    53
            "<dl>\n"
374342e56a56 8035473: [javadoc] Revamp the existing Doclet APIs
ksrini
parents: 30730
diff changeset
    54
            + "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
49139
771616d26ca1 8182765: HTML5 must be the default javadoc codegen mode in the near future
bpatel
parents: 48654
diff changeset
    55
            + "<dd><a href=\"Test.InnerOne.html#foo()\"><code>Test.InnerOne.foo()</code></a>, \n"
771616d26ca1 8182765: HTML5 must be the default javadoc codegen mode in the near future
bpatel
parents: 48654
diff changeset
    56
            + "<a href=\"Test.InnerOne.html#bar(java.lang.Object)\"><code>Test.InnerOne.bar(Object)</code></a>, \n"
35426
374342e56a56 8035473: [javadoc] Revamp the existing Doclet APIs
ksrini
parents: 30730
diff changeset
    57
            + "<a href=\"http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javadoc.html#see\">Javadoc</a>, \n"
49139
771616d26ca1 8182765: HTML5 must be the default javadoc codegen mode in the near future
bpatel
parents: 48654
diff changeset
    58
            + "<a href=\"Test.InnerOne.html#baz(float)\"><code>something</code></a></dd>\n"
35426
374342e56a56 8035473: [javadoc] Revamp the existing Doclet APIs
ksrini
parents: 30730
diff changeset
    59
            + "</dl>");
24399
af1a0220d0fa 8038730: Clean up the way JavadocTester is invoked, and checks for errors.
jjg
parents: 24072
diff changeset
    60
af1a0220d0fa 8038730: Clean up the way JavadocTester is invoked, and checks for errors.
jjg
parents: 24072
diff changeset
    61
        checkOutput("pkg/Test.html", false,
af1a0220d0fa 8038730: Clean up the way JavadocTester is invoked, and checks for errors.
jjg
parents: 24072
diff changeset
    62
          "&lt;code&gt;List&lt;/code&gt;");
35426
374342e56a56 8035473: [javadoc] Revamp the existing Doclet APIs
ksrini
parents: 30730
diff changeset
    63
374342e56a56 8035473: [javadoc] Revamp the existing Doclet APIs
ksrini
parents: 30730
diff changeset
    64
        checkOutput("pkg/Test2.html", true,
374342e56a56 8035473: [javadoc] Revamp the existing Doclet APIs
ksrini
parents: 30730
diff changeset
    65
           "<code>Serializable</code>");
374342e56a56 8035473: [javadoc] Revamp the existing Doclet APIs
ksrini
parents: 30730
diff changeset
    66
374342e56a56 8035473: [javadoc] Revamp the existing Doclet APIs
ksrini
parents: 30730
diff changeset
    67
        checkOutput("pkg/Test2.html", false,
374342e56a56 8035473: [javadoc] Revamp the existing Doclet APIs
ksrini
parents: 30730
diff changeset
    68
           ">Serialized Form<");
19497
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
    69
    }
49139
771616d26ca1 8182765: HTML5 must be the default javadoc codegen mode in the near future
bpatel
parents: 48654
diff changeset
    70
771616d26ca1 8182765: HTML5 must be the default javadoc codegen mode in the near future
bpatel
parents: 48654
diff changeset
    71
    @Test
53097
2e82ca64b25d 8215516: Move JavadocTester to a named package
jjg
parents: 52871
diff changeset
    72
    public void test_html4() {
49139
771616d26ca1 8182765: HTML5 must be the default javadoc codegen mode in the near future
bpatel
parents: 48654
diff changeset
    73
        javadoc("-d", "out-html4",
771616d26ca1 8182765: HTML5 must be the default javadoc codegen mode in the near future
bpatel
parents: 48654
diff changeset
    74
                "-html4",
771616d26ca1 8182765: HTML5 must be the default javadoc codegen mode in the near future
bpatel
parents: 48654
diff changeset
    75
                "-sourcepath", testSrc,
771616d26ca1 8182765: HTML5 must be the default javadoc codegen mode in the near future
bpatel
parents: 48654
diff changeset
    76
                "pkg");
771616d26ca1 8182765: HTML5 must be the default javadoc codegen mode in the near future
bpatel
parents: 48654
diff changeset
    77
        checkExit(Exit.OK);
771616d26ca1 8182765: HTML5 must be the default javadoc codegen mode in the near future
bpatel
parents: 48654
diff changeset
    78
771616d26ca1 8182765: HTML5 must be the default javadoc codegen mode in the near future
bpatel
parents: 48654
diff changeset
    79
        checkOutput("pkg/Test.html", true,
771616d26ca1 8182765: HTML5 must be the default javadoc codegen mode in the near future
bpatel
parents: 48654
diff changeset
    80
            "<code>List</code>",
771616d26ca1 8182765: HTML5 must be the default javadoc codegen mode in the near future
bpatel
parents: 48654
diff changeset
    81
            "<dl>\n"
771616d26ca1 8182765: HTML5 must be the default javadoc codegen mode in the near future
bpatel
parents: 48654
diff changeset
    82
            + "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
771616d26ca1 8182765: HTML5 must be the default javadoc codegen mode in the near future
bpatel
parents: 48654
diff changeset
    83
            + "<dd><a href=\"Test.InnerOne.html#foo--\"><code>Test.InnerOne.foo()</code></a>, \n"
771616d26ca1 8182765: HTML5 must be the default javadoc codegen mode in the near future
bpatel
parents: 48654
diff changeset
    84
            + "<a href=\"Test.InnerOne.html#bar-java.lang.Object-\"><code>Test.InnerOne.bar(Object)</code></a>, \n"
771616d26ca1 8182765: HTML5 must be the default javadoc codegen mode in the near future
bpatel
parents: 48654
diff changeset
    85
            + "<a href=\"http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javadoc.html#see\">Javadoc</a>, \n"
771616d26ca1 8182765: HTML5 must be the default javadoc codegen mode in the near future
bpatel
parents: 48654
diff changeset
    86
            + "<a href=\"Test.InnerOne.html#baz-float-\"><code>something</code></a></dd>\n"
771616d26ca1 8182765: HTML5 must be the default javadoc codegen mode in the near future
bpatel
parents: 48654
diff changeset
    87
            + "</dl>");
52664
15fc92f4ae9a 8200432: javadoc fails with ClassCastException on {@link byte[]}
hannesw
parents: 49139
diff changeset
    88
    }
15fc92f4ae9a 8200432: javadoc fails with ClassCastException on {@link byte[]}
hannesw
parents: 49139
diff changeset
    89
15fc92f4ae9a 8200432: javadoc fails with ClassCastException on {@link byte[]}
hannesw
parents: 49139
diff changeset
    90
    @Test
53097
2e82ca64b25d 8215516: Move JavadocTester to a named package
jjg
parents: 52871
diff changeset
    91
    public void testBadReference() {
52664
15fc92f4ae9a 8200432: javadoc fails with ClassCastException on {@link byte[]}
hannesw
parents: 49139
diff changeset
    92
        javadoc("-d", "out-badref",
15fc92f4ae9a 8200432: javadoc fails with ClassCastException on {@link byte[]}
hannesw
parents: 49139
diff changeset
    93
                "-sourcepath", testSrc,
15fc92f4ae9a 8200432: javadoc fails with ClassCastException on {@link byte[]}
hannesw
parents: 49139
diff changeset
    94
                "badref");
15fc92f4ae9a 8200432: javadoc fails with ClassCastException on {@link byte[]}
hannesw
parents: 49139
diff changeset
    95
        checkExit(Exit.ERROR);
15fc92f4ae9a 8200432: javadoc fails with ClassCastException on {@link byte[]}
hannesw
parents: 49139
diff changeset
    96
15fc92f4ae9a 8200432: javadoc fails with ClassCastException on {@link byte[]}
hannesw
parents: 49139
diff changeset
    97
        checkOutput("badref/Test.html", true,
15fc92f4ae9a 8200432: javadoc fails with ClassCastException on {@link byte[]}
hannesw
parents: 49139
diff changeset
    98
                "<dl>\n"
15fc92f4ae9a 8200432: javadoc fails with ClassCastException on {@link byte[]}
hannesw
parents: 49139
diff changeset
    99
                + "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
52871
c09bff7928e8 8214571: -Xdoclint of array serialField gives "error: array type not allowed here"
hannesw
parents: 52664
diff changeset
   100
                + "<dd><code>Object</code>, \n"
52664
15fc92f4ae9a 8200432: javadoc fails with ClassCastException on {@link byte[]}
hannesw
parents: 49139
diff changeset
   101
                + "<code>Foo<String></code></dd>\n"
15fc92f4ae9a 8200432: javadoc fails with ClassCastException on {@link byte[]}
hannesw
parents: 49139
diff changeset
   102
                + "</dl>");
15fc92f4ae9a 8200432: javadoc fails with ClassCastException on {@link byte[]}
hannesw
parents: 49139
diff changeset
   103
    }
19497
407ed5b28a44 8017191: Javadoc is confused by @link to imported classes outside of the set of generated packages
jjg
parents:
diff changeset
   104
}