TestHref.java revision 232:5240b1120530
1/*
2 * Copyright 2003-2005 Sun Microsystems, Inc.  All Rights Reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
20 * CA 95054 USA or visit www.sun.com if you need additional information or
21 * have any questions.
22 */
23
24/*
25 * @test
26 * @bug      4663254
27 * @summary  Verify that spaces do not appear in hrefs and anchors.
28 * @author   jamieh
29 * @library  ../lib/
30 * @build    JavadocTester
31 * @build    TestHref
32 * @run main TestHref
33 */
34
35public class TestHref extends JavadocTester {
36
37    //Test information.
38    private static final String BUG_ID = "4663254";
39
40    //Javadoc arguments.
41    private static final String[] ARGS = new String[] {
42        "-d", BUG_ID, "-source", "1.5", "-sourcepath", SRC_DIR, "-linkoffline",
43        "http://java.sun.com/j2se/1.4/docs/api/", SRC_DIR, "pkg"
44    };
45
46    //Input for string search tests.
47    private static final String[][] TEST = {
48        //External link.
49        {BUG_ID + FS + "pkg" + FS + "C1.html",
50            "HREF=\"http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html?is-external=true#wait(long, int)\""
51        },
52        //Member summary table link.
53        {BUG_ID + FS + "pkg" + FS + "C1.html",
54            "HREF=\"../pkg/C1.html#method(int, int, java.util.ArrayList)\""
55        },
56        //Anchor test.
57        {BUG_ID + FS + "pkg" + FS + "C1.html",
58            "<A NAME=\"method(int, int, java.util.ArrayList)\"><!-- --></A>"
59        },
60        //Backward compatibility anchor test.
61        {BUG_ID + FS + "pkg" + FS + "C1.html",
62            "<A NAME=\"method(int, int, java.util.ArrayList)\"><!-- --></A>"
63        },
64        //{@link} test.
65        {BUG_ID + FS + "pkg" + FS + "C2.html",
66            "Link: <A HREF=\"../pkg/C1.html#method(int, int, java.util.ArrayList)\">"
67        },
68        //@see test.
69        {BUG_ID + FS + "pkg" + FS + "C2.html",
70            "See Also:</STRONG></DT><DD><A HREF=\"../pkg/C1.html#method(int, int, java.util.ArrayList)\">"
71        },
72
73        //Header does not link to the page itself.
74        {BUG_ID + FS + "pkg" + FS + "C4.html",
75            "Class C4&lt;E extends C4&lt;E&gt;&gt;</H2>"
76        },
77
78        //Signature does not link to the page itself.
79        {BUG_ID + FS + "pkg" + FS + "C4.html",
80            "public abstract class <STRONG>C4&lt;E extends C4&lt;E&gt;&gt;</STRONG>"
81        },
82    };
83    private static final String[][] NEGATED_TEST =
84    {
85        {WARNING_OUTPUT,  "<a> tag is malformed"}
86    };
87
88    /**
89     * The entry point of the test.
90     * @param args the array of command line arguments.
91     */
92    public static void main(String[] args) {
93        TestHref tester = new TestHref();
94        run(tester, ARGS, TEST, NEGATED_TEST);
95        tester.printSummary();
96    }
97
98    /**
99     * {@inheritDoc}
100     */
101    public String getBugId() {
102        return BUG_ID;
103    }
104
105    /**
106     * {@inheritDoc}
107     */
108    public String getBugName() {
109        return getClass().getName();
110    }
111}
112