From 55a6b5bef5c1ea9304d4fa117c9d2ad143381b3b Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Thu, 23 Jul 2020 13:53:52 +0200 Subject: [PATCH] [doc] Fix unit tests on Windows --- .../net/sourceforge/pmd/docs/RuleDocGenerator.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/pmd-doc/src/main/java/net/sourceforge/pmd/docs/RuleDocGenerator.java b/pmd-doc/src/main/java/net/sourceforge/pmd/docs/RuleDocGenerator.java index 97852a5c75..f62400b1a9 100644 --- a/pmd-doc/src/main/java/net/sourceforge/pmd/docs/RuleDocGenerator.java +++ b/pmd-doc/src/main/java/net/sourceforge/pmd/docs/RuleDocGenerator.java @@ -621,15 +621,22 @@ public class RuleDocGenerator { */ private void determineRuleClassSourceFiles(Map> sortedRulesets) { // first collect all the classes, we need to resolve and the rulesets + // this also provides a default fallback path, which is used in unit tests. + // if the actual file is found during walkFileTree, then the default fallback path + // is replaced by a correct path. for (List rulesets : sortedRulesets.values()) { for (RuleSet ruleset : rulesets) { - String rulesetFilename = FilenameUtils.normalize(StringUtils.chomp(ruleset.getFileName())); + // Note: the path is normalized to unix path separators, so that the editme link + // uses forward slashes + String rulesetFilename = FilenameUtils.normalize(StringUtils.chomp(ruleset.getFileName()), true); allRulesets.put(ruleset.getFileName(), rulesetFilename); for (Rule rule : ruleset.getRules()) { String ruleClass = rule.getRuleClass(); String relativeSourceFilename = ruleClass.replaceAll("\\.", Matcher.quoteReplacement(File.separator)) + ".java"; - allRules.put(ruleClass, relativeSourceFilename); + // Note: the path is normalized to unix path separators, so that the editme link + // uses forward slashes + allRules.put(ruleClass, FilenameUtils.normalize(relativeSourceFilename, true)); } } }