aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-css-plugin/src/test/java/org/sonar
diff options
context:
space:
mode:
authorAlban Auzeill2019-12-23 14:38:46 +0100
committerElena Vilchik2019-12-23 14:38:46 +0100
commite1084ab0bee42625105ff332365b05ab30654d47 (patch)
tree56ed1f1d404b378db88e334294f2ba3a5022c72b /sonar-css-plugin/src/test/java/org/sonar
parent0161362db5e83f700dded8ff052b358a3f478640 (diff)
downloadsonar-css-e1084ab0bee42625105ff332365b05ab30654d47.tar.bz2
Send file content to NodeJS process if encoding not UFT-8 (#224)
Diffstat (limited to 'sonar-css-plugin/src/test/java/org/sonar')
-rw-r--r--sonar-css-plugin/src/test/java/org/sonar/css/plugin/CssRuleSensorTest.java53
-rw-r--r--sonar-css-plugin/src/test/java/org/sonar/css/plugin/server/CssAnalyzerBridgeServerTest.java8
2 files changed, 54 insertions, 7 deletions
diff --git a/sonar-css-plugin/src/test/java/org/sonar/css/plugin/CssRuleSensorTest.java b/sonar-css-plugin/src/test/java/org/sonar/css/plugin/CssRuleSensorTest.java
index 0dd35d8..0b37c92 100644
--- a/sonar-css-plugin/src/test/java/org/sonar/css/plugin/CssRuleSensorTest.java
+++ b/sonar-css-plugin/src/test/java/org/sonar/css/plugin/CssRuleSensorTest.java
@@ -35,13 +35,14 @@ import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.junit.rules.TemporaryFolder;
import org.sonar.api.batch.fs.InputFile;
-import org.sonar.api.batch.fs.InputFile.Type;
import org.sonar.api.batch.fs.internal.DefaultInputFile;
import org.sonar.api.batch.fs.internal.TestInputFileBuilder;
import org.sonar.api.batch.rule.CheckFactory;
import org.sonar.api.batch.sensor.internal.DefaultSensorDescriptor;
import org.sonar.api.batch.sensor.internal.SensorContextTester;
+import org.sonar.api.internal.SonarRuntimeImpl;
import org.sonar.api.notifications.AnalysisWarnings;
+import org.sonar.api.utils.Version;
import org.sonar.api.utils.log.LogTester;
import org.sonar.api.utils.log.LoggerLevel;
import org.sonar.css.plugin.server.CssAnalyzerBridgeServer;
@@ -260,10 +261,56 @@ public class CssRuleSensorTest {
assertThat(logTester.logs(LoggerLevel.ERROR)).contains("Unknown stylelint rule or rule not enabled: 'unknown-rule-key'");
}
+ @Test
+ public void should_not_send_file_content_if_encoding_is_utf8_and_context_is_not_sonarlint() throws IOException {
+ String filePath = "copy-file-content-into-issue-message.css";
+ DefaultInputFile inputFile = new TestInputFileBuilder("moduleKey", filePath)
+ .setLanguage(CssLanguage.KEY)
+ .setCharset(StandardCharsets.UTF_8)
+ .setContents("css content")
+ .build();
+ context.fileSystem().add(inputFile);
+ sensor.execute(context);
+
+ assertThat(context.allIssues()).hasSize(1);
+ assertThat(context.allIssues()).extracting("primaryLocation.message")
+ .containsOnly("undefined");
+ }
+
+ @Test
+ public void should_send_file_content_if_encoding_is_not_utf8() throws IOException {
+ String filePath = "copy-file-content-into-issue-message.css";
+ DefaultInputFile inputFile = new TestInputFileBuilder("moduleKey", filePath)
+ .setLanguage(CssLanguage.KEY)
+ .setCharset(StandardCharsets.ISO_8859_1)
+ .setContents("css content")
+ .build();
+ context.fileSystem().add(inputFile);
+ sensor.execute(context);
+
+ assertThat(context.allIssues()).hasSize(1);
+ assertThat(context.allIssues()).extracting("primaryLocation.message")
+ .containsOnly("css content");
+ }
+
+ @Test
+ public void should_send_file_content_if_context_is_sonarlint() throws IOException {
+ String filePath = "copy-file-content-into-issue-message.css";
+ DefaultInputFile inputFile = new TestInputFileBuilder("moduleKey", filePath)
+ .setLanguage(CssLanguage.KEY)
+ .setCharset(StandardCharsets.UTF_8)
+ .setContents("css content")
+ .build();
+ context.fileSystem().add(inputFile);
+ context.setRuntime(SonarRuntimeImpl.forSonarLint(Version.create(7, 9)));
+ sensor.execute(context);
+ assertThat(context.allIssues()).hasSize(1);
+ assertThat(context.allIssues()).extracting("primaryLocation.message")
+ .containsOnly("css content");
+ }
+
private DefaultInputFile addInputFile(String relativePath) {
DefaultInputFile inputFile = new TestInputFileBuilder("moduleKey", relativePath)
- .setModuleBaseDir(context.fileSystem().baseDirPath())
- .setType(Type.MAIN)
.setLanguage(relativePath.split("\\.")[1])
.setCharset(StandardCharsets.UTF_8)
.setContents("some css content\n on 2 lines")
diff --git a/sonar-css-plugin/src/test/java/org/sonar/css/plugin/server/CssAnalyzerBridgeServerTest.java b/sonar-css-plugin/src/test/java/org/sonar/css/plugin/server/CssAnalyzerBridgeServerTest.java
index 302b6bb..45ae8ae 100644
--- a/sonar-css-plugin/src/test/java/org/sonar/css/plugin/server/CssAnalyzerBridgeServerTest.java
+++ b/sonar-css-plugin/src/test/java/org/sonar/css/plugin/server/CssAnalyzerBridgeServerTest.java
@@ -120,7 +120,7 @@ public class CssAnalyzerBridgeServerTest {
@Test
public void should_forward_process_streams() throws Exception {
- cssAnalyzerBridgeServer = createCssAnalyzerBridgeServer();
+ cssAnalyzerBridgeServer = createCssAnalyzerBridgeServer("testLogs.js");
cssAnalyzerBridgeServer.startServerLazily(context);
assertThat(logTester.logs(DEBUG)).contains("testing debug log");
@@ -133,14 +133,14 @@ public class CssAnalyzerBridgeServerTest {
cssAnalyzerBridgeServer = createCssAnalyzerBridgeServer();
cssAnalyzerBridgeServer.startServerLazily(context);
- Request request = new Request("/absolute/path/file.css", CONFIG_FILE);
+ Request request = new Request("/absolute/path/file.css", null, CONFIG_FILE);
Issue[] issues = cssAnalyzerBridgeServer.analyze(request);
assertThat(issues).hasSize(1);
assertThat(issues[0].line).isEqualTo(2);
assertThat(issues[0].rule).isEqualTo("block-no-empty");
assertThat(issues[0].text).isEqualTo("Unexpected empty block");
- request = new Request("/absolute/path/empty.css", CONFIG_FILE);
+ request = new Request("/absolute/path/empty.css", null, CONFIG_FILE);
issues = cssAnalyzerBridgeServer.analyze(request);
assertThat(issues).isEmpty();
}
@@ -217,7 +217,7 @@ public class CssAnalyzerBridgeServerTest {
DefaultInputFile inputFile = TestInputFileBuilder.create("foo", "invalid-json-response.css")
.build();
- Request request = new Request(inputFile.absolutePath(), CONFIG_FILE);
+ Request request = new Request(inputFile.absolutePath(), null, CONFIG_FILE);
assertThatThrownBy(() -> cssAnalyzerBridgeServer.analyze(request)).isInstanceOf(IllegalStateException.class);
assertThat(context.allIssues()).isEmpty();
}