test/com/sun/javadoc/testJavascript/TestJavascript.java

Thu, 24 May 2018 16:48:51 +0800

author
aoqi
date
Thu, 24 May 2018 16:48:51 +0800
changeset 3295
859dc787b52b
parent 3258
fd9b6417c521
parent 2525
2eb010b6cb22
permissions
-rw-r--r--

Merge

aoqi@0 1 /*
aoqi@0 2 * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
aoqi@0 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
aoqi@0 4 *
aoqi@0 5 * This code is free software; you can redistribute it and/or modify it
aoqi@0 6 * under the terms of the GNU General Public License version 2 only, as
aoqi@0 7 * published by the Free Software Foundation.
aoqi@0 8 *
aoqi@0 9 * This code is distributed in the hope that it will be useful, but WITHOUT
aoqi@0 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
aoqi@0 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
aoqi@0 12 * version 2 for more details (a copy is included in the LICENSE file that
aoqi@0 13 * accompanied this code).
aoqi@0 14 *
aoqi@0 15 * You should have received a copy of the GNU General Public License version
aoqi@0 16 * 2 along with this work; if not, write to the Free Software Foundation,
aoqi@0 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
aoqi@0 18 *
aoqi@0 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
aoqi@0 20 * or visit www.oracle.com if you need additional information or have any
aoqi@0 21 * questions.
aoqi@0 22 */
aoqi@0 23
aoqi@0 24 /*
aoqi@0 25 * @test
bpatel@3258 26 * @bug 4665566 4855876 7025314 8012375 8015997 8016328 8024756 8151921
aoqi@0 27 * @summary Verify that the output has the right javascript.
aoqi@0 28 * @author jamieh
aoqi@0 29 * @library ../lib/
aoqi@0 30 * @build JavadocTester
aoqi@0 31 * @build TestJavascript
aoqi@0 32 * @run main TestJavascript
aoqi@0 33 */
aoqi@0 34
aoqi@0 35 public class TestJavascript extends JavadocTester {
aoqi@0 36
aoqi@0 37 //Test information.
aoqi@0 38 private static final String BUG_ID = "4665566-4855876-8012375";
aoqi@0 39
aoqi@0 40 //Javadoc arguments.
aoqi@0 41 private static final String[] ARGS = new String[] {
aoqi@0 42 "-d", BUG_ID, "-sourcepath", SRC_DIR, "pkg", SRC_DIR + FS + "TestJavascript.java"
aoqi@0 43 };
aoqi@0 44
aoqi@0 45 //Input for string search tests.
aoqi@0 46 private static final String[][] TEST = {
aoqi@0 47 {BUG_ID + FS + "pkg" + FS + "C.html",
aoqi@0 48 "<a href=\"../index.html?pkg/C.html\" target=\"_top\">Frames</a>"},
aoqi@0 49 {BUG_ID + FS + "TestJavascript.html",
aoqi@0 50 "<a href=\"index.html?TestJavascript.html\" target=\"_top\">Frames</a>"},
aoqi@0 51 {BUG_ID + FS + "index.html",
aoqi@0 52 "<script type=\"text/javascript\">" + NL +
bpatel@3258 53 " tmpTargetPage = \"\" + window.location.search;" + NL +
bpatel@3258 54 " if (tmpTargetPage != \"\" && tmpTargetPage != \"undefined\")" + NL +
bpatel@3258 55 " tmpTargetPage = tmpTargetPage.substring(1);" + NL +
bpatel@3258 56 " if (tmpTargetPage.indexOf(\":\") != -1 || (tmpTargetPage != \"\" && !validURL(tmpTargetPage)))" + NL +
bpatel@3258 57 " tmpTargetPage = \"undefined\";" + NL +
bpatel@3258 58 " targetPage = tmpTargetPage;" + NL +
aoqi@0 59 " function validURL(url) {" + NL +
aoqi@0 60 " try {" + NL +
aoqi@0 61 " url = decodeURIComponent(url);" + NL +
aoqi@0 62 " }" + NL +
aoqi@0 63 " catch (error) {" + NL +
aoqi@0 64 " return false;" + NL +
aoqi@0 65 " }" + NL +
aoqi@0 66 " var pos = url.indexOf(\".html\");" + NL +
aoqi@0 67 " if (pos == -1 || pos != url.length - 5)" + NL +
aoqi@0 68 " return false;" + NL +
aoqi@0 69 " var allowNumber = false;" + NL +
aoqi@0 70 " var allowSep = false;" + NL +
aoqi@0 71 " var seenDot = false;" + NL +
aoqi@0 72 " for (var i = 0; i < url.length - 5; i++) {" + NL +
aoqi@0 73 " var ch = url.charAt(i);" + NL +
aoqi@0 74 " if ('a' <= ch && ch <= 'z' ||" + NL +
aoqi@0 75 " 'A' <= ch && ch <= 'Z' ||" + NL +
aoqi@0 76 " ch == '$' ||" + NL +
aoqi@0 77 " ch == '_' ||" + NL +
aoqi@0 78 " ch.charCodeAt(0) > 127) {" + NL +
aoqi@0 79 " allowNumber = true;" + NL +
aoqi@0 80 " allowSep = true;" + NL +
aoqi@0 81 " } else if ('0' <= ch && ch <= '9'" + NL +
aoqi@0 82 " || ch == '-') {" + NL +
aoqi@0 83 " if (!allowNumber)" + NL +
aoqi@0 84 " return false;" + NL +
aoqi@0 85 " } else if (ch == '/' || ch == '.') {" + NL +
aoqi@0 86 " if (!allowSep)" + NL +
aoqi@0 87 " return false;" + NL +
aoqi@0 88 " allowNumber = false;" + NL +
aoqi@0 89 " allowSep = false;" + NL +
aoqi@0 90 " if (ch == '.')" + NL +
aoqi@0 91 " seenDot = true;" + NL +
aoqi@0 92 " if (ch == '/' && seenDot)" + NL +
aoqi@0 93 " return false;" + NL +
aoqi@0 94 " } else {" + NL +
aoqi@0 95 " return false;" + NL +
aoqi@0 96 " }" + NL +
aoqi@0 97 " }" + NL +
aoqi@0 98 " return true;" + NL +
aoqi@0 99 " }" + NL +
aoqi@0 100 " function loadFrames() {" + NL +
aoqi@0 101 " if (targetPage != \"\" && targetPage != \"undefined\")" + NL +
aoqi@0 102 " top.classFrame.location = top.targetPage;" + NL +
aoqi@0 103 " }" + NL +
aoqi@0 104 "</script>"},
aoqi@0 105
aoqi@0 106 //Make sure title javascript only runs if is-external is not true
aoqi@0 107 {BUG_ID + FS + "pkg" + FS + "C.html",
aoqi@0 108 " try {" + NL +
aoqi@0 109 " if (location.href.indexOf('is-external=true') == -1) {" + NL +
aoqi@0 110 " parent.document.title=\"C\";" + NL +
aoqi@0 111 " }" + NL +
aoqi@0 112 " }" + NL +
aoqi@0 113 " catch(err) {" + NL +
aoqi@0 114 " }"},
aoqi@0 115 };
aoqi@0 116
aoqi@0 117 private static final String[][] NEGATED_TEST = NO_TEST;
aoqi@0 118
aoqi@0 119 /**
aoqi@0 120 * The entry point of the test.
aoqi@0 121 * @param args the array of command line arguments.
aoqi@0 122 */
aoqi@0 123 public static void main(String[] args) {
aoqi@0 124 TestJavascript tester = new TestJavascript();
aoqi@0 125 run(tester, ARGS, TEST, NEGATED_TEST);
aoqi@0 126 tester.printSummary();
aoqi@0 127 }
aoqi@0 128
aoqi@0 129 /**
aoqi@0 130 * {@inheritDoc}
aoqi@0 131 */
aoqi@0 132 public String getBugId() {
aoqi@0 133 return BUG_ID;
aoqi@0 134 }
aoqi@0 135
aoqi@0 136 /**
aoqi@0 137 * {@inheritDoc}
aoqi@0 138 */
aoqi@0 139 public String getBugName() {
aoqi@0 140 return getClass().getName();
aoqi@0 141 }
aoqi@0 142 }

mercurial