diff options
author | Sébastien Lesaint <sebastien.lesaint@sonarsource.com> | 2019-04-19 12:18:50 +0200 |
---|---|---|
committer | SonarTech <sonartech@sonarsource.com> | 2019-04-26 20:21:06 +0200 |
commit | 1eb53b8a61cc122e36d90a1f23c5f9a062957408 (patch) | |
tree | 818f6277f4f967563d2537b31e48b1ff676230c5 | |
parent | 705b6c0497b9adfdf7f2727288df3944b97be463 (diff) | |
download | sonarqube-1eb53b8a61cc122e36d90a1f23c5f9a062957408.tar.gz sonarqube-1eb53b8a61cc122e36d90a1f23c5f9a062957408.zip |
SONAR-10725 fix EmailSettings.getServerBaseURL()
4 files changed, 36 insertions, 26 deletions
diff --git a/server/sonar-server-common/src/test/java/org/sonar/server/issue/notification/MyNewIssuesEmailTemplateTest.java b/server/sonar-server-common/src/test/java/org/sonar/server/issue/notification/MyNewIssuesEmailTemplateTest.java index 6f86f8efe6d..ec1fc186f39 100644 --- a/server/sonar-server-common/src/test/java/org/sonar/server/issue/notification/MyNewIssuesEmailTemplateTest.java +++ b/server/sonar-server-common/src/test/java/org/sonar/server/issue/notification/MyNewIssuesEmailTemplateTest.java @@ -22,14 +22,18 @@ package org.sonar.server.issue.notification; import java.io.IOException; import java.nio.charset.StandardCharsets; import org.apache.commons.io.IOUtils; +import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.sonar.api.config.EmailSettings; import org.sonar.api.config.internal.MapSettings; import org.sonar.api.notifications.Notification; +import org.sonar.api.platform.Server; import org.sonar.server.l18n.I18nRule; import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; import static org.sonar.server.issue.notification.NewIssuesStatistics.Metric.COMPONENT; import static org.sonar.server.issue.notification.NewIssuesStatistics.Metric.EFFORT; import static org.sonar.server.issue.notification.NewIssuesStatistics.Metric.RULE; @@ -43,10 +47,15 @@ public class MyNewIssuesEmailTemplateTest { .put("issue.type.BUG", "Bug") .put("issue.type.CODE_SMELL", "Code Smell") .put("issue.type.VULNERABILITY", "Vulnerability"); - private MapSettings settings = new MapSettings() - .setProperty("sonar.core.serverBaseURL", "http://nemo.sonarsource.org"); + private MapSettings settings = new MapSettings(); - private MyNewIssuesEmailTemplate underTest = new MyNewIssuesEmailTemplate(new EmailSettings(settings.asConfig()), i18n); + private Server server = mock(Server.class); + private MyNewIssuesEmailTemplate underTest = new MyNewIssuesEmailTemplate(new EmailSettings(settings.asConfig(), server), i18n); + + @Before + public void setUp() throws Exception { + when(server.getPublicRootUrl()).thenReturn("http://nemo.sonarsource.org"); + } @Test public void no_format_if_not_the_correct_notif() { diff --git a/server/sonar-server-common/src/test/java/org/sonar/server/issue/notification/NewIssuesEmailTemplateTest.java b/server/sonar-server-common/src/test/java/org/sonar/server/issue/notification/NewIssuesEmailTemplateTest.java index c3275763086..df611026d05 100644 --- a/server/sonar-server-common/src/test/java/org/sonar/server/issue/notification/NewIssuesEmailTemplateTest.java +++ b/server/sonar-server-common/src/test/java/org/sonar/server/issue/notification/NewIssuesEmailTemplateTest.java @@ -22,14 +22,18 @@ package org.sonar.server.issue.notification; import java.io.IOException; import java.nio.charset.StandardCharsets; import org.apache.commons.io.IOUtils; +import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.sonar.api.config.EmailSettings; import org.sonar.api.config.internal.MapSettings; import org.sonar.api.notifications.Notification; +import org.sonar.api.platform.Server; import org.sonar.server.l18n.I18nRule; import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; import static org.sonar.server.issue.notification.NewIssuesStatistics.Metric.ASSIGNEE; import static org.sonar.server.issue.notification.NewIssuesStatistics.Metric.COMPONENT; import static org.sonar.server.issue.notification.NewIssuesStatistics.Metric.EFFORT; @@ -44,10 +48,15 @@ public class NewIssuesEmailTemplateTest { .put("issue.type.BUG", "Bug") .put("issue.type.CODE_SMELL", "Code Smell") .put("issue.type.VULNERABILITY", "Vulnerability"); - private MapSettings settings = new MapSettings() - .setProperty("sonar.core.serverBaseURL", "http://nemo.sonarsource.org"); + private MapSettings settings = new MapSettings(); - private NewIssuesEmailTemplate template = new NewIssuesEmailTemplate(new EmailSettings(settings.asConfig()), i18n); + private Server server = mock(Server.class); + private NewIssuesEmailTemplate template = new NewIssuesEmailTemplate(new EmailSettings(settings.asConfig(), server), i18n); + + @Before + public void setUp() throws Exception { + when(server.getPublicRootUrl()).thenReturn("http://nemo.sonarsource.org"); + } @Test public void no_format_is_not_the_correct_notification() { diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/config/EmailSettings.java b/sonar-plugin-api/src/main/java/org/sonar/api/config/EmailSettings.java index d35642a7904..061d93c1b66 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/config/EmailSettings.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/config/EmailSettings.java @@ -20,15 +20,13 @@ package org.sonar.api.config; import java.util.List; -import org.apache.commons.lang.StringUtils; import org.sonar.api.PropertyType; import org.sonar.api.ce.ComputeEngineSide; +import org.sonar.api.platform.Server; import org.sonar.api.server.ServerSide; import static java.util.Arrays.asList; import static org.sonar.api.CoreProperties.CATEGORY_GENERAL; -import static org.sonar.api.CoreProperties.SERVER_BASE_URL; -import static org.sonar.api.CoreProperties.SERVER_BASE_URL_DEFAULT_VALUE; import static org.sonar.api.CoreProperties.SUBCATEGORY_EMAIL; import static org.sonar.api.PropertyType.INTEGER; import static org.sonar.api.PropertyType.SINGLE_SELECT_LIST; @@ -57,9 +55,11 @@ public class EmailSettings { public static final String PREFIX_DEFAULT = "[SONARQUBE]"; private final Configuration config; + private final Server server; - public EmailSettings(Configuration config) { + public EmailSettings(Configuration config, Server server) { this.config = config; + this.server = server; } public String getSmtpHost() { @@ -95,9 +95,7 @@ public class EmailSettings { } public String getServerBaseURL() { - return config.get(SERVER_BASE_URL) - .map(t -> StringUtils.removeEnd(t, "/")) - .orElse(SERVER_BASE_URL_DEFAULT_VALUE); + return server.getPublicRootUrl(); } public String getInstanceName() { diff --git a/sonar-plugin-api/src/test/java/org/sonar/api/config/EmailSettingsTest.java b/sonar-plugin-api/src/test/java/org/sonar/api/config/EmailSettingsTest.java index 72c2fea4607..8de07ea19a0 100644 --- a/sonar-plugin-api/src/test/java/org/sonar/api/config/EmailSettingsTest.java +++ b/sonar-plugin-api/src/test/java/org/sonar/api/config/EmailSettingsTest.java @@ -21,16 +21,18 @@ package org.sonar.api.config; import org.apache.commons.lang.RandomStringUtils; import org.junit.Test; -import org.sonar.api.CoreProperties; import org.sonar.api.config.internal.MapSettings; +import org.sonar.api.platform.Server; import static org.assertj.core.api.Assertions.assertThat; -import static org.sonar.api.CoreProperties.SERVER_BASE_URL; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; public class EmailSettingsTest { private MapSettings settings = new MapSettings(); - private EmailSettings underTest = new EmailSettings(settings.asConfig()); + private Server server = mock(Server.class); + private EmailSettings underTest = new EmailSettings(settings.asConfig(), server); @Test public void should_return_default_values() { @@ -42,25 +44,17 @@ public class EmailSettingsTest { assertThat(underTest.getFrom()).isEqualTo("noreply@nowhere"); assertThat(underTest.getFromName()).isEqualTo("SonarQube"); assertThat(underTest.getPrefix()).isEqualTo("[SONARQUBE]"); - assertThat(underTest.getServerBaseURL()).isEqualTo(CoreProperties.SERVER_BASE_URL_DEFAULT_VALUE); } @Test - public void getServerBaseUrl_returns_property_value() { + public void getServerBaseUrl_returns_server_getPublicRootUrl() { String expected = RandomStringUtils.randomAlphabetic(15); - settings.setProperty(SERVER_BASE_URL, expected); + when(server.getPublicRootUrl()).thenReturn(expected); assertThat(underTest.getServerBaseURL()).isEqualTo(expected); } @Test - public void getServerBaseUrl_removes_trailing_slash_from_property_value() { - settings.setProperty(SERVER_BASE_URL, "http://www.acme.com/"); - - assertThat(underTest.getServerBaseURL()).isEqualTo("http://www.acme.com"); - } - - @Test public void getInstanceName_returns_sonarqube_when_not_on_SonarCloud() { assertThat(underTest.getInstanceName()).isEqualTo("SonarQube"); } |