diff options
Diffstat (limited to 'sonar-css-plugin')
| -rw-r--r-- | sonar-css-plugin/src/main/java/org/sonar/css/plugin/rules/DeclarationBlockNoDuplicateProperties.java | 11 | ||||
| -rw-r--r-- | sonar-css-plugin/src/test/java/org/sonar/css/plugin/rules/CssRuleTest.java | 14 |
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"); + } } |
