From: Teryk Bellahsene Date: Thu, 21 May 2015 10:14:09 +0000 (+0200) Subject: WsTester checks POST method X-Git-Tag: 5.2-RC1~1877 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=dc4cc92fd314b16cd5b52433a69275013ac2243a;p=sonarqube.git WsTester checks POST method --- diff --git a/server/sonar-server/src/main/java/org/sonar/server/ws/RequestVerifier.java b/server/sonar-server/src/main/java/org/sonar/server/ws/RequestVerifier.java new file mode 100644 index 00000000000..e560fe3224a --- /dev/null +++ b/server/sonar-server/src/main/java/org/sonar/server/ws/RequestVerifier.java @@ -0,0 +1,40 @@ +/* + * SonarQube, open source software quality management tool. + * Copyright (C) 2008-2014 SonarSource + * mailto:contact AT sonarsource DOT com + * + * SonarQube is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * SonarQube is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +package org.sonar.server.ws; + +import org.sonar.api.server.ws.Request; +import org.sonar.api.server.ws.WebService; +import org.sonar.server.exceptions.ServerException; + +import javax.servlet.http.HttpServletResponse; + +public class RequestVerifier { + private RequestVerifier() { + // static methods only + } + + public static void verifyRequest(WebService.Action action, Request request) { + // verify the HTTP verb + if (action.isPost() && !"POST".equals(request.method())) { + throw new ServerException(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "HTTP method POST is required"); + } + } +} diff --git a/server/sonar-server/src/main/java/org/sonar/server/ws/WebServiceEngine.java b/server/sonar-server/src/main/java/org/sonar/server/ws/WebServiceEngine.java index 0ef2a0a5ce5..be69cbb783e 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/ws/WebServiceEngine.java +++ b/server/sonar-server/src/main/java/org/sonar/server/ws/WebServiceEngine.java @@ -20,9 +20,8 @@ package org.sonar.server.ws; import org.picocontainer.Startable; -import org.sonar.api.server.ServerSide; import org.sonar.api.i18n.I18n; -import org.sonar.api.server.ws.Request; +import org.sonar.api.server.ServerSide; import org.sonar.api.server.ws.WebService; import org.sonar.api.server.ws.internal.ValidatingRequest; import org.sonar.api.utils.log.Loggers; @@ -34,12 +33,12 @@ import org.sonar.server.exceptions.ServerException; import org.sonar.server.plugins.MimeTypes; import org.sonar.server.user.UserSession; -import javax.servlet.http.HttpServletResponse; - import java.io.OutputStreamWriter; import java.nio.charset.StandardCharsets; import java.util.List; +import static org.sonar.server.ws.RequestVerifier.verifyRequest; + /** * @since 4.2 */ @@ -110,13 +109,6 @@ public class WebServiceEngine implements Startable { return action; } - private void verifyRequest(WebService.Action action, Request request) { - // verify the HTTP verb - if (action.isPost() && !"POST".equals(request.method())) { - throw new ServerException(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "HTTP method POST is required"); - } - } - private void sendErrors(ServletResponse response, int status, Errors errors) { ServletResponse.ServletStream stream = response.stream(); stream.reset(); diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/ws/SubmitReportActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/ws/SubmitReportActionTest.java index 4998ab619d7..72652f59a43 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/ws/SubmitReportActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/ws/SubmitReportActionTest.java @@ -20,7 +20,6 @@ package org.sonar.server.computation.ws; -import java.io.InputStream; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -33,6 +32,8 @@ import org.sonar.server.exceptions.ForbiddenException; import org.sonar.server.tester.UserSessionRule; import org.sonar.server.ws.WsTester; +import java.io.InputStream; + import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.any; import static org.mockito.Mockito.eq; @@ -75,7 +76,7 @@ public class SubmitReportActionTest { when(queue.add(any(String.class), any(InputStream.class))).thenReturn(new ReportQueue.Item(dto, null)); WsTester.TestRequest request = wsTester - .newGetRequest(ComputationWs.ENDPOINT, "submit_report") + .newPostRequest(ComputationWs.ENDPOINT, "submit_report") .setParam(SubmitReportAction.PARAM_PROJECT_KEY, "P1") .setParam(SubmitReportAction.PARAM_REPORT_DATA, null); WsTester.Result response = request.execute(); @@ -90,7 +91,7 @@ public class SubmitReportActionTest { userSessionRule.setGlobalPermissions(GlobalPermissions.DASHBOARD_SHARING); WsTester.TestRequest request = wsTester - .newGetRequest(ComputationWs.ENDPOINT, "submit_report") + .newPostRequest(ComputationWs.ENDPOINT, "submit_report") .setParam(SubmitReportAction.PARAM_PROJECT_KEY, "P1") .setParam(SubmitReportAction.PARAM_REPORT_DATA, null); request.execute(); diff --git a/server/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/QGatesWsTest.java b/server/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/QGatesWsTest.java index e912b781678..58281f8ff40 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/QGatesWsTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/QGatesWsTest.java @@ -188,7 +188,7 @@ public class QGatesWsTest { public void create_nominal() throws Exception { String name = "New QG"; when(qGates.create(name)).thenReturn(new QualityGateDto().setId(42L).setName(name)); - tester.newGetRequest("api/qualitygates", "create").setParam("name", name).execute() + tester.newPostRequest("api/qualitygates", "create").setParam("name", name).execute() .assertJson("{\"id\":42,\"name\":\"New QG\"}"); } @@ -196,20 +196,20 @@ public class QGatesWsTest { public void copy_nominal() throws Exception { String name = "Copied QG"; when(qGates.copy(24L, name)).thenReturn(new QualityGateDto().setId(42L).setName(name)); - tester.newGetRequest("api/qualitygates", "copy").setParam("id", "24").setParam("name", name).execute() + tester.newPostRequest("api/qualitygates", "copy").setParam("id", "24").setParam("name", name).execute() .assertJson("{\"id\":42,\"name\":\"Copied QG\"}"); } @Test(expected = IllegalArgumentException.class) public void create_with_missing_name() throws Exception { - tester.newGetRequest("api/qualitygates", "create").execute(); + tester.newPostRequest("api/qualitygates", "create").execute(); } @Test(expected = BadRequestException.class) public void create_with_duplicate_name() throws Exception { String name = "New QG"; when(qGates.create(name)).thenThrow(new BadRequestException("Name is already used")); - tester.newGetRequest("api/qualitygates", "create").setParam("name", name).execute(); + tester.newPostRequest("api/qualitygates", "create").setParam("name", name).execute(); } @Test @@ -225,14 +225,14 @@ public class QGatesWsTest { @Test public void set_as_default_nominal() throws Exception { Long id = 42L; - tester.newGetRequest("api/qualitygates", "set_as_default").setParam("id", id.toString()).execute() + tester.newPostRequest("api/qualitygates", "set_as_default").setParam("id", id.toString()).execute() .assertNoContent(); verify(qGates).setDefault(id); } @Test public void unset_default_nominal() throws Exception { - tester.newGetRequest("api/qualitygates", "unset_default").execute() + tester.newPostRequest("api/qualitygates", "unset_default").execute() .assertNoContent(); verify(qGates).setDefault(null); } @@ -240,18 +240,18 @@ public class QGatesWsTest { @Test public void destroy_nominal() throws Exception { Long id = 42L; - tester.newGetRequest("api/qualitygates", "destroy").setParam("id", id.toString()).execute() + tester.newPostRequest("api/qualitygates", "destroy").setParam("id", id.toString()).execute() .assertNoContent(); } @Test(expected = IllegalArgumentException.class) public void destroy_without_id() throws Exception { - tester.newGetRequest("api/qualitygates", "destroy").execute(); + tester.newPostRequest("api/qualitygates", "destroy").execute(); } @Test(expected = BadRequestException.class) public void destroy_with_invalid_id() throws Exception { - tester.newGetRequest("api/qualitygates", "destroy").setParam("id", "polop").execute(); + tester.newPostRequest("api/qualitygates", "destroy").setParam("id", "polop").execute(); } @Test @@ -340,7 +340,7 @@ public class QGatesWsTest { when(qGates.createCondition(qGateId, metricKey, operator, warningThreshold, errorThreshold, null)) .thenReturn(new QualityGateConditionDto().setId(12345L).setQualityGateId(qGateId).setMetricId(10).setMetricKey(metricKey) .setOperator(operator).setWarningThreshold(warningThreshold).setErrorThreshold(errorThreshold)); - tester.newGetRequest("api/qualitygates", "create_condition") + tester.newPostRequest("api/qualitygates", "create_condition") .setParam("gateId", Long.toString(qGateId)) .setParam("metric", metricKey) .setParam("op", operator) @@ -360,7 +360,7 @@ public class QGatesWsTest { when(qGates.updateCondition(condId, metricKey, operator, warningThreshold, errorThreshold, null)) .thenReturn(new QualityGateConditionDto().setId(condId).setMetricId(10).setMetricKey(metricKey) .setOperator(operator).setWarningThreshold(warningThreshold).setErrorThreshold(errorThreshold)); - tester.newGetRequest("api/qualitygates", "update_condition") + tester.newPostRequest("api/qualitygates", "update_condition") .setParam("id", Long.toString(condId)) .setParam("metric", metricKey) .setParam("op", operator) @@ -373,7 +373,7 @@ public class QGatesWsTest { @Test public void delete_condition_nominal() throws Exception { long condId = 12345L; - tester.newGetRequest("api/qualitygates", "delete_condition") + tester.newPostRequest("api/qualitygates", "delete_condition") .setParam("id", Long.toString(condId)) .execute() .assertNoContent(); @@ -432,7 +432,7 @@ public class QGatesWsTest { public void select_nominal() throws Exception { long gateId = 42L; long projectId = 666L; - tester.newGetRequest("api/qualitygates", "select") + tester.newPostRequest("api/qualitygates", "select") .setParam("gateId", Long.toString(gateId)) .setParam("projectId", Long.toString(projectId)) .execute() @@ -444,7 +444,7 @@ public class QGatesWsTest { public void deselect_nominal() throws Exception { long gateId = 42L; long projectId = 666L; - tester.newGetRequest("api/qualitygates", "deselect") + tester.newPostRequest("api/qualitygates", "deselect") .setParam("gateId", Long.toString(gateId)) .setParam("projectId", Long.toString(projectId)) .execute() diff --git a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/ChangeParentActionMediumTest.java b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/ChangeParentActionMediumTest.java index 52ead319c32..f660fcce5c2 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/ChangeParentActionMediumTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/ChangeParentActionMediumTest.java @@ -19,7 +19,6 @@ */ package org.sonar.server.qualityprofile.ws; -import java.util.List; import org.junit.After; import org.junit.Before; import org.junit.ClassRule; @@ -42,6 +41,8 @@ import org.sonar.server.tester.ServerTester; import org.sonar.server.tester.UserSessionRule; import org.sonar.server.ws.WsTester; +import java.util.List; + import static org.assertj.core.api.Assertions.assertThat; public class ChangeParentActionMediumTest { @@ -84,7 +85,7 @@ public class ChangeParentActionMediumTest { assertThat(db.activeRuleDao().findByProfileKey(session, child.getKey())).isEmpty(); // Set parent - wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, "change_parent") + wsTester.newPostRequest(QProfilesWs.API_ENDPOINT, "change_parent") .setParam(QProfileIdentificationParamUtils.PARAM_PROFILE_KEY, child.getKey()) .setParam("parentKey", parent1.getKey().toString()) .execute(); @@ -113,7 +114,7 @@ public class ChangeParentActionMediumTest { session.clearCache(); // Set parent 2 through WS - wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, "change_parent") + wsTester.newPostRequest(QProfilesWs.API_ENDPOINT, "change_parent") .setParam(QProfileIdentificationParamUtils.PARAM_PROFILE_KEY, child.getKey()) .setParam("parentKey", parent2.getKey().toString()) .execute(); @@ -139,7 +140,7 @@ public class ChangeParentActionMediumTest { session.clearCache(); // Remove parent through WS - wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, "change_parent") + wsTester.newPostRequest(QProfilesWs.API_ENDPOINT, "change_parent") .setParam(QProfileIdentificationParamUtils.PARAM_PROFILE_KEY, child.getKey()) .execute(); session.clearCache(); @@ -164,7 +165,7 @@ public class ChangeParentActionMediumTest { assertThat(db.activeRuleDao().findByProfileKey(session, child.getKey())).isEmpty(); // 1. Set parent 1 - wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, "change_parent") + wsTester.newPostRequest(QProfilesWs.API_ENDPOINT, "change_parent") .setParam(QProfileIdentificationParamUtils.PARAM_LANGUAGE, "xoo") .setParam(QProfileIdentificationParamUtils.PARAM_PROFILE_NAME, child.getName()) .setParam("parentName", parent1.getName()) @@ -177,7 +178,7 @@ public class ChangeParentActionMediumTest { assertThat(activeRules1.get(0).getKey().ruleKey().rule()).isEqualTo("rule1"); // 2. Set parent 2 - wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, "change_parent") + wsTester.newPostRequest(QProfilesWs.API_ENDPOINT, "change_parent") .setParam(QProfileIdentificationParamUtils.PARAM_LANGUAGE, "xoo") .setParam(QProfileIdentificationParamUtils.PARAM_PROFILE_NAME, child.getName()) .setParam("parentName", parent2.getName()) @@ -190,7 +191,7 @@ public class ChangeParentActionMediumTest { assertThat(activeRules2.get(0).getKey().ruleKey().rule()).isEqualTo("rule2"); // 3. Remove parent - wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, "change_parent") + wsTester.newPostRequest(QProfilesWs.API_ENDPOINT, "change_parent") .setParam(QProfileIdentificationParamUtils.PARAM_LANGUAGE, "xoo") .setParam(QProfileIdentificationParamUtils.PARAM_PROFILE_NAME, child.getName()) .setParam("parentName", "") @@ -218,7 +219,7 @@ public class ChangeParentActionMediumTest { session.clearCache(); // Remove parent - wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, "change_parent") + wsTester.newPostRequest(QProfilesWs.API_ENDPOINT, "change_parent") .setParam(QProfileIdentificationParamUtils.PARAM_PROFILE_KEY, child.getKey()) .setParam("parentKey", "") .execute(); @@ -236,7 +237,7 @@ public class ChangeParentActionMediumTest { assertThat(db.activeRuleDao().findByProfileKey(session, child.getKey())).isEmpty(); - wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, "change_parent") + wsTester.newPostRequest(QProfilesWs.API_ENDPOINT, "change_parent") .setParam(QProfileIdentificationParamUtils.PARAM_PROFILE_KEY, child.getKee()) .setParam("parentName", "polop") .setParam("parentKey", "palap") @@ -250,7 +251,7 @@ public class ChangeParentActionMediumTest { assertThat(db.activeRuleDao().findByProfileKey(session, child.getKey())).isEmpty(); - wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, "change_parent") + wsTester.newPostRequest(QProfilesWs.API_ENDPOINT, "change_parent") .setParam(QProfileIdentificationParamUtils.PARAM_PROFILE_KEY, child.getKee()) .setParam(QProfileIdentificationParamUtils.PARAM_PROFILE_NAME, child.getName()) .setParam("parentKey", "palap") @@ -260,7 +261,7 @@ public class ChangeParentActionMediumTest { @Test(expected = ForbiddenException.class) public void fail_if_missing_permission() throws Exception { userSessionRule.login("anakin"); - wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, "change_parent") + wsTester.newPostRequest(QProfilesWs.API_ENDPOINT, "change_parent") .setParam(QProfileIdentificationParamUtils.PARAM_PROFILE_KEY, "polop") .setParam("parentKey", "pulup") .execute(); diff --git a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsMediumTest.java b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsMediumTest.java index 985b0f52143..7af3fba73e6 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsMediumTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsMediumTest.java @@ -92,7 +92,7 @@ public class QProfilesWsMediumTest { assertThat(db.activeRuleDao().findByProfileKey(session, profile.getKey())).hasSize(1); // 1. Deactivate Rule - WsTester.TestRequest request = wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, RuleActivationActions.DEACTIVATE_ACTION); + WsTester.TestRequest request = wsTester.newPostRequest(QProfilesWs.API_ENDPOINT, RuleActivationActions.DEACTIVATE_ACTION); request.setParam(RuleActivationActions.PROFILE_KEY, profile.getKey().toString()); request.setParam(RuleActivationActions.RULE_KEY, rule.getKey().toString()); request.execute(); @@ -119,7 +119,7 @@ public class QProfilesWsMediumTest { assertThat(db.activeRuleDao().findByProfileKey(session, profile.getKey())).hasSize(4); // 1. Deactivate Rule - WsTester.TestRequest request = wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, BulkRuleActivationActions.BULK_DEACTIVATE_ACTION); + WsTester.TestRequest request = wsTester.newPostRequest(QProfilesWs.API_ENDPOINT, BulkRuleActivationActions.BULK_DEACTIVATE_ACTION); request.setParam(RuleActivationActions.PROFILE_KEY, profile.getKey().toString()); WsTester.Result result = request.execute(); session.clearCache(); @@ -144,7 +144,7 @@ public class QProfilesWsMediumTest { assertThat(db.activeRuleDao().findByProfileKey(session, profile.getKey())).hasSize(2); // 1. Deactivate Rule - WsTester.TestRequest request = wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, BulkRuleActivationActions.BULK_DEACTIVATE_ACTION); + WsTester.TestRequest request = wsTester.newPostRequest(QProfilesWs.API_ENDPOINT, BulkRuleActivationActions.BULK_DEACTIVATE_ACTION); request.setParam(RuleActivationActions.PROFILE_KEY, profile.getKey().toString()); WsTester.Result result = request.execute(); session.clearCache(); @@ -167,7 +167,7 @@ public class QProfilesWsMediumTest { assertThat(db.activeRuleDao().findByProfileKey(session, profile.getKey())).hasSize(2); // 1. Deactivate Rule - WsTester.TestRequest request = wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, BulkRuleActivationActions.BULK_DEACTIVATE_ACTION); + WsTester.TestRequest request = wsTester.newPostRequest(QProfilesWs.API_ENDPOINT, BulkRuleActivationActions.BULK_DEACTIVATE_ACTION); request.setParam(RuleActivationActions.PROFILE_KEY, profile.getKey().toString()); request.setParam(SearchOptions.PARAM_TEXT_QUERY, "hello"); WsTester.Result result = request.execute(); @@ -187,7 +187,7 @@ public class QProfilesWsMediumTest { assertThat(db.activeRuleDao().findByProfileKey(session, profile.getKey())).isEmpty(); // 1. Activate Rule - WsTester.TestRequest request = wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, RuleActivationActions.ACTIVATE_ACTION); + WsTester.TestRequest request = wsTester.newPostRequest(QProfilesWs.API_ENDPOINT, RuleActivationActions.ACTIVATE_ACTION); request.setParam(RuleActivationActions.PROFILE_KEY, profile.getKey().toString()); request.setParam(RuleActivationActions.RULE_KEY, rule.getKey().toString()); WsTester.Result result = request.execute(); @@ -208,7 +208,7 @@ public class QProfilesWsMediumTest { try { // 1. Activate Rule - WsTester.TestRequest request = wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, RuleActivationActions.ACTIVATE_ACTION); + WsTester.TestRequest request = wsTester.newPostRequest(QProfilesWs.API_ENDPOINT, RuleActivationActions.ACTIVATE_ACTION); request.setParam(RuleActivationActions.PROFILE_KEY, profile.getKey().toString()); request.setParam(RuleActivationActions.RULE_KEY, rule.getKey().toString()); request.execute(); @@ -229,7 +229,7 @@ public class QProfilesWsMediumTest { assertThat(db.activeRuleDao().findByProfileKey(session, profile.getKey())).isEmpty(); // 1. Activate Rule - WsTester.TestRequest request = wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, RuleActivationActions.ACTIVATE_ACTION); + WsTester.TestRequest request = wsTester.newPostRequest(QProfilesWs.API_ENDPOINT, RuleActivationActions.ACTIVATE_ACTION); request.setParam(RuleActivationActions.PROFILE_KEY, profile.getKey().toString()); request.setParam(RuleActivationActions.RULE_KEY, rule.getKey().toString()); request.setParam(RuleActivationActions.SEVERITY, "MINOR"); @@ -256,7 +256,7 @@ public class QProfilesWsMediumTest { assertThat(db.activeRuleDao().findByProfileKey(session, profile.getKey())).isEmpty(); // 1. Activate Rule - WsTester.TestRequest request = wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, BulkRuleActivationActions.BULK_ACTIVATE_ACTION); + WsTester.TestRequest request = wsTester.newPostRequest(QProfilesWs.API_ENDPOINT, BulkRuleActivationActions.BULK_ACTIVATE_ACTION); request.setParam(RuleActivationActions.PROFILE_KEY, profile.getKey().toString()); request.setParam(SearchAction.PARAM_LANGUAGES, "java"); WsTester.Result result = request.execute(); @@ -280,7 +280,7 @@ public class QProfilesWsMediumTest { assertThat(db.activeRuleDao().findByProfileKey(session, php.getKey())).isEmpty(); // 1. Activate Rule - WsTester.TestRequest request = wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, BulkRuleActivationActions.BULK_ACTIVATE_ACTION); + WsTester.TestRequest request = wsTester.newPostRequest(QProfilesWs.API_ENDPOINT, BulkRuleActivationActions.BULK_ACTIVATE_ACTION); request.setParam(RuleActivationActions.PROFILE_KEY, php.getKey().toString()); request.setParam(SearchAction.PARAM_LANGUAGES, "php"); WsTester.Result result = request.execute(); @@ -303,7 +303,7 @@ public class QProfilesWsMediumTest { assertThat(db.activeRuleDao().findByProfileKey(session, profile.getKey())).isEmpty(); // 1. Activate Rule with query returning 0 hits - WsTester.TestRequest request = wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, BulkRuleActivationActions.BULK_ACTIVATE_ACTION); + WsTester.TestRequest request = wsTester.newPostRequest(QProfilesWs.API_ENDPOINT, BulkRuleActivationActions.BULK_ACTIVATE_ACTION); request.setParam(RuleActivationActions.PROFILE_KEY, profile.getKey().toString()); request.setParam(SearchOptions.PARAM_TEXT_QUERY, "php"); WsTester.Result result = request.execute(); @@ -313,7 +313,7 @@ public class QProfilesWsMediumTest { assertThat(db.activeRuleDao().findByProfileKey(session, profile.getKey())).hasSize(0); // 1. Activate Rule with query returning 1 hits - request = wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, BulkRuleActivationActions.BULK_ACTIVATE_ACTION); + request = wsTester.newPostRequest(QProfilesWs.API_ENDPOINT, BulkRuleActivationActions.BULK_ACTIVATE_ACTION); request.setParam(RuleActivationActions.PROFILE_KEY, profile.getKey().toString()); request.setParam(SearchOptions.PARAM_TEXT_QUERY, "world"); result = request.execute(); @@ -340,7 +340,7 @@ public class QProfilesWsMediumTest { new QueryContext(userSessionRule)).getHits()).hasSize(2); // 1. Activate Rule with query returning 2 hits - WsTester.TestRequest request = wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, BulkRuleActivationActions.BULK_ACTIVATE_ACTION); + WsTester.TestRequest request = wsTester.newPostRequest(QProfilesWs.API_ENDPOINT, BulkRuleActivationActions.BULK_ACTIVATE_ACTION); request.setParam(BulkRuleActivationActions.PROFILE_KEY, profile.getKey().toString()); request.setParam(BulkRuleActivationActions.SEVERITY, "MINOR"); request.execute(); @@ -370,7 +370,7 @@ public class QProfilesWsMediumTest { assertThat(db.activeRuleDao().getByKey(session, active2.getKey()).getSeverityString()).isEqualTo("MINOR"); // 1. reset child rule - WsTester.TestRequest request = wsTester.newGetRequest(QProfilesWs.API_ENDPOINT, RuleActivationActions.ACTIVATE_ACTION); + WsTester.TestRequest request = wsTester.newPostRequest(QProfilesWs.API_ENDPOINT, RuleActivationActions.ACTIVATE_ACTION); request.setParam("profile_key", subProfile.getKey()); request.setParam("rule_key", rule.getKey().toString()); request.setParam("reset", "true"); diff --git a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/RestoreActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/RestoreActionTest.java index 7ad552f84b3..d8bddee3710 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/RestoreActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/RestoreActionTest.java @@ -19,7 +19,6 @@ */ package org.sonar.server.qualityprofile.ws; -import java.io.Reader; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -36,6 +35,8 @@ import org.sonar.server.qualityprofile.QProfileName; import org.sonar.server.tester.UserSessionRule; import org.sonar.server.ws.WsTester; +import java.io.Reader; + import static org.mockito.Matchers.any; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.mock; @@ -80,7 +81,7 @@ public class RestoreActionTest { public void fail_on_missing_backup() throws Exception { userSessionRule.login("obiwan").setGlobalPermissions(GlobalPermissions.QUALITY_PROFILE_ADMIN); - tester.newGetRequest("api/qualityprofiles", "restore").execute(); + tester.newPostRequest("api/qualityprofiles", "restore").execute(); } @Test(expected = ForbiddenException.class) diff --git a/server/sonar-server/src/test/java/org/sonar/server/rule/ws/CreateActionMediumTest.java b/server/sonar-server/src/test/java/org/sonar/server/rule/ws/CreateActionMediumTest.java index 3180807140b..9b2f70bf3fd 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/rule/ws/CreateActionMediumTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/rule/ws/CreateActionMediumTest.java @@ -79,7 +79,7 @@ public class CreateActionMediumTest { ruleDao.addRuleParam(session, templateRule, param); session.commit(); - WsTester.TestRequest request = wsTester.newGetRequest("api/rules", "create") + WsTester.TestRequest request = wsTester.newPostRequest("api/rules", "create") .setParam("custom_key", "MY_CUSTOM") .setParam("template_key", templateRule.getKey().toString()) .setParam("name", "My custom rule") @@ -92,7 +92,7 @@ public class CreateActionMediumTest { @Test public void create_manual_rule() throws Exception { - WsTester.TestRequest request = wsTester.newGetRequest("api/rules", "create") + WsTester.TestRequest request = wsTester.newPostRequest("api/rules", "create") .setParam("manual_key", "MY_MANUAL") .setParam("name", "My manual rule") .setParam("markdown_description", "Description") @@ -102,7 +102,7 @@ public class CreateActionMediumTest { @Test public void create_manual_rule_without_severity() throws Exception { - WsTester.TestRequest request = wsTester.newGetRequest("api/rules", "create") + WsTester.TestRequest request = wsTester.newPostRequest("api/rules", "create") .setParam("manual_key", "MY_MANUAL") .setParam("name", "My manual rule") .setParam("markdown_description", "Description"); @@ -111,7 +111,7 @@ public class CreateActionMediumTest { @Test public void fail_if_custom_key_and_manual_key_parameters_are_not_set() { - WsTester.TestRequest request = wsTester.newGetRequest("api/rules", "create") + WsTester.TestRequest request = wsTester.newPostRequest("api/rules", "create") .setParam("key", "MY_MANUAL") .setParam("name", "My manual rule") .setParam("markdown_description", "Description") @@ -138,7 +138,7 @@ public class CreateActionMediumTest { session.commit(); session.clearCache(); - WsTester.TestRequest request = wsTester.newGetRequest("api/rules", "create") + WsTester.TestRequest request = wsTester.newPostRequest("api/rules", "create") .setParam("manual_key", key) .setParam("name", "My manual rule") .setParam("markdown_description", "Description") diff --git a/server/sonar-server/src/test/java/org/sonar/server/rule/ws/DeleteActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/rule/ws/DeleteActionTest.java index 16af4d3620b..67753dbbc90 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/rule/ws/DeleteActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/rule/ws/DeleteActionTest.java @@ -46,7 +46,7 @@ public class DeleteActionTest { @Test public void delete_custom_rule() throws Exception { - WsTester.TestRequest request = tester.newGetRequest("api/rules", "delete").setParam("key", "squid:XPath_1402065390816"); + WsTester.TestRequest request = tester.newPostRequest("api/rules", "delete").setParam("key", "squid:XPath_1402065390816"); request.execute(); verify(ruleService).delete(RuleKey.of("squid", "XPath_1402065390816")); diff --git a/server/sonar-server/src/test/java/org/sonar/server/rule/ws/UpdateActionMediumTest.java b/server/sonar-server/src/test/java/org/sonar/server/rule/ws/UpdateActionMediumTest.java index 0997d956ec4..d8f4b4b0dde 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/rule/ws/UpdateActionMediumTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/rule/ws/UpdateActionMediumTest.java @@ -91,7 +91,7 @@ public class UpdateActionMediumTest { RuleKey customRuleKey = ruleService.create(newRule); session.clearCache(); - WsTester.TestRequest request = wsTester.newGetRequest("api/rules", "update") + WsTester.TestRequest request = wsTester.newPostRequest("api/rules", "update") .setParam("key", customRuleKey.toString()) .setParam("name", "My custom rule") .setParam("markdown_description", "Description") @@ -112,7 +112,7 @@ public class UpdateActionMediumTest { session.commit(); session.clearCache(); - WsTester.TestRequest request = wsTester.newGetRequest("api/rules", "update") + WsTester.TestRequest request = wsTester.newPostRequest("api/rules", "update") .setParam("key", customRule.getKey().toString()) .setParam("name", "My custom rule") .setParam("markdown_description", ""); diff --git a/server/sonar-server/src/test/java/org/sonar/server/ws/WsTester.java b/server/sonar-server/src/test/java/org/sonar/server/ws/WsTester.java index 6608f18be0f..eb30c9d303d 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/ws/WsTester.java +++ b/server/sonar-server/src/test/java/org/sonar/server/ws/WsTester.java @@ -42,6 +42,7 @@ import java.nio.charset.StandardCharsets; import java.util.Map; import static org.assertj.core.api.Assertions.assertThat; +import static org.sonar.server.ws.RequestVerifier.verifyRequest; /** * @since 4.2 @@ -93,6 +94,7 @@ public class WsTester { public Result execute() throws Exception { TestResponse response = new TestResponse(); + verifyRequest(action(), this); action().handler().handle(this, response); return new Result(response); }