diff options
| author | Alban Auzeill | 2019-12-23 14:38:46 +0100 |
|---|---|---|
| committer | Elena Vilchik | 2019-12-23 14:38:46 +0100 |
| commit | e1084ab0bee42625105ff332365b05ab30654d47 (patch) | |
| tree | 56ed1f1d404b378db88e334294f2ba3a5022c72b /sonar-css-plugin/src/test/java/org/sonar/css | |
| parent | 0161362db5e83f700dded8ff052b358a3f478640 (diff) | |
| download | sonar-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/css')
| -rw-r--r-- | sonar-css-plugin/src/test/java/org/sonar/css/plugin/CssRuleSensorTest.java | 53 | ||||
| -rw-r--r-- | sonar-css-plugin/src/test/java/org/sonar/css/plugin/server/CssAnalyzerBridgeServerTest.java | 8 |
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(); } |
