|
25 | 25 | * @test
|
26 | 26 | * @bug 8141492 8071982 8141636 8147890 8166175 8168965 8176794 8175218 8147881
|
27 | 27 | * 8181622 8182263 8074407 8187521 8198522 8182765 8199278 8196201 8196202
|
28 |
| - * 8184205 8214468 8222548 8223378 8234746 |
| 28 | + * 8184205 8214468 8222548 8223378 8234746 8241219 |
29 | 29 | * @summary Test the search feature of javadoc.
|
30 | 30 | * @library ../../lib
|
31 | 31 | * @modules jdk.javadoc/jdk.javadoc.internal.tool
|
|
34 | 34 | */
|
35 | 35 |
|
36 | 36 | import java.util.Locale;
|
| 37 | +import java.util.Set; |
| 38 | +import java.util.TreeSet; |
| 39 | +import java.util.regex.Matcher; |
| 40 | +import java.util.regex.Pattern; |
37 | 41 |
|
38 | 42 | import javadoc.tester.JavadocTester;
|
39 | 43 |
|
@@ -623,6 +627,32 @@ void checkSearchJS() {
|
623 | 627 | + " return urlPrefix;\n"
|
624 | 628 | + "}",
|
625 | 629 | "url += ui.item.l;");
|
| 630 | + |
| 631 | + checkCssClasses("search.js", "stylesheet.css"); |
| 632 | + } |
| 633 | + |
| 634 | + void checkCssClasses(String jsFile, String cssFile) { |
| 635 | + // Check that all CSS class names mentioned in the JavaScript file |
| 636 | + // are also defined as class selectors somewhere in the stylesheet file. |
| 637 | + String js = readOutputFile(jsFile); |
| 638 | + Set<String> cssClasses = new TreeSet<>(); |
| 639 | + addMatches(js, Pattern.compile("class=\\\\*\"([^\\\\\"]+)\\\\*\""), cssClasses); |
| 640 | + addMatches(js, Pattern.compile("attr\\(\"class\", \"([^\"]+)\"\\)"), cssClasses); |
| 641 | + // verify that the regex did find use of CSS class names |
| 642 | + checking("Checking CSS classes found"); |
| 643 | + if (cssClasses.isEmpty()) { |
| 644 | + failed("no CSS classes found"); |
| 645 | + } else { |
| 646 | + passed(cssClasses.size() + " found: " + cssClasses); |
| 647 | + } |
| 648 | + checkOutput(cssFile, true, cssClasses.toArray(new String[0])); |
| 649 | + } |
| 650 | + |
| 651 | + void addMatches(String js, Pattern p, Set<String> cssClasses) { |
| 652 | + Matcher m = p.matcher(js); |
| 653 | + while (m.find()) { |
| 654 | + cssClasses.add("." + m.group(1)); |
| 655 | + } |
626 | 656 | }
|
627 | 657 |
|
628 | 658 | void checkSingleIndexSearchTagDuplication() {
|
|
0 commit comments