aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-server-common/src
diff options
context:
space:
mode:
authoralain <108417558+alain-kermis-sonarsource@users.noreply.github.com>2022-07-15 09:45:45 +0200
committersonartech <sonartech@sonarsource.com>2022-07-15 20:02:52 +0000
commitffcdb2e52f520482ff2c97f15e3db62566c2600f (patch)
tree3cea7f10dba24e3982c2a920ce1c709bbb032d39 /server/sonar-server-common/src
parent931e45b8069711909c615e9eb5eed32511fdbb89 (diff)
downloadsonarqube-ffcdb2e52f520482ff2c97f15e3db62566c2600f.tar.gz
sonarqube-ffcdb2e52f520482ff2c97f15e3db62566c2600f.zip
SONAR-16555 Fixed macro interpreter for description section text
Diffstat (limited to 'server/sonar-server-common/src')
-rw-r--r--server/sonar-server-common/src/main/java/org/sonar/server/rule/RuleDescriptionFormatter.java8
-rw-r--r--server/sonar-server-common/src/test/java/org/sonar/server/rule/RuleDescriptionFormatterTest.java24
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();
}