test/com/sun/javadoc/testLinkOption/TestLinkOption.java

Mon, 23 Jan 2017 17:03:12 -0800

author
asaha
date
Mon, 23 Jan 2017 17:03:12 -0800
changeset 3376
26c9abc6c440
parent 2366
5b8151ede720
child 2525
2eb010b6cb22
permissions
-rw-r--r--

Merge

duke@1 1 /*
bpatel@2147 2 * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
duke@1 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
duke@1 4 *
duke@1 5 * This code is free software; you can redistribute it and/or modify it
duke@1 6 * under the terms of the GNU General Public License version 2 only, as
duke@1 7 * published by the Free Software Foundation.
duke@1 8 *
duke@1 9 * This code is distributed in the hope that it will be useful, but WITHOUT
duke@1 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
duke@1 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
duke@1 12 * version 2 for more details (a copy is included in the LICENSE file that
duke@1 13 * accompanied this code).
duke@1 14 *
duke@1 15 * You should have received a copy of the GNU General Public License version
duke@1 16 * 2 along with this work; if not, write to the Free Software Foundation,
duke@1 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
duke@1 18 *
ohair@554 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
ohair@554 20 * or visit www.oracle.com if you need additional information or have any
ohair@554 21 * questions.
duke@1 22 */
duke@1 23
duke@1 24 /*
duke@1 25 * @test
ksrini@2366 26 * @bug 4720957 5020118 8026567 8038976
duke@1 27 * @summary Test to make sure that -link and -linkoffline link to
ksrini@2366 28 * right files, and URLs with and without trailing slash are accepted.
duke@1 29 * @author jamieh
duke@1 30 * @library ../lib/
bpatel@958 31 * @build JavadocTester TestLinkOption
duke@1 32 * @run main TestLinkOption
duke@1 33 */
duke@1 34
ksrini@2366 35 import java.io.File;
ksrini@2366 36
duke@1 37 public class TestLinkOption extends JavadocTester {
duke@1 38
ksrini@2366 39 private static final String BUG_ID = "4720957-5020118-8038976";
duke@1 40
duke@1 41 //Generate the documentation using -linkoffline and a URL as the first parameter.
duke@1 42 private static final String[] ARGS1 = new String[] {
duke@1 43 "-d", BUG_ID + "-1", "-sourcepath", SRC_DIR,
duke@1 44 "-linkoffline", "http://java.sun.com/j2se/1.4/docs/api/",
duke@1 45 SRC_DIR, "-package", "pkg", "java.lang"
duke@1 46 };
duke@1 47
duke@1 48 private static final String[][] TEST1 = {
duke@1 49 {BUG_ID + "-1" + FS + "pkg" + FS + "C.html",
bpatel@766 50 "<a href=\"http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html?is-external=true\" " +
bpatel@766 51 "title=\"class or interface in java.lang\"><code>Link to String Class</code></a>"
duke@1 52 },
duke@1 53 //Make sure the parameters are indented properly when the -link option is used.
duke@1 54 {BUG_ID + "-1" + FS + "pkg" + FS + "C.html",
duke@1 55 "(int&nbsp;p1," + NL +
bpatel@766 56 " int&nbsp;p2," + NL +
bpatel@766 57 " int&nbsp;p3)"
duke@1 58 },
duke@1 59 {BUG_ID + "-1" + FS + "pkg" + FS + "C.html",
duke@1 60 "(int&nbsp;p1," + NL +
bpatel@766 61 " int&nbsp;p2," + NL +
bpatel@766 62 " <a href=\"http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html?is-external=true\" title=\"class or interface in java.lang\">" +
bpatel@766 63 "Object</a>&nbsp;p3)"
duke@1 64 },
duke@1 65 {BUG_ID + "-1" + FS + "java" + FS + "lang" + FS + "StringBuilderChild.html",
bpatel@2147 66 "<pre>public abstract class <span class=\"typeNameLabel\">StringBuilderChild</span>" + NL +
bpatel@766 67 "extends <a href=\"http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html?is-external=true\" " +
bpatel@766 68 "title=\"class or interface in java.lang\">Object</a></pre>"
duke@1 69 },
duke@1 70
duke@1 71 };
duke@1 72 private static final String[][] NEGATED_TEST1 = NO_TEST;
duke@1 73
duke@1 74 //Generate the documentation using -linkoffline and a relative path as the first parameter.
duke@1 75 //We will try linking to the docs generated in test 1 with a relative path.
duke@1 76 private static final String[] ARGS2 = new String[] {
duke@1 77 "-d", BUG_ID + "-2", "-sourcepath", SRC_DIR,
duke@1 78 "-linkoffline", "../" + BUG_ID + "-1", BUG_ID + "-1", "-package", "pkg2"
duke@1 79 };
duke@1 80
duke@1 81 private static final String[][] TEST2 = {
duke@1 82 {BUG_ID + "-2" + FS + "pkg2" + FS + "C2.html",
bpatel@766 83 "This is a link to <a href=\"../../" + BUG_ID + "-1/pkg/C.html?is-external=true\" " +
bpatel@766 84 "title=\"class or interface in pkg\"><code>Class C</code></a>."
duke@1 85 }
duke@1 86 };
duke@1 87 private static final String[][] NEGATED_TEST2 = NO_TEST;
ksrini@2366 88 /*
ksrini@2366 89 * Create the documentation using the -link option, vary the behavior with
ksrini@2366 90 * both trailing and no trailing slash. We are only interested in ensuring
ksrini@2366 91 * that the command executes with no errors or related warnings.
ksrini@2366 92 */
ksrini@2366 93 static String[] createArguments(boolean withTrailingSlash) {
ksrini@2366 94 String packagePath = new File(BUG_ID + "-1").getAbsolutePath();
ksrini@2366 95 String outputDirName = BUG_ID;
ksrini@2366 96 if (withTrailingSlash) {
ksrini@2366 97 // add the trailing slash, if it is not present!
ksrini@2366 98 if (!packagePath.endsWith(FS)) {
ksrini@2366 99 packagePath = packagePath + FS;
ksrini@2366 100 }
ksrini@2366 101 outputDirName = outputDirName + "-3";
ksrini@2366 102 } else {
ksrini@2366 103 // remove the trailing slash, if it is present!
ksrini@2366 104 if (packagePath.endsWith(FS)) {
ksrini@2366 105 packagePath = packagePath.substring(0, packagePath.length() - 1);
ksrini@2366 106 }
ksrini@2366 107 outputDirName = outputDirName + "-4";
ksrini@2366 108 }
ksrini@2366 109 String args[] = {
ksrini@2366 110 "-d", outputDirName, "-sourcepath", SRC_DIR,
ksrini@2366 111 "-link", "file:///" + packagePath, "-package", "pkg2"
ksrini@2366 112 };
ksrini@2366 113 System.out.println("packagePath: " + packagePath);
ksrini@2366 114 return args;
ksrini@2366 115 }
duke@1 116 /**
duke@1 117 * The entry point of the test.
duke@1 118 * @param args the array of command line arguments.
duke@1 119 */
duke@1 120 public static void main(String[] args) {
duke@1 121 TestLinkOption tester = new TestLinkOption();
duke@1 122 run(tester, ARGS1, TEST1, NEGATED_TEST1);
duke@1 123 run(tester, ARGS2, TEST2, NEGATED_TEST2);
ksrini@2366 124 tester.runJavadoc(createArguments(true)); // with trailing slash
ksrini@2366 125 tester.runJavadoc(createArguments(false)); // without trailing slash
ksrini@2366 126 tester.printSummary();
ksrini@2366 127 if (tester.getWarningOutput().contains("warning - Error fetching URL")) {
ksrini@2366 128 throw new Error("URL rejected ?");
ksrini@2366 129 }
duke@1 130 tester.printSummary();
duke@1 131 }
duke@1 132
duke@1 133 /**
duke@1 134 * {@inheritDoc}
duke@1 135 */
duke@1 136 public String getBugId() {
duke@1 137 return BUG_ID;
duke@1 138 }
duke@1 139
duke@1 140 /**
duke@1 141 * {@inheritDoc}
duke@1 142 */
duke@1 143 public String getBugName() {
duke@1 144 return getClass().getName();
duke@1 145 }
duke@1 146 }

mercurial