diff options
| author | Amaury Levé | 2018-06-27 14:57:12 +0200 |
|---|---|---|
| committer | Amaury Levé | 2018-06-28 10:14:25 +0200 |
| commit | ace698da0dd37aee4070fbabce052ec30fe89395 (patch) | |
| tree | 9034a12a7d11a3f26d525e0d1ea147825303487b | |
| parent | 55825cb9babbbbbd685a2b7efbca0efc248de383 (diff) | |
| download | sonar-css-ace698da0dd37aee4070fbabce052ec30fe89395.tar.bz2 | |
Update S4656: Rule should be parameterized
| -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"); + } } |
