Browse Source

Update Xoo plugin to test Settings default values

tags/6.0-RC2
Julien HENRY 7 years ago
parent
commit
06b01c8bf8

+ 10
- 5
plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/Xoo.java View File

@@ -19,17 +19,22 @@
*/
package org.sonar.xoo;

import java.util.Arrays;
import org.sonar.api.config.Settings;
import org.sonar.api.resources.Language;

public class Xoo implements Language {

public static final String KEY = "xoo";
public static final String NAME = "Xoo";
public static final String FILE_SUFFIX = ".xoo";
public static final String FILE_SUFFIXES_KEY = "sonar.xoo.file.suffixes";
public static final String DEFAULT_FILE_SUFFIXES = ".xoo";

private static final String[] XOO_SUFFIXES = {
FILE_SUFFIX
};
private final Settings settings;

public Xoo(Settings settings) {
this.settings = settings;
}

@Override
public String getKey() {
@@ -43,6 +48,6 @@ public class Xoo implements Language {

@Override
public String[] getFileSuffixes() {
return XOO_SUFFIXES;
return Arrays.stream(settings.getStringArray(FILE_SUFFIXES_KEY)).filter(s -> s != null && !s.trim().isEmpty()).toArray(String[]::new);
}
}

+ 9
- 0
plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/XooPlugin.java View File

@@ -21,6 +21,8 @@ package org.sonar.xoo;

import org.sonar.api.Plugin;
import org.sonar.api.SonarProduct;
import org.sonar.api.config.PropertyDefinition;
import org.sonar.api.resources.Qualifiers;
import org.sonar.xoo.coverage.ItCoverageSensor;
import org.sonar.xoo.coverage.OverallCoverageSensor;
import org.sonar.xoo.coverage.UtCoverageSensor;
@@ -73,6 +75,13 @@ public class XooPlugin implements Plugin {
@Override
public void define(Context context) {
context.addExtensions(
PropertyDefinition.builder(Xoo.FILE_SUFFIXES_KEY)
.defaultValue(Xoo.DEFAULT_FILE_SUFFIXES)
.name("File suffixes")
.description("Comma-separated list of suffixes for files to analyze. To not filter, leave the list empty.")
.subCategory("General")
.onQualifiers(Qualifiers.PROJECT)
.build(),
Xoo.class,
Xoo2.class,
XooRulesDefinition.class,

+ 2
- 2
plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/XooPluginTest.java View File

@@ -35,10 +35,10 @@ public class XooPluginTest {
public void provide_extensions_for_5_5() {
Plugin.Context context = new Plugin.Context(new SonarRuntime(Version.parse("5.5"), SonarProduct.SONARQUBE, SonarQubeSide.SCANNER));
new XooPlugin().define(context);
assertThat(context.getExtensions()).hasSize(43).contains(CpdTokenizerSensor.class);
assertThat(context.getExtensions()).hasSize(44).contains(CpdTokenizerSensor.class);

context = new Plugin.Context(new SonarRuntime(Version.parse("5.4"), SonarProduct.SONARLINT, null));
new XooPlugin().define(context);
assertThat(context.getExtensions()).hasSize(40).doesNotContain(CpdTokenizerSensor.class);
assertThat(context.getExtensions()).hasSize(41).doesNotContain(CpdTokenizerSensor.class);
}
}

Loading…
Cancel
Save