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 /sonar-css-plugin/src | |
| parent | 55825cb9babbbbbd685a2b7efbca0efc248de383 (diff) | |
| download | sonar-css-ace698da0dd37aee4070fbabce052ec30fe89395.tar.bz2 | |
Update S4656: Rule should be parameterized
Diffstat (limited to 'sonar-css-plugin/src')
| -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"); +  }  } | 
