f2a30dcb3e
Reviewed-by: jjg
731 lines
37 KiB
Java
731 lines
37 KiB
Java
/*
|
|
* Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
* under the terms of the GNU General Public License version 2 only, as
|
|
* published by the Free Software Foundation.
|
|
*
|
|
* This code is distributed in the hope that it will be useful, but WITHOUT
|
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
* version 2 for more details (a copy is included in the LICENSE file that
|
|
* accompanied this code).
|
|
*
|
|
* You should have received a copy of the GNU General Public License version
|
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
*
|
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
* or visit www.oracle.com if you need additional information or have any
|
|
* questions.
|
|
*/
|
|
|
|
/*
|
|
* @test
|
|
* @bug 8141492 8071982 8141636 8147890 8166175 8168965 8176794 8175218 8147881
|
|
* 8181622 8182263 8074407 8187521 8198522 8182765 8199278 8196201 8196202
|
|
* @summary Test the search feature of javadoc.
|
|
* @author bpatel
|
|
* @library ../lib
|
|
* @modules jdk.javadoc/jdk.javadoc.internal.tool
|
|
* @build JavadocTester
|
|
* @run main TestSearch
|
|
*/
|
|
public class TestSearch extends JavadocTester {
|
|
|
|
public static void main(String... args) throws Exception {
|
|
TestSearch tester = new TestSearch();
|
|
tester.runTests();
|
|
}
|
|
|
|
@Test
|
|
void test1() {
|
|
javadoc("-d", "out-1",
|
|
"-sourcepath",
|
|
"-use",
|
|
testSrc("UnnamedPkgClass.java"));
|
|
checkExit(Exit.OK);
|
|
checkSearchOutput("UnnamedPkgClass.html", true, true);
|
|
checkJqueryAndImageFiles(true);
|
|
checkSearchJS();
|
|
checkFiles(false,
|
|
"tag-search-index.zip",
|
|
"tag-search-index.js");
|
|
checkFiles(true,
|
|
"package-search-index.zip",
|
|
"member-search-index.zip",
|
|
"type-search-index.zip",
|
|
"package-search-index.js",
|
|
"member-search-index.js",
|
|
"type-search-index.js");
|
|
}
|
|
|
|
@Test
|
|
void test2() {
|
|
javadoc("-d", "out-2",
|
|
"-Xdoclint:none",
|
|
"-sourcepath", testSrc,
|
|
"-use",
|
|
"--frames",
|
|
"pkg", "pkg1", "pkg2", "pkg3");
|
|
checkExit(Exit.OK);
|
|
checkInvalidUsageIndexTag();
|
|
checkSearchOutput(true);
|
|
checkSingleIndex(true, true);
|
|
checkSingleIndexSearchTagDuplication();
|
|
checkJqueryAndImageFiles(true);
|
|
checkSearchJS();
|
|
checkAllPkgsAllClasses();
|
|
checkFiles(true,
|
|
"member-search-index.zip",
|
|
"package-search-index.zip",
|
|
"tag-search-index.zip",
|
|
"type-search-index.zip",
|
|
"member-search-index.js",
|
|
"package-search-index.js",
|
|
"tag-search-index.js",
|
|
"type-search-index.js");
|
|
}
|
|
|
|
@Test
|
|
void test2_html4() {
|
|
javadoc("-d", "out-2-html4",
|
|
"-html4",
|
|
"-Xdoclint:none",
|
|
"-sourcepath", testSrc,
|
|
"-use",
|
|
"pkg", "pkg1", "pkg2", "pkg3");
|
|
checkExit(Exit.OK);
|
|
checkSingleIndex(true, false);
|
|
}
|
|
|
|
@Test
|
|
void test2a() {
|
|
javadoc("-d", "out-2a",
|
|
"-Xdoclint:all",
|
|
"-sourcepath", testSrc,
|
|
"-use",
|
|
"--frames",
|
|
"pkg", "pkg1", "pkg2", "pkg3");
|
|
checkExit(Exit.ERROR);
|
|
checkDocLintErrors();
|
|
checkSearchOutput(true);
|
|
checkSingleIndex(true, true);
|
|
checkSingleIndexSearchTagDuplication();
|
|
checkJqueryAndImageFiles(true);
|
|
checkSearchJS();
|
|
checkFiles(true,
|
|
"member-search-index.zip",
|
|
"package-search-index.zip",
|
|
"tag-search-index.zip",
|
|
"type-search-index.zip",
|
|
"member-search-index.js",
|
|
"package-search-index.js",
|
|
"tag-search-index.js",
|
|
"type-search-index.js");
|
|
}
|
|
|
|
@Test
|
|
void test2a_html4() {
|
|
javadoc("-d", "out-2a-html4",
|
|
"-html4",
|
|
"-Xdoclint:all",
|
|
"-sourcepath", testSrc,
|
|
"-use",
|
|
"pkg", "pkg1", "pkg2", "pkg3");
|
|
checkSingleIndex(true, false);
|
|
}
|
|
|
|
@Test
|
|
void test3() {
|
|
javadoc("-d", "out-3",
|
|
"-noindex",
|
|
"-Xdoclint:none",
|
|
"-sourcepath", testSrc,
|
|
"-use",
|
|
"--frames",
|
|
"pkg", "pkg1", "pkg2", "pkg3");
|
|
checkExit(Exit.OK);
|
|
checkSearchOutput(false);
|
|
checkJqueryAndImageFiles(false);
|
|
checkFiles(false,
|
|
"member-search-index.zip",
|
|
"package-search-index.zip",
|
|
"tag-search-index.zip",
|
|
"type-search-index.zip",
|
|
"member-search-index.js",
|
|
"package-search-index.js",
|
|
"tag-search-index.js",
|
|
"type-search-index.js",
|
|
"index-all.html",
|
|
"allpackages-index.html",
|
|
"allclasses-index.html");
|
|
}
|
|
|
|
@Test
|
|
void test4() {
|
|
javadoc("-d", "out-4",
|
|
"-html5",
|
|
"-Xdoclint:none",
|
|
"-sourcepath", testSrc,
|
|
"-use",
|
|
"--frames",
|
|
"pkg", "pkg1", "pkg2", "pkg3");
|
|
checkExit(Exit.OK);
|
|
checkSearchOutput(true);
|
|
checkSingleIndex(true, true);
|
|
checkSingleIndexSearchTagDuplication();
|
|
checkJqueryAndImageFiles(true);
|
|
checkSearchJS();
|
|
checkFiles(true,
|
|
"member-search-index.zip",
|
|
"package-search-index.zip",
|
|
"tag-search-index.zip",
|
|
"type-search-index.zip",
|
|
"member-search-index.js",
|
|
"package-search-index.js",
|
|
"tag-search-index.js",
|
|
"type-search-index.js");
|
|
}
|
|
|
|
@Test
|
|
void test5() {
|
|
javadoc("-d", "out-5",
|
|
"-html5",
|
|
"-noindex",
|
|
"-Xdoclint:none",
|
|
"-sourcepath", testSrc,
|
|
"-use",
|
|
"--frames",
|
|
"pkg", "pkg1", "pkg2", "pkg3");
|
|
checkExit(Exit.OK);
|
|
checkSearchOutput(false);
|
|
checkJqueryAndImageFiles(false);
|
|
checkFiles(false,
|
|
"member-search-index.zip",
|
|
"package-search-index.zip",
|
|
"tag-search-index.zip",
|
|
"type-search-index.zip",
|
|
"member-search-index.js",
|
|
"package-search-index.js",
|
|
"tag-search-index.js",
|
|
"type-search-index.js",
|
|
"index-all.html");
|
|
}
|
|
|
|
@Test
|
|
void test6() {
|
|
javadoc("-d", "out-6",
|
|
"-nocomment",
|
|
"-Xdoclint:none",
|
|
"-sourcepath", testSrc,
|
|
"-use",
|
|
"--frames",
|
|
"pkg", "pkg1", "pkg2", "pkg3");
|
|
checkExit(Exit.OK);
|
|
checkSearchOutput(true);
|
|
checkIndexNoComment();
|
|
checkJqueryAndImageFiles(true);
|
|
checkSearchJS();
|
|
checkFiles(true,
|
|
"member-search-index.zip",
|
|
"package-search-index.zip",
|
|
"tag-search-index.zip",
|
|
"type-search-index.zip",
|
|
"member-search-index.js",
|
|
"package-search-index.js",
|
|
"tag-search-index.js",
|
|
"type-search-index.js");
|
|
}
|
|
|
|
@Test
|
|
void test7() {
|
|
javadoc("-d", "out-7",
|
|
"-nodeprecated",
|
|
"-Xdoclint:none",
|
|
"-sourcepath", testSrc,
|
|
"-use",
|
|
"--frames",
|
|
"pkg", "pkg1", "pkg2", "pkg3");
|
|
|
|
checkExit(Exit.OK);
|
|
checkSearchOutput(true);
|
|
checkIndexNoDeprecated();
|
|
checkJqueryAndImageFiles(true);
|
|
checkSearchJS();
|
|
checkFiles(true,
|
|
"member-search-index.zip",
|
|
"package-search-index.zip",
|
|
"tag-search-index.zip",
|
|
"type-search-index.zip",
|
|
"member-search-index.js",
|
|
"package-search-index.js",
|
|
"tag-search-index.js",
|
|
"type-search-index.js");
|
|
}
|
|
|
|
@Test
|
|
void test8() {
|
|
javadoc("-d", "out-8",
|
|
"-splitindex",
|
|
"-Xdoclint:none",
|
|
"-sourcepath", testSrc,
|
|
"-use",
|
|
"--frames",
|
|
"pkg", "pkg1", "pkg2", "pkg3");
|
|
checkExit(Exit.OK);
|
|
checkInvalidUsageIndexTag();
|
|
checkSearchOutput(true);
|
|
checkSplitIndex();
|
|
checkSplitIndexSearchTagDuplication();
|
|
checkJqueryAndImageFiles(true);
|
|
checkSearchJS();
|
|
checkFiles(true,
|
|
"member-search-index.zip",
|
|
"package-search-index.zip",
|
|
"tag-search-index.zip",
|
|
"type-search-index.zip",
|
|
"member-search-index.js",
|
|
"package-search-index.js",
|
|
"tag-search-index.js",
|
|
"type-search-index.js");
|
|
}
|
|
|
|
@Test
|
|
void test9() {
|
|
javadoc("-d", "out-9",
|
|
"-sourcepath", testSrc,
|
|
"-javafx",
|
|
"--disable-javafx-strict-checks",
|
|
"-package",
|
|
"-use",
|
|
"--frames",
|
|
"pkgfx", "pkg3");
|
|
checkExit(Exit.OK);
|
|
checkSearchOutput(true);
|
|
checkJavaFXOutput();
|
|
checkJqueryAndImageFiles(true);
|
|
checkSearchJS();
|
|
checkFiles(false,
|
|
"tag-search-index.zip",
|
|
"tag-search-index.js");
|
|
checkFiles(true,
|
|
"member-search-index.zip",
|
|
"package-search-index.zip",
|
|
"type-search-index.zip",
|
|
"member-search-index.js",
|
|
"package-search-index.js",
|
|
"type-search-index.js");
|
|
}
|
|
|
|
@Test
|
|
void testNoModuleDirectories() {
|
|
javadoc("-d", "out-noMdlDir",
|
|
"--no-module-directories",
|
|
"-Xdoclint:none",
|
|
"-sourcepath", testSrc,
|
|
"-use",
|
|
"--frames",
|
|
"pkg", "pkg1", "pkg2", "pkg3");
|
|
checkExit(Exit.OK);
|
|
checkSearchOutput(true, false);
|
|
checkSearchJS();
|
|
}
|
|
|
|
@Test
|
|
void testURLEncoding() {
|
|
javadoc("-d", "out-encode-html5",
|
|
"--no-module-directories",
|
|
"-Xdoclint:none",
|
|
"-sourcepath", testSrc,
|
|
"-use",
|
|
"pkg", "pkg1", "pkg2", "pkg3");
|
|
checkExit(Exit.OK);
|
|
checkSearchJS();
|
|
checkSearchIndex(true);
|
|
}
|
|
|
|
@Test
|
|
void testURLEncoding_html4() {
|
|
javadoc("-d", "out-encode-html4",
|
|
"-html4",
|
|
"--no-module-directories",
|
|
"-Xdoclint:none",
|
|
"-sourcepath", testSrc,
|
|
"-use",
|
|
"--frames",
|
|
"pkg", "pkg1", "pkg2", "pkg3");
|
|
checkExit(Exit.OK);
|
|
checkSearchJS();
|
|
checkSearchIndex(false);
|
|
}
|
|
|
|
void checkDocLintErrors() {
|
|
checkOutput(Output.OUT, true,
|
|
"A sample method. Testing search tag for {@index \"unclosed quote}.",
|
|
"Another test class. Testing empty {@index }.",
|
|
"Constant field. Testing no text in index tag {@index}.",
|
|
"A test field. Testing only white-spaces in index tag text {@index }.");
|
|
}
|
|
|
|
void checkSearchOutput(boolean expectedOutput) {
|
|
checkSearchOutput("overview-summary.html", expectedOutput, true);
|
|
}
|
|
|
|
void checkSearchIndex(boolean expectedOutput) {
|
|
checkOutput("member-search-index.js", expectedOutput,
|
|
"{\"p\":\"pkg\",\"c\":\"AnotherClass\",\"l\":\"AnotherClass()\",\"url\":\"%3Cinit%3E()\"}",
|
|
"{\"p\":\"pkg1\",\"c\":\"RegClass\",\"l\":\"RegClass()\",\"url\":\"%3Cinit%3E()\"}",
|
|
"{\"p\":\"pkg2\",\"c\":\"TestError\",\"l\":\"TestError()\",\"url\":\"%3Cinit%3E()\"}",
|
|
"{\"p\":\"pkg\",\"c\":\"AnotherClass\",\"l\":\"method(byte[], int, String)\",\"url\":\"method(byte[],int,java.lang.String)\"}");
|
|
checkOutput("member-search-index.js", !expectedOutput,
|
|
"{\"p\":\"pkg\",\"c\":\"AnotherClass\",\"l\":\"method(RegClass)\",\"url\":\"method-pkg1.RegClass-\"}",
|
|
"{\"p\":\"pkg2\",\"c\":\"TestClass\",\"l\":\"TestClass()\",\"url\":\"TestClass--\"}",
|
|
"{\"p\":\"pkg\",\"c\":\"TestError\",\"l\":\"TestError()\",\"url\":\"TestError--\"}",
|
|
"{\"p\":\"pkg\",\"c\":\"AnotherClass\",\"l\":\"method(byte[], int, String)\",\"url\":\"method-byte:A-int-java.lang.String-\"}");
|
|
}
|
|
|
|
void checkSearchOutput(boolean expectedOutput, boolean moduleDirectoriesVar) {
|
|
checkSearchOutput("overview-summary.html", expectedOutput, moduleDirectoriesVar);
|
|
}
|
|
|
|
void checkSearchOutput(String fileName, boolean expectedOutput, boolean moduleDirectoriesVar) {
|
|
// Test for search related markup
|
|
checkOutput(fileName, expectedOutput,
|
|
"<link rel=\"stylesheet\" type=\"text/css\" href=\"jquery/jquery-ui.css\" title=\"Style\">\n",
|
|
"<script type=\"text/javascript\" src=\"jquery/jszip/dist/jszip.min.js\"></script>\n",
|
|
"<script type=\"text/javascript\" src=\"jquery/jszip-utils/dist/jszip-utils.min.js\"></script>\n",
|
|
"<!--[if IE]>\n",
|
|
"<script type=\"text/javascript\" src=\"jquery/jszip-utils/dist/jszip-utils-ie.min.js\"></script>\n",
|
|
"<![endif]-->\n",
|
|
"<script type=\"text/javascript\" src=\"jquery/jquery-1.12.4.js\"></script>\n",
|
|
"<script type=\"text/javascript\" src=\"jquery/jquery-ui.js\"></script>",
|
|
"var pathtoroot = \"./\";\n"
|
|
+ "var useModuleDirectories = " + moduleDirectoriesVar + ";\n"
|
|
+ "loadScripts(document, 'script');",
|
|
"<ul class=\"navListSearch\">\n",
|
|
"<li><label for=\"search\">SEARCH:</label>\n"
|
|
+ "<input type=\"text\" id=\"search\" value=\"search\" disabled=\"disabled\">\n"
|
|
+ "<input type=\"reset\" id=\"reset\" value=\"reset\" disabled=\"disabled\">\n");
|
|
checkOutput(fileName, true,
|
|
"<div class=\"fixedNav\">");
|
|
}
|
|
|
|
void checkSingleIndex(boolean expectedOutput, boolean html5) {
|
|
String html_span_see_span = html5 ? "html%3Cspan%3Esee%3C/span%3E" : "html-span-see-/span-";
|
|
|
|
// Test for search tags markup in index file.
|
|
checkOutput("index-all.html", expectedOutput,
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg/package-summary.html#phrasewithspaces\">"
|
|
+ "phrase with spaces</a></span> - Search tag in pkg</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg/package-summary.html#pkg\">"
|
|
+ "pkg</a></span> - Search tag in pkg</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg/package-summary.html#pkg2.5\">"
|
|
+ "pkg2.5</a></span> - Search tag in pkg</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg/package-summary.html#r\">"
|
|
+ "r</a></span> - Search tag in pkg</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg1/RegClass.html#searchphrase\">"
|
|
+ "search phrase</a></span> - Search tag in pkg1.RegClass</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg1/RegClass.html#SearchWordWithDescription\">"
|
|
+ "SearchWordWithDescription</a></span> - Search tag in pkg1.RegClass.CONSTANT_FIELD_1</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestAnnotationType.html#searchphrasewithdescdeprecated\">"
|
|
+ "search phrase with desc deprecated</a></span> - Search tag in pkg2.TestAnnotationType</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestClass.html#SearchTagDeprecatedClass\">"
|
|
+ "SearchTagDeprecatedClass</a></span> - Search tag in pkg2.TestClass</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestEnum.html#searchphrasedeprecated\">"
|
|
+ "search phrase deprecated</a></span> - Search tag in pkg2.TestEnum.ONE</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestEnum.html#searchphrasedeprecated\">"
|
|
+ "search phrase deprecated</a></span> - Search tag in pkg2.TestEnum.ONE</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestError.html#SearchTagDeprecatedMethod\">"
|
|
+ "SearchTagDeprecatedMethod</a></span> - Search tag in pkg2.TestError</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestError.html#SearchTagDeprecatedMethod\">"
|
|
+ "SearchTagDeprecatedMethod</a></span> - Search tag in pkg2.TestError</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg/package-summary.html#SingleWord\">"
|
|
+ "SingleWord</a></span> - Search tag in pkg</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg/AnotherClass.ModalExclusionType.html"
|
|
+ "#nested%7B@indexnested_tag_test%7D\">nested {@index nested_tag_test}</a></span> - "
|
|
+ "Search tag in pkg.AnotherClass.ModalExclusionType.NO_EXCLUDE</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg/AnotherClass.ModalExclusionType.html"
|
|
+ "#" + html_span_see_span + "\">html <span> see </span></a></span> - Search "
|
|
+ "tag in pkg.AnotherClass.ModalExclusionType.APPLICATION_EXCLUDE</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg/AnotherClass.html#quoted\">quoted</a>"
|
|
+ "</span> - Search tag in pkg.AnotherClass.CONSTANT1</dt>",
|
|
"<dt><span class=\"memberNameLink\"><a href=\"pkg2/TestEnum.html#ONE\">ONE</a></span> - "
|
|
+ "pkg2.<a href=\"pkg2/TestEnum.html\" title=\"enum in pkg2\">TestEnum</a></dt>",
|
|
"<dt><span class=\"memberNameLink\"><a href=\"pkg2/TestEnum.html#THREE\">THREE</a></span> - "
|
|
+ "pkg2.<a href=\"pkg2/TestEnum.html\" title=\"enum in pkg2\">TestEnum</a></dt>",
|
|
"<dt><span class=\"memberNameLink\"><a href=\"pkg2/TestEnum.html#TWO\">TWO</a></span> - "
|
|
+ "pkg2.<a href=\"pkg2/TestEnum.html\" title=\"enum in pkg2\">TestEnum</a></dt>");
|
|
checkOutput("index-all.html", true,
|
|
"<div class=\"deprecationComment\">class_test1 passes. Search tag"
|
|
+ " <a id=\"SearchTagDeprecatedClass\" class=\"searchTagResult\">SearchTagDeprecatedClass</a></div>",
|
|
"<div class=\"deprecationComment\">error_test3 passes. Search tag for\n"
|
|
+ " method <a id=\"SearchTagDeprecatedMethod\" class=\"searchTagResult\">SearchTagDeprecatedMethod</a></div>");
|
|
}
|
|
|
|
void checkSplitIndex() {
|
|
// Test for search tags markup in split index file.
|
|
checkOutput("index-files/index-13.html", true,
|
|
"<dt><span class=\"searchTagLink\"><a href=\"../pkg1/RegClass.html#searchphrase\">"
|
|
+ "search phrase</a></span> - Search tag in pkg1.RegClass</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"../pkg1/RegClass.html#SearchWordWithDescription\">"
|
|
+ "SearchWordWithDescription</a></span> - Search tag in pkg1.RegClass.CONSTANT_FIELD_1</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"../pkg2/TestAnnotationType.html#searchphrasewithdescdeprecated\">"
|
|
+ "search phrase with desc deprecated</a></span> - Search tag in pkg2.TestAnnotationType</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"../pkg2/TestClass.html#SearchTagDeprecatedClass\">"
|
|
+ "SearchTagDeprecatedClass</a></span> - Search tag in pkg2.TestClass</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"../pkg2/TestEnum.html#searchphrasedeprecated\">"
|
|
+ "search phrase deprecated</a></span> - Search tag in pkg2.TestEnum.ONE</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"../pkg2/TestEnum.html#searchphrasedeprecated\">"
|
|
+ "search phrase deprecated</a></span> - Search tag in pkg2.TestEnum.ONE</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"../pkg2/TestError.html#SearchTagDeprecatedMethod\">"
|
|
+ "SearchTagDeprecatedMethod</a></span> - Search tag in pkg2.TestError</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"../pkg2/TestError.html#SearchTagDeprecatedMethod\">"
|
|
+ "SearchTagDeprecatedMethod</a></span> - Search tag in pkg2.TestError</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"../pkg/package-summary.html#SingleWord\">"
|
|
+ "SingleWord</a></span> - Search tag in pkg</dt>",
|
|
"<br><a href=\"../allclasses-index.html\">All Classes</a> "
|
|
+ "<a href=\"../allpackages-index.html\">All Packages</a>");
|
|
checkOutput("index-files/index-10.html", true,
|
|
"<dt><span class=\"searchTagLink\"><a href=\"../pkg/package-summary.html#phrasewithspaces\">"
|
|
+ "phrase with spaces</a></span> - Search tag in pkg</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"../pkg/package-summary.html#pkg\">"
|
|
+ "pkg</a></span> - Search tag in pkg</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"../pkg/package-summary.html#pkg2.5\">"
|
|
+ "pkg2.5</a></span> - Search tag in pkg</dt>");
|
|
checkOutput("index-files/index-12.html", true,
|
|
"<dt><span class=\"searchTagLink\"><a href=\"../pkg/package-summary.html#r\">"
|
|
+ "r</a></span> - Search tag in pkg</dt>");
|
|
checkOutput("index-files/index-8.html", true,
|
|
"<dt><span class=\"searchTagLink\"><a href=\"../pkg/AnotherClass.ModalExclusionType.html"
|
|
+ "#nested%7B@indexnested_tag_test%7D\">nested {@index nested_tag_test}</a></span> - "
|
|
+ "Search tag in pkg.AnotherClass.ModalExclusionType.NO_EXCLUDE</dt>");
|
|
checkOutput("index-files/index-5.html", true,
|
|
"<dt><span class=\"searchTagLink\"><a href=\"../pkg/AnotherClass.ModalExclusionType.html"
|
|
+ "#html%3Cspan%3Esee%3C/span%3E\">html <span> see </span></a></span> - Search "
|
|
+ "tag in pkg.AnotherClass.ModalExclusionType.APPLICATION_EXCLUDE</dt>");
|
|
checkOutput("index-files/index-11.html", true,
|
|
"<dt><span class=\"searchTagLink\"><a href=\"../pkg/AnotherClass.html#quoted\">quoted</a>"
|
|
+ "</span> - Search tag in pkg.AnotherClass.CONSTANT1</dt>");
|
|
checkOutput("index-files/index-9.html", true,
|
|
"<dt><span class=\"memberNameLink\"><a href=\"../pkg2/TestEnum.html#ONE\">ONE</a>"
|
|
+ "</span> - pkg2.<a href=\"../pkg2/TestEnum.html\" title=\"enum in pkg2\">TestEnum</a></dt>");
|
|
checkOutput("index-files/index-14.html", true,
|
|
"<dt><span class=\"memberNameLink\"><a href=\"../pkg2/TestEnum.html#THREE\">THREE</a></span> - "
|
|
+ "pkg2.<a href=\"../pkg2/TestEnum.html\" title=\"enum in pkg2\">TestEnum</a></dt>",
|
|
"<dt><span class=\"memberNameLink\"><a href=\"../pkg2/TestEnum.html#TWO\">TWO</a></span> - "
|
|
+ "pkg2.<a href=\"../pkg2/TestEnum.html\" title=\"enum in pkg2\">TestEnum</a></dt>");
|
|
}
|
|
|
|
void checkIndexNoComment() {
|
|
// Test for search tags markup in index file when javadoc is executed with -nocomment.
|
|
checkOutput("index-all.html", false,
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg/package-summary.html#phrasewithspaces\">"
|
|
+ "phrase with spaces</a></span> - Search tag in pkg</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg/package-summary.html#pkg\">"
|
|
+ "pkg</a></span> - Search tag in pkg</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg/package-summary.html#pkg2.5\">"
|
|
+ "pkg2.5</a></span> - Search tag in pkg</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg/package-summary.html#r\">"
|
|
+ "r</a></span> - Search tag in pkg</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg1/RegClass.html#searchphrase\">"
|
|
+ "search phrase</a></span> - Search tag in pkg1.RegClass</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg1/RegClass.html#SearchWordWithDescription\">"
|
|
+ "SearchWordWithDescription</a></span> - Search tag in pkg1.RegClass.CONSTANT_FIELD_1</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestAnnotationType.html#searchphrasewithdescdeprecated\">"
|
|
+ "search phrase with desc deprecated</a></span> - Search tag in pkg2.TestAnnotationType</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestClass.html#SearchTagDeprecatedClass\">"
|
|
+ "SearchTagDeprecatedClass</a></span> - Search tag in pkg2.TestClass</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg/package-summary.html#SingleWord\">"
|
|
+ "SingleWord</a></span> - Search tag in pkg</dt>",
|
|
"<div class=\"deprecationComment\">class_test1 passes. Search tag"
|
|
+ " <a id=\"SearchTagDeprecatedClass\">SearchTagDeprecatedClass</a></div>",
|
|
"<div class=\"deprecationComment\">error_test3 passes. Search tag for\n"
|
|
+ " method <a id=\"SearchTagDeprecatedMethod\">SearchTagDeprecatedMethod</a></div>");
|
|
checkOutput("index-all.html", true,
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestEnum.html#searchphrasedeprecated\">"
|
|
+ "search phrase deprecated</a></span> - Search tag in pkg2.TestEnum.ONE</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestError.html#SearchTagDeprecatedMethod\">"
|
|
+ "SearchTagDeprecatedMethod</a></span> - Search tag in pkg2.TestError</dt>");
|
|
}
|
|
|
|
void checkIndexNoDeprecated() {
|
|
// Test for search tags markup in index file when javadoc is executed using -nodeprecated.
|
|
checkOutput("index-all.html", true,
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg/package-summary.html#phrasewithspaces\">"
|
|
+ "phrase with spaces</a></span> - Search tag in pkg</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg1/RegClass.html#searchphrase\">"
|
|
+ "search phrase</a></span> - Search tag in pkg1.RegClass</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg1/RegClass.html#SearchWordWithDescription\">"
|
|
+ "SearchWordWithDescription</a></span> - Search tag in pkg1.RegClass.CONSTANT_FIELD_1</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg/package-summary.html#SingleWord\">"
|
|
+ "SingleWord</a></span> - Search tag in pkg</dt>");
|
|
checkOutput("index-all.html", false,
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestAnnotationType.html#searchphrasewithdescdeprecated\">"
|
|
+ "search phrase with desc deprecated</a></span> - Search tag in pkg2.TestAnnotationType</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestClass.html#SearchTagDeprecatedClass\">"
|
|
+ "SearchTagDeprecatedClass</a></span> - Search tag in pkg2.TestClass</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestEnum.html#searchphrasedeprecated\">"
|
|
+ "search phrase deprecated</a></span> - Search tag in pkg2.TestEnum.ONE</dt>",
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestError.html#SearchTagDeprecatedMethod\">"
|
|
+ "SearchTagDeprecatedMethod</a></span> - Search tag in pkg2.TestError</dt>",
|
|
"<div class=\"deprecationComment\">class_test1 passes. Search tag"
|
|
+ " <a id=\"SearchTagDeprecatedClass\">SearchTagDeprecatedClass</a></div>",
|
|
"<div class=\"deprecationComment\">error_test3 passes. Search tag for\n"
|
|
+ " method <a id=\"SearchTagDeprecatedMethod\">SearchTagDeprecatedMethod</a></div>");
|
|
}
|
|
|
|
void checkJavaFXOutput() {
|
|
checkOutput("index-all.html", false, "test treat as private");
|
|
}
|
|
|
|
void checkInvalidUsageIndexTag() {
|
|
checkOutput(Output.OUT, true,
|
|
"AnotherClass.java:29: warning - invalid usage of tag {@index",
|
|
"AnotherClass.java:41: warning - invalid usage of tag {@index",
|
|
"AnotherClass.java:36: warning - invalid usage of tag {@index",
|
|
"AnotherClass.java:70: warning - invalid usage of tag {@index");
|
|
}
|
|
|
|
void checkJqueryAndImageFiles(boolean expectedOutput) {
|
|
checkFiles(expectedOutput,
|
|
"search.js",
|
|
"jquery/jquery-1.12.4.js",
|
|
"jquery/jquery-ui.js",
|
|
"jquery/jquery-ui.css",
|
|
"jquery/jquery-ui.min.js",
|
|
"jquery/jquery-ui.min.css",
|
|
"jquery/jquery-ui.structure.min.css",
|
|
"jquery/jquery-ui.structure.css",
|
|
"jquery/external/jquery/jquery.js",
|
|
"jquery/jszip/dist/jszip.js",
|
|
"jquery/jszip/dist/jszip.min.js",
|
|
"jquery/jszip-utils/dist/jszip-utils.js",
|
|
"jquery/jszip-utils/dist/jszip-utils.min.js",
|
|
"jquery/jszip-utils/dist/jszip-utils-ie.js",
|
|
"jquery/jszip-utils/dist/jszip-utils-ie.min.js",
|
|
"jquery/images/ui-bg_flat_0_aaaaaa_40x100.png",
|
|
"jquery/images/ui-icons_454545_256x240.png",
|
|
"jquery/images/ui-bg_glass_95_fef1ec_1x400.png",
|
|
"jquery/images/ui-bg_glass_75_dadada_1x400.png",
|
|
"jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png",
|
|
"jquery/images/ui-icons_888888_256x240.png",
|
|
"jquery/images/ui-icons_2e83ff_256x240.png",
|
|
"jquery/images/ui-bg_glass_65_ffffff_1x400.png",
|
|
"jquery/images/ui-icons_cd0a0a_256x240.png",
|
|
"jquery/images/ui-bg_glass_55_fbf9ee_1x400.png",
|
|
"jquery/images/ui-icons_222222_256x240.png",
|
|
"jquery/images/ui-bg_glass_75_e6e6e6_1x400.png",
|
|
"jquery/images/ui-bg_flat_75_ffffff_40x100.png",
|
|
"resources/x.png",
|
|
"resources/glass.png");
|
|
}
|
|
|
|
void checkSearchJS() {
|
|
checkOutput("search.js", true,
|
|
"camelCaseRegexp = ($.ui.autocomplete.escapeRegex(request.term)).split(/(?=[A-Z])/).join(\"([a-z0-9_$]*?)\");",
|
|
"var camelCaseMatcher = new RegExp(\"^\" + camelCaseRegexp);",
|
|
"camelCaseMatcher.test(item.l)",
|
|
"var secondaryresult = new Array();",
|
|
"function nestedName(e) {",
|
|
"function sortAndConcatResults(a1, a2) {",
|
|
"if (exactMatcher.test(item.l)) {\n"
|
|
+ " presult.unshift(item);",
|
|
"$(\"#search\").on('click keydown', function() {\n"
|
|
+ " if ($(this).val() == watermark) {\n"
|
|
+ " $(this).val('').removeClass('watermark');\n"
|
|
+ " }\n"
|
|
+ " });",
|
|
"function getURLPrefix(ui) {\n"
|
|
+ " var urlPrefix=\"\";\n"
|
|
+ " if (useModuleDirectories) {\n"
|
|
+ " var slash = \"/\";\n"
|
|
+ " if (ui.item.category === catModules) {\n"
|
|
+ " return ui.item.l + slash;\n"
|
|
+ " } else if (ui.item.category === catPackages && ui.item.m) {\n"
|
|
+ " return ui.item.m + slash;\n"
|
|
+ " } else if ((ui.item.category === catTypes && ui.item.p) || ui.item.category === catMembers) {\n"
|
|
+ " $.each(packageSearchIndex, function(index, item) {\n"
|
|
+ " if (ui.item.p == item.l) {\n"
|
|
+ " urlPrefix = item.m + slash;\n"
|
|
+ " }\n"
|
|
+ " });\n"
|
|
+ " return urlPrefix;\n"
|
|
+ " } else {\n"
|
|
+ " return urlPrefix;\n"
|
|
+ " }\n"
|
|
+ " }\n"
|
|
+ " return urlPrefix;\n"
|
|
+ "}",
|
|
"url += ui.item.l;");
|
|
}
|
|
|
|
void checkSingleIndexSearchTagDuplication() {
|
|
// Test for search tags duplication in index file.
|
|
checkOutput("index-all.html", true,
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestError.html#SearchTagDeprecatedMethod\">"
|
|
+ "SearchTagDeprecatedMethod</a></span> - Search tag in pkg2.TestError</dt>\n"
|
|
+ "<dd>with description</dd>");
|
|
checkOutput("index-all.html", false,
|
|
"<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestError.html#SearchTagDeprecatedMethod\">"
|
|
+ "SearchTagDeprecatedMethod</a></span> - Search tag in pkg2.TestError</dt>\n"
|
|
+ "<dd>with description</dd>\n"
|
|
+ "<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestError.html#SearchTagDeprecatedMethod\">"
|
|
+ "SearchTagDeprecatedMethod</a></span> - Search tag in pkg2.TestError</dt>\n"
|
|
+ "<dd>with description</dd>");
|
|
}
|
|
|
|
void checkSplitIndexSearchTagDuplication() {
|
|
// Test for search tags duplication in index file.
|
|
checkOutput("index-files/index-13.html", true,
|
|
"<dt><span class=\"searchTagLink\"><a href=\"../pkg2/TestError.html#SearchTagDeprecatedMethod\">"
|
|
+ "SearchTagDeprecatedMethod</a></span> - Search tag in pkg2.TestError</dt>\n"
|
|
+ "<dd>with description</dd>");
|
|
checkOutput("index-files/index-13.html", false,
|
|
"<dt><span class=\"searchTagLink\"><a href=\"../pkg2/TestError.html#SearchTagDeprecatedMethod\">"
|
|
+ "SearchTagDeprecatedMethod</a></span> - Search tag in pkg2.TestError</dt>\n"
|
|
+ "<dd>with description</dd>\n"
|
|
+ "<dt><span class=\"searchTagLink\"><a href=\"../pkg2/TestError.html#SearchTagDeprecatedMethod\">"
|
|
+ "SearchTagDeprecatedMethod</a></span> - Search tag in pkg2.TestError</dt>\n"
|
|
+ "<dd>with description</dd>");
|
|
}
|
|
|
|
void checkAllPkgsAllClasses() {
|
|
checkOutput("allclasses-index.html", true,
|
|
"<table class=\"typeSummary\">\n"
|
|
+ "<caption><span id=\"t0\" class=\"activeTableTab\"><span>All Classes</span>"
|
|
+ "<span class=\"tabEnd\"> </span></span><span id=\"t1\" class=\"tableTab\">"
|
|
+ "<span><a href=\"javascript:show(1);\">Interface Summary</a></span><span class=\"tabEnd\">"
|
|
+ " </span></span><span id=\"t2\" class=\"tableTab\"><span><a href=\"javascript:show(2);\">"
|
|
+ "Class Summary</a></span><span class=\"tabEnd\"> </span></span><span id=\"t3\" class=\"tableTab\">"
|
|
+ "<span><a href=\"javascript:show(4);\">Enum Summary</a></span><span class=\"tabEnd\"> "
|
|
+ "</span></span><span id=\"t4\" class=\"tableTab\"><span><a href=\"javascript:show(8);\">"
|
|
+ "Exception Summary</a></span><span class=\"tabEnd\"> </span></span>"
|
|
+ "<span id=\"t5\" class=\"tableTab\"><span><a href=\"javascript:show(16);\">"
|
|
+ "Error Summary</a></span><span class=\"tabEnd\"> </span></span>"
|
|
+ "<span id=\"t6\" class=\"tableTab\"><span><a href=\"javascript:show(32);\">Annotation Types Summary"
|
|
+ "</a></span><span class=\"tabEnd\"> </span></span></caption>\n"
|
|
+ "<tr>\n"
|
|
+ "<th class=\"colFirst\" scope=\"col\">Class</th>\n"
|
|
+ "<th class=\"colLast\" scope=\"col\">Description</th>\n"
|
|
+ "</tr>",
|
|
"var data = {\"i0\":32,\"i1\":2,\"i2\":4,\"i3\":2,\"i4\":2,\"i5\":1,\"i6\":2,\"i7\":32,"
|
|
+ "\"i8\":2,\"i9\":4,\"i10\":16,\"i11\":16,\"i12\":8,\"i13\":8,\"i14\":1,\"i15\":2};");
|
|
checkOutput("allpackages-index.html", true,
|
|
"<table class=\"packagesSummary\">\n"
|
|
+ "<caption><span>Package Summary</span><span class=\"tabEnd\"> </span></caption>\n"
|
|
+ "<tr>\n"
|
|
+ "<th class=\"colFirst\" scope=\"col\">Package</th>\n"
|
|
+ "<th class=\"colLast\" scope=\"col\">Description</th>\n"
|
|
+ "</tr>\n");
|
|
checkOutput("type-search-index.js", true,
|
|
"{\"l\":\"All Classes\",\"url\":\"allclasses-index.html\"}");
|
|
checkOutput("package-search-index.js", true,
|
|
"{\"l\":\"All Packages\",\"url\":\"allpackages-index.html\"}");
|
|
checkOutput("index-all.html", true,
|
|
"<br><a href=\"allclasses-index.html\">All Classes</a> "
|
|
+ "<a href=\"allpackages-index.html\">All Packages</a>");
|
|
}
|
|
}
|