aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-css-plugin/src
diff options
context:
space:
mode:
Diffstat (limited to 'sonar-css-plugin/src')
-rw-r--r--sonar-css-plugin/src/main/java/org/sonar/css/plugin/rules/DeclarationBlockNoDuplicateProperties.java11
-rw-r--r--sonar-css-plugin/src/test/java/org/sonar/css/plugin/rules/CssRuleTest.java14
2 files changed, 24 insertions, 1 deletions
diff --git a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/rules/DeclarationBlockNoDuplicateProperties.java b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/rules/DeclarationBlockNoDuplicateProperties.java
index 5c4b00a..474ee09 100644
--- a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/rules/DeclarationBlockNoDuplicateProperties.java
+++ b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/rules/DeclarationBlockNoDuplicateProperties.java
@@ -23,10 +23,19 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import org.sonar.check.Rule;
+import org.sonar.check.RuleProperty;
@Rule(key = "S4656")
public class DeclarationBlockNoDuplicateProperties implements CssRule {
+ private static final boolean DEFAULT_IGNORE_FALLBACKS = true;
+
+ @RuleProperty(
+ key = "ignoreFallbacks",
+ description = "Ignore consecutive duplicated properties with different values.",
+ defaultValue = "" + DEFAULT_IGNORE_FALLBACKS)
+ boolean ignoreFallbacks = DEFAULT_IGNORE_FALLBACKS;
+
@Override
public String stylelintKey() {
return "declaration-block-no-duplicate-properties";
@@ -34,7 +43,7 @@ public class DeclarationBlockNoDuplicateProperties implements CssRule {
@Override
public Object stylelintOptions() {
- return Arrays.asList(true, new StylelintIgnoreOption());
+ return ignoreFallbacks ? Arrays.asList(true, new StylelintIgnoreOption()) : true;
}
private static class StylelintIgnoreOption {
diff --git a/sonar-css-plugin/src/test/java/org/sonar/css/plugin/rules/CssRuleTest.java b/sonar-css-plugin/src/test/java/org/sonar/css/plugin/rules/CssRuleTest.java
index 8b1e74c..cbd402d 100644
--- a/sonar-css-plugin/src/test/java/org/sonar/css/plugin/rules/CssRuleTest.java
+++ b/sonar-css-plugin/src/test/java/org/sonar/css/plugin/rules/CssRuleTest.java
@@ -50,4 +50,18 @@ public class CssRuleTest {
String optionsAsJson = new Gson().toJson(instance.stylelintOptions());
assertThat(optionsAsJson).isEqualTo("[true,{\"ignoreAtRules\":[\"foo\"]}]");
}
+
+ @Test
+ public void declaration_block_no_duplicate_properties_default() {
+ String optionsAsJson = new Gson().toJson(new DeclarationBlockNoDuplicateProperties().stylelintOptions());
+ assertThat(optionsAsJson).isEqualTo("[true,{\"ignore\":[\"consecutive-duplicates-with-different-values\"]}]");
+ }
+
+ @Test
+ public void declaration_block_no_duplicate_properties_custom() {
+ DeclarationBlockNoDuplicateProperties instance = new DeclarationBlockNoDuplicateProperties();
+ instance.ignoreFallbacks = false;
+ String optionsAsJson = new Gson().toJson(instance.stylelintOptions());
+ assertThat(optionsAsJson).isEqualTo("true");
+ }
}