]> source.dussan.org Git - sonarqube.git/commitdiff
WsTester checks POST method
authorTeryk Bellahsene <teryk.bellahsene@sonarsource.com>
Thu, 21 May 2015 10:14:09 +0000 (12:14 +0200)
committerTeryk Bellahsene <teryk.bellahsene@sonarsource.com>
Thu, 21 May 2015 10:14:42 +0000 (12:14 +0200)
server/sonar-server/src/main/java/org/sonar/server/ws/RequestVerifier.java [new file with mode: 0644]
server/sonar-server/src/main/java/org/sonar/server/ws/WebServiceEngine.java
server/sonar-server/src/test/java/org/sonar/server/computation/ws/SubmitReportActionTest.java
server/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/QGatesWsTest.java
server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/ChangeParentActionMediumTest.java
server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsMediumTest.java
server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/RestoreActionTest.java
server/sonar-server/src/test/java/org/sonar/server/rule/ws/CreateActionMediumTest.java
server/sonar-server/src/test/java/org/sonar/server/rule/ws/DeleteActionTest.java
server/sonar-server/src/test/java/org/sonar/server/rule/ws/UpdateActionMediumTest.java
server/sonar-server/src/test/java/org/sonar/server/ws/WsTester.java

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 (file)
index 0000000..e560fe3
--- /dev/null
@@ -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");
+    }
+  }
+}
index 0ef2a0a5ce589104e8bb8f3c5b4664a857c410d6..be69cbb783e3c1a4e998ee614a9b305c9c8078ac 100644 (file)
@@ -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();
index 4998ab619d7af24342c67ca02d486ba5692945fa..72652f59a43818055ce1b50763f0667756c26f56 100644 (file)
@@ -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();
index e912b7816786275d474f5742b4a0e2d33d4c1dc0..58281f8ff407278890866272a3b7b8a233946603 100644 (file)
@@ -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()
index 52ead319c32d6a7d37d5b0e84bac448eef5dc5c1..f660fcce5c2c602c04613477706af32adde8225b 100644 (file)
@@ -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();
index 985b0f521438c7ab628024acbdeee16ad7fcb090..7af3fba73e6d1f57c69529f0fa5009215b54a579 100644 (file)
@@ -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");
index 7ad552f84b36af809d8d56af2b5854514df0f879..d8bddee3710fb747699d8c6b2ec389284bbee3ed 100644 (file)
@@ -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)
index 3180807140b686c9cebd390a76ed66f5880180e0..9b2f70bf3fd39361f39460af10c63e73f74e9757 100644 (file)
@@ -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")
index 16af4d3620b6d13b7d3cf485f043bb83affd06fa..67753dbbc900261a1a38d4cf092c6ee5860b6269 100644 (file)
@@ -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"));
index 0997d956ec42ca92edf2e8bc162281ad3c76fa28..d8f4b4b0ddefa31dc2c18fc734d2b0afc3addc28 100644 (file)
@@ -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", "");
index 6608f18be0f81f0a0dd73ec2e4835ccfeac0606c..eb30c9d303df401cf972c8d436bdd241a53b0e14 100644 (file)
@@ -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);
     }