diff options
Diffstat (limited to 'sonar-css-plugin/src')
| -rw-r--r-- | sonar-css-plugin/src/main/java/org/sonar/css/plugin/rules/SelectorPseudoClassNoUnknown.java | 13 | ||||
| -rw-r--r-- | sonar-css-plugin/src/test/java/org/sonar/css/plugin/rules/CssRuleTest.java | 22 | 
2 files changed, 31 insertions, 4 deletions
| diff --git a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/rules/SelectorPseudoClassNoUnknown.java b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/rules/SelectorPseudoClassNoUnknown.java index d647499..0f37f84 100644 --- a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/rules/SelectorPseudoClassNoUnknown.java +++ b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/rules/SelectorPseudoClassNoUnknown.java @@ -19,6 +19,8 @@   */  package org.sonar.css.plugin.rules; +import java.util.Arrays; +import java.util.List;  import org.sonar.check.Rule;  @Rule(key = "S4659") @@ -28,4 +30,15 @@ public class SelectorPseudoClassNoUnknown implements CssRule {    public String stylelintKey() {      return "selector-pseudo-class-no-unknown";    } + +  @Override +  public List<Object> stylelintOptions() { +    return Arrays.asList(true, new StylelintIgnoreOption()); +  } + + +  private static class StylelintIgnoreOption { +    // Used by GSON serialization +    private final String[] ignorePseudoClasses = {"local", "global"}; +  }  } 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 a929abf..21cc76a 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 @@ -21,7 +21,10 @@ package org.sonar.css.plugin.rules;  import com.google.gson.Gson;  import java.lang.reflect.InvocationTargetException; +import java.util.Collections; +import java.util.Set;  import org.junit.Test; +import org.mockito.internal.util.collections.Sets;  import org.sonar.css.plugin.CssRules;  import static org.assertj.core.api.Assertions.assertThat; @@ -39,17 +42,28 @@ public class CssRuleTest {    @Test    public void rules_default_is_empty() throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException { +    Set<Class> rulesWithStylelintOptions = Sets.newSet( +      AtRuleNoUnknown.class, +      DeclarationBlockNoDuplicateProperties.class, +      SelectorPseudoClassNoUnknown.class); +      for (Class ruleClass : CssRules.getRuleClasses()) {        CssRule rule = (CssRule)ruleClass.getConstructor().newInstance(); -      if (rule instanceof AtRuleNoUnknown || rule instanceof DeclarationBlockNoDuplicateProperties) { -        continue; +      if (rulesWithStylelintOptions.contains(rule.getClass())) { +        assertThat(rule.stylelintOptions()).isNotEmpty(); +      } else { +        assertThat(rule.stylelintOptions()).isEmpty();        } - -      assertThat(rule.stylelintOptions()).isEmpty();      }    }    @Test +  public void selector_pseudo_class_options() { +    String optionsAsJson = new Gson().toJson(new SelectorPseudoClassNoUnknown().stylelintOptions()); +    assertThat(optionsAsJson).isEqualTo("[true,{\"ignorePseudoClasses\":[\"local\",\"global\"]}]"); +  } + +  @Test    public void at_rule_unknown_default() {      String optionsAsJson = new Gson().toJson(new AtRuleNoUnknown().stylelintOptions());      assertThat(optionsAsJson).isEqualTo("[true,{\"ignoreAtRules\":[\"at-root\",\"content\",\"debug\",\"each\",\"else\",\"error\",\"for\",\"function\",\"if\",\"include\",\"mixin\",\"return\",\"warn\",\"while\",\"extend\"]}]"); | 
