diff options
| author | Elena Vilchik | 2019-06-12 15:50:01 +0200 |
|---|---|---|
| committer | Tibor Blenessy | 2019-06-12 15:50:01 +0200 |
| commit | b464f83be5076ebdbee253b34f1a872fbf708402 (patch) | |
| tree | 0ca1a77d77d0023de21e9a74b679af55f659a6ad | |
| parent | fd0139f0673ceaeabab4db3112cf18fff69f3c81 (diff) | |
| download | sonar-css-b464f83be5076ebdbee253b34f1a872fbf708402.tar.bz2 | |
Consider 'x' unit as compliant for S4653 (#178)
3 files changed, 26 insertions, 1 deletions
diff --git a/its/plugin/projects/issues-project/src/file1.css b/its/plugin/projects/issues-project/src/file1.css index d2c3b6b..d53007e 100644 --- a/its/plugin/projects/issues-project/src/file1.css +++ b/its/plugin/projects/issues-project/src/file1.css @@ -70,3 +70,9 @@ unknown { /* S4670 | selecto mat-form-field { /* Angular Material, ignored by S4670 | selector-type-no-unknown */ width: 100%; } + +div { + background-image: image-set( + '/images/some-image-1x.jpg' 1x, /* 'x' is synonym to 'dppx', ignored by S4653 | unit-no-unknown */ + ); +} 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<Object> 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(); @@ -77,6 +78,12 @@ public class CssRuleTest { } @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()); assertThat(optionsAsJson).isEqualTo("[true,{\"ignoreAtRules\":[\"value\",\"at-root\",\"content\",\"debug\",\"each\",\"else\",\"error\",\"for\",\"function\",\"if\",\"include\",\"mixin\",\"return\",\"warn\",\"while\",\"extend\"]}]"); |
