aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>2019-04-19 12:18:50 +0200
committerSonarTech <sonartech@sonarsource.com>2019-04-26 20:21:06 +0200
commit1eb53b8a61cc122e36d90a1f23c5f9a062957408 (patch)
tree818f6277f4f967563d2537b31e48b1ff676230c5
parent705b6c0497b9adfdf7f2727288df3944b97be463 (diff)
downloadsonarqube-1eb53b8a61cc122e36d90a1f23c5f9a062957408.tar.gz
sonarqube-1eb53b8a61cc122e36d90a1f23c5f9a062957408.zip
SONAR-10725 fix EmailSettings.getServerBaseURL()
-rw-r--r--server/sonar-server-common/src/test/java/org/sonar/server/issue/notification/MyNewIssuesEmailTemplateTest.java15
-rw-r--r--server/sonar-server-common/src/test/java/org/sonar/server/issue/notification/NewIssuesEmailTemplateTest.java15
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/config/EmailSettings.java12
-rw-r--r--sonar-plugin-api/src/test/java/org/sonar/api/config/EmailSettingsTest.java20
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");
}