From b464f83be5076ebdbee253b34f1a872fbf708402 Mon Sep 17 00:00:00 2001 From: Elena Vilchik Date: Wed, 12 Jun 2019 15:50:01 +0200 Subject: Consider 'x' unit as compliant for S4653 (#178) --- .../main/java/org/sonar/css/plugin/rules/UnitNoUnknown.java | 12 ++++++++++++ .../test/java/org/sonar/css/plugin/rules/CssRuleTest.java | 9 ++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) (limited to 'sonar-css-plugin/src') diff --git a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/rules/UnitNoUnknown.java b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/rules/UnitNoUnknown.java index 70f67c2..8733aaa 100644 --- a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/rules/UnitNoUnknown.java +++ b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/rules/UnitNoUnknown.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 = "S4653") @@ -28,4 +30,14 @@ public class UnitNoUnknown implements CssRule { public String stylelintKey() { return "unit-no-unknown"; } + + @Override + public List stylelintOptions() { + return Arrays.asList(true, new StylelintIgnoreOption()); + } + + private static class StylelintIgnoreOption { + // Used by GSON serialization + private final String[] ignoreUnits = {"x"}; + } } 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 9016115..6a147bc 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 @@ -46,7 +46,8 @@ public class CssRuleTest { DeclarationBlockNoDuplicateProperties.class, PropertyNoUnknown.class, SelectorPseudoClassNoUnknown.class, - SelectorTypeNoUnknown.class); + SelectorTypeNoUnknown.class, + UnitNoUnknown.class); for (Class ruleClass : CssRules.getRuleClasses()) { CssRule rule = (CssRule)ruleClass.getConstructor().newInstance(); @@ -76,6 +77,12 @@ public class CssRuleTest { assertThat(optionsAsJson).isEqualTo("[true,{\"ignoreTypes\":[\"/^mat-/\"]}]"); } + @Test + public void units_no_unknown_options() { + String optionsAsJson = new Gson().toJson(new UnitNoUnknown().stylelintOptions()); + assertThat(optionsAsJson).isEqualTo("[true,{\"ignoreUnits\":[\"x\"]}]"); + } + @Test public void at_rule_unknown_default() { String optionsAsJson = new Gson().toJson(new AtRuleNoUnknown().stylelintOptions()); -- cgit v1.2.3