aboutsummaryrefslogtreecommitdiffstats
path: root/it
diff options
context:
space:
mode:
authorJulien Lancelot <julien.lancelot@sonarsource.com>2017-01-04 11:36:13 +0100
committerJulien Lancelot <julien.lancelot@sonarsource.com>2017-01-05 13:09:46 +0100
commit572eece6a297a7664799a242dd3b5ecc5ff9453a (patch)
tree862d2c7db581b6eb5c450bba652294858351f57b /it
parent58b2a0961fc705d7f65736535d70916c5b8d46f3 (diff)
downloadsonarqube-572eece6a297a7664799a242dd3b5ecc5ff9453a.tar.gz
sonarqube-572eece6a297a7664799a242dd3b5ecc5ff9453a.zip
SONAR-8235 Add ITs
Diffstat (limited to 'it')
-rw-r--r--it/it-plugins/server-plugin/src/main/java/ServerPlugin.java2
-rw-r--r--it/it-tests/src/test/java/it/settings/SettingsTest.java94
2 files changed, 74 insertions, 22 deletions
diff --git a/it/it-plugins/server-plugin/src/main/java/ServerPlugin.java b/it/it-plugins/server-plugin/src/main/java/ServerPlugin.java
index e28213d6d12..b74b0d6a8e0 100644
--- a/it/it-plugins/server-plugin/src/main/java/ServerPlugin.java
+++ b/it/it-plugins/server-plugin/src/main/java/ServerPlugin.java
@@ -36,7 +36,7 @@ import org.sonar.api.SonarPlugin;
@Property(key = "float", name = "Float", type = PropertyType.FLOAT, global = true, project = false),
@Property(key = "int", name = "Integer", type = PropertyType.INTEGER, global = true, project = false),
@Property(key = "string", name = "String", type = PropertyType.STRING, global = true, project = false),
- @Property(key = "setting.license", name = "License", type = PropertyType.LICENSE, global = true, project = false),
+ @Property(key = "setting.license.secured", name = "License", type = PropertyType.LICENSE, global = true, project = false),
@Property(key = "long", name = "Long", type = PropertyType.LONG, global = true, project = false),
@Property(key = "password", name = "Password", type = PropertyType.PASSWORD, global = true, project = false),
@Property(key = "text", name = "Text", type = PropertyType.TEXT, global = true, project = false),
diff --git a/it/it-tests/src/test/java/it/settings/SettingsTest.java b/it/it-tests/src/test/java/it/settings/SettingsTest.java
index 41fc8df8296..035ba9fd069 100644
--- a/it/it-tests/src/test/java/it/settings/SettingsTest.java
+++ b/it/it-tests/src/test/java/it/settings/SettingsTest.java
@@ -26,6 +26,7 @@ import java.util.List;
import javax.annotation.CheckForNull;
import org.apache.commons.io.FileUtils;
import org.junit.After;
+import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
@@ -34,9 +35,15 @@ import org.sonarqube.ws.client.setting.ResetRequest;
import org.sonarqube.ws.client.setting.SetRequest;
import org.sonarqube.ws.client.setting.SettingsService;
import org.sonarqube.ws.client.setting.ValuesRequest;
+import util.user.UserRule;
import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.tuple;
+import static org.sonarqube.ws.Settings.Setting;
+import static org.sonarqube.ws.Settings.ValuesWsResponse;
import static util.ItUtils.newAdminWsClient;
+import static util.ItUtils.newUserWsClient;
+import static util.ItUtils.newWsClient;
import static util.ItUtils.resetSettings;
public class SettingsTest {
@@ -49,16 +56,29 @@ public class SettingsTest {
@ClassRule
public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR;
- static SettingsService SETTINGS;
+ @ClassRule
+ public static UserRule userRule = UserRule.from(orchestrator);
+
+ static SettingsService anonymousSettingsService;
+ static SettingsService userSettingsService;
+ static SettingsService adminSettingsService;
@BeforeClass
public static void initSettingsService() throws Exception {
- SETTINGS = newAdminWsClient(orchestrator).settingsService();
+ userRule.createUser("setting-user", "setting-user");
+ anonymousSettingsService = newWsClient(orchestrator).settingsService();
+ userSettingsService = newUserWsClient(orchestrator, "setting-user", "setting-user").settingsService();
+ adminSettingsService = newAdminWsClient(orchestrator).settingsService();
+ }
+
+ @AfterClass
+ public static void tearDown() throws Exception {
+ userRule.deactivateUsers("setting-user");
}
@After
public void reset_settings() throws Exception {
- resetSettings(orchestrator, null, PLUGIN_SETTING_KEY);
+ resetSettings(orchestrator, null, PLUGIN_SETTING_KEY, "globalPropertyChange.received", "hidden", "setting.secured", "setting.license.secured");
}
/**
@@ -66,45 +86,77 @@ public class SettingsTest {
*/
@Test
public void global_property_change_extension_point() throws IOException {
- SETTINGS.set(SetRequest.builder().setKey("globalPropertyChange.received").setValue("NEWVALUE").build());
+ adminSettingsService.set(SetRequest.builder().setKey("globalPropertyChange.received").setValue("NEWVALUE").build());
assertThat(FileUtils.readFileToString(orchestrator.getServer().getWebLogs()))
- .contains("Received change: [key=globalPropertyChange.received, newValue=NEWVALUE]");
+ .contains("Received change: [key=globalPropertyChange.received, newValue=NEWVALUE]");
}
@Test
- public void get_default_value() throws Exception {
- Settings.Setting setting = getSetting(PLUGIN_SETTING_KEY);
+ public void get_default_value() {
+ Setting setting = getSetting(PLUGIN_SETTING_KEY, anonymousSettingsService);
assertThat(setting.getValue()).isEqualTo("aDefaultValue");
assertThat(setting.getInherited()).isTrue();
}
@Test
- public void set_setting() throws Exception {
- SETTINGS.set(SetRequest.builder().setKey(PLUGIN_SETTING_KEY).setValue("some value").build());
+ public void set_setting() {
+ adminSettingsService.set(SetRequest.builder().setKey(PLUGIN_SETTING_KEY).setValue("some value").build());
- String value = getSetting(PLUGIN_SETTING_KEY).getValue();
+ String value = getSetting(PLUGIN_SETTING_KEY, anonymousSettingsService).getValue();
assertThat(value).isEqualTo("some value");
}
@Test
- public void remove_setting() throws Exception {
- SETTINGS.set(SetRequest.builder().setKey(PLUGIN_SETTING_KEY).setValue("some value").build());
- SETTINGS.set(SetRequest.builder().setKey("sonar.links.ci").setValue("http://localhost").build());
+ public void remove_setting() {
+ adminSettingsService.set(SetRequest.builder().setKey(PLUGIN_SETTING_KEY).setValue("some value").build());
+ adminSettingsService.set(SetRequest.builder().setKey("sonar.links.ci").setValue("http://localhost").build());
- SETTINGS.reset(ResetRequest.builder().setKeys(PLUGIN_SETTING_KEY, "sonar.links.ci").build());
- assertThat(getSetting(PLUGIN_SETTING_KEY).getValue()).isEqualTo("aDefaultValue");
- assertThat(getSetting("sonar.links.ci")).isNull();
+ adminSettingsService.reset(ResetRequest.builder().setKeys(PLUGIN_SETTING_KEY, "sonar.links.ci").build());
+ assertThat(getSetting(PLUGIN_SETTING_KEY, anonymousSettingsService).getValue()).isEqualTo("aDefaultValue");
+ assertThat(getSetting("sonar.links.ci", anonymousSettingsService)).isNull();
+ }
+
+ @Test
+ public void hidden_setting() {
+ adminSettingsService.set(SetRequest.builder().setKey("hidden").setValue("test").build());
+ assertThat(getSetting("hidden", anonymousSettingsService).getValue()).isEqualTo("test");
+ }
+
+ @Test
+ public void secured_setting() {
+ adminSettingsService.set(SetRequest.builder().setKey("setting.secured").setValue("test").build());
+ assertThat(getSetting("setting.secured", anonymousSettingsService)).isNull();
+ assertThat(getSetting("setting.secured", userSettingsService)).isNull();
+ assertThat(getSetting("setting.secured", adminSettingsService).getValue()).isEqualTo("test");
+ }
+
+ @Test
+ public void license_setting() {
+ adminSettingsService.set(SetRequest.builder().setKey("setting.license.secured").setValue("test").build());
+ assertThat(getSetting("setting.license.secured", anonymousSettingsService)).isNull();
+ assertThat(getSetting("setting.license.secured", userSettingsService).getValue()).isEqualTo("test");
+ assertThat(getSetting("setting.license.secured", adminSettingsService).getValue()).isEqualTo("test");
}
@Test
- public void hidden_setting() throws Exception {
- SETTINGS.set(SetRequest.builder().setKey("hidden").setValue("test").build());
- assertThat(getSetting("hidden").getValue()).isEqualTo("test");
+ public void return_defined_settings_when_no_key_provided() throws Exception {
+ adminSettingsService.set(SetRequest.builder().setKey(PLUGIN_SETTING_KEY).setValue("some value").build());
+ adminSettingsService.set(SetRequest.builder().setKey("hidden").setValue("test").build());
+
+ assertThat(adminSettingsService.values(ValuesRequest.builder().build()).getSettingsList())
+ .extracting(Setting::getKey)
+ .contains(PLUGIN_SETTING_KEY, "hidden", "sonar.forceAuthentication", "sonar.defaultGroup",
+ // Settings for scanner
+ "sonar.core.startTime");
+
+ assertThat(adminSettingsService.values(ValuesRequest.builder().build()).getSettingsList())
+ .extracting(Setting::getKey, Setting::getValue)
+ .contains(tuple(PLUGIN_SETTING_KEY, "some value"), tuple("hidden", "test"));
}
@CheckForNull
- private Settings.Setting getSetting(String key) {
- Settings.ValuesWsResponse response = SETTINGS.values(ValuesRequest.builder().setKeys(key).build());
+ private static Setting getSetting(String key, SettingsService settingsService) {
+ ValuesWsResponse response = settingsService.values(ValuesRequest.builder().setKeys(key).build());
List<Settings.Setting> settings = response.getSettingsList();
return settings.isEmpty() ? null : settings.get(0);
}