TestSearch.java revision 3704:673c53147055
1/*
2 * Copyright (c) 2015, 2016, Oracle and/or its affiliates. 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24/*
25 * @test
26 * @bug 8141492 8071982 8141636
27 * @summary Test the search feature of javadoc.
28 * @author bpatel
29 * @library ../lib
30 * @modules jdk.javadoc/jdk.javadoc.internal.tool
31 * @build JavadocTester
32 * @run main TestSearch
33 */
34
35public class TestSearch extends JavadocTester {
36
37    public static void main(String... args) throws Exception {
38        TestSearch tester = new TestSearch();
39        tester.runTests();
40    }
41
42    @Test
43    void test1() {
44        javadoc("-d", "out-1", "-sourcepath", "-use", testSrc("UnnamedPkgClass.java"));
45        checkExit(Exit.OK);
46        checkSearchOutput("UnnamedPkgClass.html", true);
47        checkJqueryAndImageFiles(true);
48        checkSearchJS();
49        checkFiles(false,
50                "package-search-index.zip",
51                "tag-search-index.zip");
52        checkFiles(true,
53                "member-search-index.zip",
54                "type-search-index.zip");
55    }
56
57    @Test
58    void test2() {
59        javadoc("-d", "out-2", "-Xdoclint:none", "-sourcepath", testSrc,
60                "-use", "pkg", "pkg1", "pkg2", "pkg3");
61        checkExit(Exit.OK);
62        checkInvalidUsageIndexTag();
63        checkSearchOutput(true);
64        checkSingleIndex(true);
65        checkJqueryAndImageFiles(true);
66        checkSearchJS();
67        checkFiles(true,
68                "member-search-index.zip",
69                "package-search-index.zip",
70                "tag-search-index.zip",
71                "type-search-index.zip");
72    }
73
74    @Test
75    void test2a() {
76        javadoc("-d", "out-2a", "-Xdoclint:all", "-sourcepath", testSrc,
77                "-use", "pkg", "pkg1", "pkg2", "pkg3");
78        checkExit(Exit.ERROR);
79        checkDocLintErrors();
80        checkSearchOutput(true);
81        checkSingleIndex(true);
82        checkJqueryAndImageFiles(true);
83        checkSearchJS();
84        checkFiles(true,
85                "member-search-index.zip",
86                "package-search-index.zip",
87                "tag-search-index.zip",
88                "type-search-index.zip");
89    }
90
91    @Test
92    void test3() {
93        javadoc("-d", "out-3", "-noindex", "-Xdoclint:none",
94                "-sourcepath", testSrc,
95                "-use", "pkg", "pkg1", "pkg2", "pkg3");
96        checkExit(Exit.OK);
97        checkSearchOutput(false);
98        checkJqueryAndImageFiles(false);
99        checkFiles(false,
100                "member-search-index.zip",
101                "package-search-index.zip",
102                "tag-search-index.zip",
103                "type-search-index.zip",
104                "index-all.html");
105    }
106
107    @Test
108    void test4() {
109        javadoc("-d", "out-4", "-html5", "-Xdoclint:none",
110                "-sourcepath", testSrc,
111                "-use", "pkg", "pkg1", "pkg2", "pkg3");
112        checkExit(Exit.OK);
113        checkSearchOutput(true);
114        checkSingleIndex(true);
115        checkJqueryAndImageFiles(true);
116        checkSearchJS();
117        checkFiles(true,
118                "member-search-index.zip",
119                "package-search-index.zip",
120                "tag-search-index.zip",
121                "type-search-index.zip");
122    }
123
124    @Test
125    void test5() {
126        javadoc("-d", "out-5", "-noindex", "-html5", "-Xdoclint:none",
127                "-sourcepath", testSrc,
128                "-use", "pkg", "pkg1", "pkg2", "pkg3");
129        checkExit(Exit.OK);
130        checkSearchOutput(false);
131        checkJqueryAndImageFiles(false);
132        checkFiles(false,
133                "member-search-index.zip",
134                "package-search-index.zip",
135                "tag-search-index.zip",
136                "type-search-index.zip",
137                "index-all.html");
138    }
139
140    @Test
141    void test6() {
142        javadoc("-d", "out-6", "-nocomment", "-Xdoclint:none",
143                "-sourcepath", testSrc,
144                "-use", "pkg", "pkg1", "pkg2", "pkg3");
145        checkExit(Exit.OK);
146        checkSearchOutput(true);
147        checkIndexNoComment();
148        checkJqueryAndImageFiles(true);
149        checkSearchJS();
150        checkFiles(true,
151                "member-search-index.zip",
152                "package-search-index.zip",
153                "tag-search-index.zip",
154                "type-search-index.zip");
155    }
156
157    @Test
158    void test7() {
159        javadoc("-d", "out-7", "-nodeprecated", "-Xdoclint:none",
160                "-sourcepath", testSrc,
161                "-use", "pkg", "pkg1", "pkg2", "pkg3");
162        checkExit(Exit.OK);
163        checkSearchOutput(true);
164        checkIndexNoDeprecated();
165        checkJqueryAndImageFiles(true);
166        checkSearchJS();
167        checkFiles(true,
168                "member-search-index.zip",
169                "package-search-index.zip",
170                "tag-search-index.zip",
171                "type-search-index.zip");
172    }
173
174    @Test
175    void test8() {
176        javadoc("-d", "out-8", "-splitindex", "-Xdoclint:none", "-sourcepath", testSrc,
177                "-use", "pkg", "pkg1", "pkg2", "pkg3");
178        checkExit(Exit.OK);
179        checkInvalidUsageIndexTag();
180        checkSearchOutput(true);
181        checkSplitIndex();
182        checkJqueryAndImageFiles(true);
183        checkSearchJS();
184        checkFiles(true,
185                "member-search-index.zip",
186                "package-search-index.zip",
187                "tag-search-index.zip",
188                "type-search-index.zip");
189    }
190
191    @Test
192    void test9() {
193        javadoc("-d", "out-9", "-sourcepath", testSrc, "-javafx", "-package",
194                "-use", "pkgfx", "pkg3");
195        checkExit(Exit.OK);
196        checkSearchOutput(true);
197        checkJavaFXOutput();
198        checkJqueryAndImageFiles(true);
199        checkSearchJS();
200        checkFiles(false,
201                "tag-search-index.zip");
202        checkFiles(true,
203                "member-search-index.zip",
204                "package-search-index.zip",
205                "type-search-index.zip");
206    }
207
208    void checkDocLintErrors() {
209        checkOutput(Output.OUT, true,
210                "A sample method. Testing search tag for {@index \"unclosed quote}.",
211                "Another test class. Testing empty {@index }.",
212                "Constant field. Testing no text in index tag {@index}.",
213                "A test field. Testing only white-spaces in index tag text {@index       }.");
214    }
215
216    void checkSearchOutput(boolean expectedOutput) {
217        checkSearchOutput("overview-summary.html", expectedOutput);
218    }
219
220    void checkSearchOutput(String fileName, boolean expectedOutput) {
221        // Test for search related markup
222        checkOutput(fileName, expectedOutput,
223                "<link rel=\"stylesheet\" type=\"text/css\" href=\"jquery/jquery-ui.css\" title=\"Style\">\n",
224                "<script type=\"text/javascript\" src=\"jquery/jszip/dist/jszip.min.js\"></script>\n",
225                "<script type=\"text/javascript\" src=\"jquery/jszip-utils/dist/jszip-utils.min.js\"></script>\n",
226                "<!--[if IE]>\n",
227                "<script type=\"text/javascript\" src=\"jquery/jszip-utils/dist/jszip-utils-ie.min.js\"></script>\n",
228                "<![endif]-->\n",
229                "<script type=\"text/javascript\" src=\"jquery/jquery-1.10.2.js\"></script>\n",
230                "<script type=\"text/javascript\" src=\"jquery/jquery-ui.js\"></script>",
231                "var pathtoroot = \"./\";loadScripts(document, 'script');",
232                "<ul class=\"navListSearch\">\n",
233                "<li><span>SEARCH:&nbsp;</span>\n",
234                "<input type=\"text\" id=\"search\" value=\" \" disabled=\"disabled\">\n",
235                "<input type=\"reset\" id=\"reset\" value=\" \" disabled=\"disabled\">\n");
236        checkOutput(fileName, true,
237                "<div class=\"fixedNav\">");
238    }
239
240    void checkSingleIndex(boolean expectedOutput) {
241        // Test for search tags markup in index file.
242        checkOutput("index-all.html", expectedOutput,
243                "<dt><span class=\"searchTagLink\"><a href=\"pkg/package-summary.html#phrasewithspaces\">"
244                        + "phrase with spaces</a></span> - Search tag in pkg</dt>",
245                "<dt><span class=\"searchTagLink\"><a href=\"pkg/package-summary.html#pkg\">"
246                        + "pkg</a></span> - Search tag in pkg</dt>",
247                "<dt><span class=\"searchTagLink\"><a href=\"pkg/package-summary.html#pkg2.5\">"
248                        + "pkg2.5</a></span> - Search tag in pkg</dt>",
249                "<dt><span class=\"searchTagLink\"><a href=\"pkg/package-summary.html#r\">"
250                        + "r</a></span> - Search tag in pkg</dt>",
251                "<dt><span class=\"searchTagLink\"><a href=\"pkg1/RegClass.html#searchphrase\">"
252                        + "search phrase</a></span> - Search tag in pkg1.RegClass</dt>",
253                "<dt><span class=\"searchTagLink\"><a href=\"pkg1/RegClass.html#SearchWordWithDescription\">"
254                        + "SearchWordWithDescription</a></span> - Search tag in pkg1.RegClass.CONSTANT_FIELD_1</dt>",
255                "<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestAnnotationType.html#searchphrasewithdescdeprecated\">"
256                        + "search phrase with desc deprecated</a></span> - Search tag in pkg2.TestAnnotationType</dt>",
257                "<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestClass.html#SearchTagDeprecatedClass\">"
258                        + "SearchTagDeprecatedClass</a></span> - Search tag in pkg2.TestClass</dt>",
259                "<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestEnum.html#searchphrasedeprecated\">"
260                        + "search phrase deprecated</a></span> - Search tag in pkg2.TestEnum.ONE</dt>",
261                "<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestEnum.html#searchphrasedeprecated\">"
262                        + "search phrase deprecated</a></span> - Search tag in pkg2.TestEnum.ONE</dt>",
263                "<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestError.html#SearchTagDeprecatedMethod\">"
264                        + "SearchTagDeprecatedMethod</a></span> - Search tag in pkg2.TestError</dt>",
265                "<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestError.html#SearchTagDeprecatedMethod\">"
266                        + "SearchTagDeprecatedMethod</a></span> - Search tag in pkg2.TestError</dt>",
267                "<dt><span class=\"searchTagLink\"><a href=\"pkg/package-summary.html#SingleWord\">"
268                        + "SingleWord</a></span> - Search tag in pkg</dt>",
269                "<dt><span class=\"searchTagLink\"><a href=\"pkg/AnotherClass.ModalExclusionType.html"
270                        + "#nested%7B@indexnested_tag_test%7D\">nested {@index nested_tag_test}</a></span> - "
271                        + "Search tag in pkg.AnotherClass.ModalExclusionType.NO_EXCLUDE</dt>",
272                "<dt><span class=\"searchTagLink\"><a href=\"pkg/AnotherClass.ModalExclusionType.html"
273                        + "#html-span-see-/span-\">html &lt;span&gt; see &lt;/span&gt;</a></span> - Search "
274                        + "tag in pkg.AnotherClass.ModalExclusionType.APPLICATION_EXCLUDE</dt>",
275                "<dt><span class=\"searchTagLink\"><a href=\"pkg/AnotherClass.html#quoted\">quoted</a>"
276                        + "</span> - Search tag in pkg.AnotherClass.CONSTANT1</dt>");
277        checkOutput("index-all.html", true,
278                "<div class=\"block\"><span class=\"deprecationComment\">class_test1 passes. Search tag"
279                        + " <a id=\"SearchTagDeprecatedClass\">SearchTagDeprecatedClass</a></span></div>",
280                "<div class=\"block\"><span class=\"deprecationComment\">error_test3 passes. Search tag for\n"
281                        + " method <a id=\"SearchTagDeprecatedMethod\">SearchTagDeprecatedMethod</a></span></div>");
282    }
283
284    void checkSplitIndex() {
285        // Test for search tags markup in split index file.
286        checkOutput("index-files/index-12.html", true,
287                "<dt><span class=\"searchTagLink\"><a href=\"../pkg1/RegClass.html#searchphrase\">"
288                        + "search phrase</a></span> - Search tag in pkg1.RegClass</dt>",
289                "<dt><span class=\"searchTagLink\"><a href=\"../pkg1/RegClass.html#SearchWordWithDescription\">"
290                        + "SearchWordWithDescription</a></span> - Search tag in pkg1.RegClass.CONSTANT_FIELD_1</dt>",
291                "<dt><span class=\"searchTagLink\"><a href=\"../pkg2/TestAnnotationType.html#searchphrasewithdescdeprecated\">"
292                        + "search phrase with desc deprecated</a></span> - Search tag in pkg2.TestAnnotationType</dt>",
293                "<dt><span class=\"searchTagLink\"><a href=\"../pkg2/TestClass.html#SearchTagDeprecatedClass\">"
294                        + "SearchTagDeprecatedClass</a></span> - Search tag in pkg2.TestClass</dt>",
295                "<dt><span class=\"searchTagLink\"><a href=\"../pkg2/TestEnum.html#searchphrasedeprecated\">"
296                        + "search phrase deprecated</a></span> - Search tag in pkg2.TestEnum.ONE</dt>",
297                "<dt><span class=\"searchTagLink\"><a href=\"../pkg2/TestEnum.html#searchphrasedeprecated\">"
298                        + "search phrase deprecated</a></span> - Search tag in pkg2.TestEnum.ONE</dt>",
299                "<dt><span class=\"searchTagLink\"><a href=\"../pkg2/TestError.html#SearchTagDeprecatedMethod\">"
300                        + "SearchTagDeprecatedMethod</a></span> - Search tag in pkg2.TestError</dt>",
301                "<dt><span class=\"searchTagLink\"><a href=\"../pkg2/TestError.html#SearchTagDeprecatedMethod\">"
302                        + "SearchTagDeprecatedMethod</a></span> - Search tag in pkg2.TestError</dt>",
303                "<dt><span class=\"searchTagLink\"><a href=\"../pkg/package-summary.html#SingleWord\">"
304                        + "SingleWord</a></span> - Search tag in pkg</dt>");
305        checkOutput("index-files/index-9.html", true,
306                "<dt><span class=\"searchTagLink\"><a href=\"../pkg/package-summary.html#phrasewithspaces\">"
307                        + "phrase with spaces</a></span> - Search tag in pkg</dt>",
308                "<dt><span class=\"searchTagLink\"><a href=\"../pkg/package-summary.html#pkg\">"
309                        + "pkg</a></span> - Search tag in pkg</dt>",
310                "<dt><span class=\"searchTagLink\"><a href=\"../pkg/package-summary.html#pkg2.5\">"
311                        + "pkg2.5</a></span> - Search tag in pkg</dt>");
312        checkOutput("index-files/index-11.html", true,
313                "<dt><span class=\"searchTagLink\"><a href=\"../pkg/package-summary.html#r\">"
314                        + "r</a></span> - Search tag in pkg</dt>");
315        checkOutput("index-files/index-8.html", true,
316                "<dt><span class=\"searchTagLink\"><a href=\"../pkg/AnotherClass.ModalExclusionType.html"
317                        + "#nested%7B@indexnested_tag_test%7D\">nested {@index nested_tag_test}</a></span> - "
318                        + "Search tag in pkg.AnotherClass.ModalExclusionType.NO_EXCLUDE</dt>");
319        checkOutput("index-files/index-5.html", true,
320                "<dt><span class=\"searchTagLink\"><a href=\"../pkg/AnotherClass.ModalExclusionType.html"
321                        + "#html-span-see-/span-\">html &lt;span&gt; see &lt;/span&gt;</a></span> - Search "
322                        + "tag in pkg.AnotherClass.ModalExclusionType.APPLICATION_EXCLUDE</dt>");
323        checkOutput("index-files/index-10.html", true,
324                "<dt><span class=\"searchTagLink\"><a href=\"../pkg/AnotherClass.html#quoted\">quoted</a>"
325                        + "</span> - Search tag in pkg.AnotherClass.CONSTANT1</dt>");
326    }
327
328    void checkIndexNoComment() {
329        // Test for search tags markup in index file when javadoc is executed with -nocomment.
330        checkOutput("index-all.html", false,
331                "<dt><span class=\"searchTagLink\"><a href=\"pkg/package-summary.html#phrasewithspaces\">"
332                        + "phrase with spaces</a></span> - Search tag in pkg</dt>",
333                "<dt><span class=\"searchTagLink\"><a href=\"pkg/package-summary.html#pkg\">"
334                        + "pkg</a></span> - Search tag in pkg</dt>",
335                "<dt><span class=\"searchTagLink\"><a href=\"pkg/package-summary.html#pkg2.5\">"
336                        + "pkg2.5</a></span> - Search tag in pkg</dt>",
337                "<dt><span class=\"searchTagLink\"><a href=\"pkg/package-summary.html#r\">"
338                        + "r</a></span> - Search tag in pkg</dt>",
339                "<dt><span class=\"searchTagLink\"><a href=\"pkg1/RegClass.html#searchphrase\">"
340                        + "search phrase</a></span> - Search tag in pkg1.RegClass</dt>",
341                "<dt><span class=\"searchTagLink\"><a href=\"pkg1/RegClass.html#SearchWordWithDescription\">"
342                        + "SearchWordWithDescription</a></span> - Search tag in pkg1.RegClass.CONSTANT_FIELD_1</dt>",
343                "<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestAnnotationType.html#searchphrasewithdescdeprecated\">"
344                        + "search phrase with desc deprecated</a></span> - Search tag in pkg2.TestAnnotationType</dt>",
345                "<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestClass.html#SearchTagDeprecatedClass\">"
346                        + "SearchTagDeprecatedClass</a></span> - Search tag in pkg2.TestClass</dt>",
347                "<dt><span class=\"searchTagLink\"><a href=\"pkg/package-summary.html#SingleWord\">"
348                        + "SingleWord</a></span> - Search tag in pkg</dt>",
349                "<div class=\"block\"><span class=\"deprecationComment\">class_test1 passes. Search tag"
350                        + " <a id=\"SearchTagDeprecatedClass\">SearchTagDeprecatedClass</a></span></div>",
351                "<div class=\"block\"><span class=\"deprecationComment\">error_test3 passes. Search tag for\n"
352                        + " method <a id=\"SearchTagDeprecatedMethod\">SearchTagDeprecatedMethod</a></span></div>");
353        checkOutput("index-all.html", true,
354                "<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestEnum.html#searchphrasedeprecated\">"
355                        + "search phrase deprecated</a></span> - Search tag in pkg2.TestEnum.ONE</dt>",
356                "<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestError.html#SearchTagDeprecatedMethod\">"
357                        + "SearchTagDeprecatedMethod</a></span> - Search tag in pkg2.TestError</dt>");
358    }
359
360    void checkIndexNoDeprecated() {
361        // Test for search tags markup in index file when javadoc is executed using -nodeprecated.
362        checkOutput("index-all.html", true,
363                "<dt><span class=\"searchTagLink\"><a href=\"pkg/package-summary.html#phrasewithspaces\">"
364                        + "phrase with spaces</a></span> - Search tag in pkg</dt>",
365                "<dt><span class=\"searchTagLink\"><a href=\"pkg1/RegClass.html#searchphrase\">"
366                        + "search phrase</a></span> - Search tag in pkg1.RegClass</dt>",
367                "<dt><span class=\"searchTagLink\"><a href=\"pkg1/RegClass.html#SearchWordWithDescription\">"
368                        + "SearchWordWithDescription</a></span> - Search tag in pkg1.RegClass.CONSTANT_FIELD_1</dt>",
369                "<dt><span class=\"searchTagLink\"><a href=\"pkg/package-summary.html#SingleWord\">"
370                        + "SingleWord</a></span> - Search tag in pkg</dt>");
371        checkOutput("index-all.html", false,
372                "<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestAnnotationType.html#searchphrasewithdescdeprecated\">"
373                        + "search phrase with desc deprecated</a></span> - Search tag in pkg2.TestAnnotationType</dt>",
374                "<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestClass.html#SearchTagDeprecatedClass\">"
375                        + "SearchTagDeprecatedClass</a></span> - Search tag in pkg2.TestClass</dt>",
376                "<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestEnum.html#searchphrasedeprecated\">"
377                        + "search phrase deprecated</a></span> - Search tag in pkg2.TestEnum.ONE</dt>",
378                "<dt><span class=\"searchTagLink\"><a href=\"pkg2/TestError.html#SearchTagDeprecatedMethod\">"
379                        + "SearchTagDeprecatedMethod</a></span> - Search tag in pkg2.TestError</dt>",
380                "<div class=\"block\"><span class=\"deprecationComment\">class_test1 passes. Search tag"
381                        + " <a id=\"SearchTagDeprecatedClass\">SearchTagDeprecatedClass</a></span></div>",
382                "<div class=\"block\"><span class=\"deprecationComment\">error_test3 passes. Search tag for\n"
383                        + " method <a id=\"SearchTagDeprecatedMethod\">SearchTagDeprecatedMethod</a></span></div>");
384    }
385
386    void checkJavaFXOutput() {
387        checkOutput("index-all.html", false, "test treat as private");
388    }
389
390    void checkInvalidUsageIndexTag() {
391        checkOutput(Output.OUT, true,
392                "AnotherClass.java:29: warning - invalid usage of tag {@index",
393                "AnotherClass.java:41: warning - invalid usage of tag {@index",
394                "AnotherClass.java:36: warning - invalid usage of tag {@index",
395                "AnotherClass.java:70: warning - invalid usage of tag {@index");
396    }
397
398    void checkJqueryAndImageFiles(boolean expectedOutput) {
399        checkFiles(expectedOutput,
400                "search.js",
401                "jquery/jquery-1.10.2.js",
402                "jquery/jquery-ui.js",
403                "jquery/jquery-ui.css",
404                "jquery/jquery-ui.min.js",
405                "jquery/jquery-ui.min.css",
406                "jquery/jquery-ui.structure.min.css",
407                "jquery/jquery-ui.structure.css",
408                "jquery/external/jquery/jquery.js",
409                "jquery/jszip/dist/jszip.js",
410                "jquery/jszip/dist/jszip.min.js",
411                "jquery/jszip-utils/dist/jszip-utils.js",
412                "jquery/jszip-utils/dist/jszip-utils.min.js",
413                "jquery/jszip-utils/dist/jszip-utils-ie.js",
414                "jquery/jszip-utils/dist/jszip-utils-ie.min.js",
415                "jquery/images/ui-bg_flat_0_aaaaaa_40x100.png",
416                "jquery/images/ui-icons_454545_256x240.png",
417                "jquery/images/ui-bg_glass_95_fef1ec_1x400.png",
418                "jquery/images/ui-bg_glass_75_dadada_1x400.png",
419                "jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png",
420                "jquery/images/ui-icons_888888_256x240.png",
421                "jquery/images/ui-icons_2e83ff_256x240.png",
422                "jquery/images/ui-bg_glass_65_ffffff_1x400.png",
423                "jquery/images/ui-icons_cd0a0a_256x240.png",
424                "jquery/images/ui-bg_glass_55_fbf9ee_1x400.png",
425                "jquery/images/ui-icons_222222_256x240.png",
426                "jquery/images/ui-bg_glass_75_e6e6e6_1x400.png",
427                "jquery/images/ui-bg_flat_75_ffffff_40x100.png",
428                "resources/x.png",
429                "resources/glass.png");
430    }
431
432    void checkSearchJS() {
433        checkOutput("search.js", true,
434                "camelCaseRegexp = ($.ui.autocomplete.escapeRegex(request.term)).split(/(?=[A-Z])/).join(\"([a-z0-9_$]*?)\");",
435                "var camelCaseMatcher = new RegExp(\"^\" + camelCaseRegexp);",
436                "camelCaseMatcher.test(item.l)");
437    }
438}
439