diff options
author | alain <108417558+alain-kermis-sonarsource@users.noreply.github.com> | 2022-07-15 09:45:45 +0200 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2022-07-15 20:02:52 +0000 |
commit | ffcdb2e52f520482ff2c97f15e3db62566c2600f (patch) | |
tree | 3cea7f10dba24e3982c2a920ce1c709bbb032d39 /server/sonar-server-common/src | |
parent | 931e45b8069711909c615e9eb5eed32511fdbb89 (diff) | |
download | sonarqube-ffcdb2e52f520482ff2c97f15e3db62566c2600f.tar.gz sonarqube-ffcdb2e52f520482ff2c97f15e3db62566c2600f.zip |
SONAR-16555 Fixed macro interpreter for description section text
Diffstat (limited to 'server/sonar-server-common/src')
2 files changed, 27 insertions, 5 deletions
diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/rule/RuleDescriptionFormatter.java b/server/sonar-server-common/src/main/java/org/sonar/server/rule/RuleDescriptionFormatter.java index 9492aaa3f1c..da691f81916 100644 --- a/server/sonar-server-common/src/main/java/org/sonar/server/rule/RuleDescriptionFormatter.java +++ b/server/sonar-server-common/src/main/java/org/sonar/server/rule/RuleDescriptionFormatter.java @@ -23,6 +23,7 @@ import com.google.common.collect.MoreCollectors; import java.util.Collection; import java.util.Objects; import javax.annotation.CheckForNull; +import javax.annotation.Nullable; import org.sonar.db.rule.RuleDescriptionSectionDto; import org.sonar.db.rule.RuleDto; import org.sonar.markdown.Markdown; @@ -41,7 +42,7 @@ public class RuleDescriptionFormatter { } @CheckForNull - private static String retrieveDescription(Collection<RuleDescriptionSectionDto> ruleDescriptionSectionDtos, RuleDto.Format descriptionFormat) { + private String retrieveDescription(Collection<RuleDescriptionSectionDto> ruleDescriptionSectionDtos, RuleDto.Format descriptionFormat) { return ruleDescriptionSectionDtos.stream() .filter(RuleDescriptionSectionDto::isDefault) .collect(MoreCollectors.toOptional()) @@ -49,12 +50,11 @@ public class RuleDescriptionFormatter { .orElse(null); } - private static String toHtml(RuleDto.Format descriptionFormat, RuleDescriptionSectionDto ruleDescriptionSectionDto) { + public String toHtml(@Nullable RuleDto.Format descriptionFormat, RuleDescriptionSectionDto ruleDescriptionSectionDto) { if (MARKDOWN.equals(descriptionFormat)) { return Markdown.convertToHtml(ruleDescriptionSectionDto.getContent()); - } else { - return ruleDescriptionSectionDto.getContent(); } + return ruleDescriptionSectionDto.getContent(); } } diff --git a/server/sonar-server-common/src/test/java/org/sonar/server/rule/RuleDescriptionFormatterTest.java b/server/sonar-server-common/src/test/java/org/sonar/server/rule/RuleDescriptionFormatterTest.java index 2268e2e408b..9a061046efe 100644 --- a/server/sonar-server-common/src/test/java/org/sonar/server/rule/RuleDescriptionFormatterTest.java +++ b/server/sonar-server-common/src/test/java/org/sonar/server/rule/RuleDescriptionFormatterTest.java @@ -27,7 +27,10 @@ import org.sonar.db.rule.RuleDto; import static org.assertj.core.api.Assertions.assertThat; import static org.sonar.api.server.rule.RuleDescriptionSection.RuleDescriptionSectionKeys.ASSESS_THE_PROBLEM_SECTION_KEY; import static org.sonar.api.server.rule.RuleDescriptionSection.RuleDescriptionSectionKeys.ROOT_CAUSE_SECTION_KEY; +import static org.sonar.db.rule.RuleDescriptionSectionDto.DEFAULT_KEY; import static org.sonar.db.rule.RuleDescriptionSectionDto.createDefaultRuleDescriptionSection; +import static org.sonar.db.rule.RuleDto.Format.HTML; +import static org.sonar.db.rule.RuleDto.Format.MARKDOWN; public class RuleDescriptionFormatterTest { @@ -37,7 +40,7 @@ public class RuleDescriptionFormatterTest { @Test public void getMarkdownDescriptionAsHtml() { - RuleDto rule = new RuleDto().setDescriptionFormat(RuleDto.Format.MARKDOWN).addRuleDescriptionSectionDto(MARKDOWN_SECTION).setType(RuleType.BUG); + RuleDto rule = new RuleDto().setDescriptionFormat(MARKDOWN).addRuleDescriptionSectionDto(MARKDOWN_SECTION).setType(RuleType.BUG); String html = ruleDescriptionFormatter.getDescriptionAsHtml(rule); assertThat(html).isEqualTo("<strong>md</strong> <code>description</code>"); } @@ -78,6 +81,25 @@ public class RuleDescriptionFormatterTest { assertThat(result).isNull(); } + @Test + public void toHtmlWithNullFormat() { + RuleDescriptionSectionDto section = createRuleDescriptionSection(DEFAULT_KEY, "whatever"); + String result = ruleDescriptionFormatter.toHtml(null, section); + assertThat(result).isEqualTo(section.getContent()); + } + + @Test + public void toHtmlWithMarkdownFormat() { + String result = ruleDescriptionFormatter.toHtml(MARKDOWN, MARKDOWN_SECTION); + assertThat(result).isEqualTo("<strong>md</strong> <code>description</code>"); + } + + @Test + public void toHtmlWithHtmlFormat() { + String result = ruleDescriptionFormatter.toHtml(HTML, HTML_SECTION); + assertThat(result).isEqualTo(HTML_SECTION.getContent()); + } + private static RuleDescriptionSectionDto createRuleDescriptionSection(String key, String content) { return RuleDescriptionSectionDto.builder().key(key).content(content).build(); } |