--- /dev/null
+/*
+ * 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");
+ }
+ }
+}
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;
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
*/
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();
package org.sonar.server.computation.ws;
-import java.io.InputStream;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
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;
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();
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();
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\"}");
}
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
@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);
}
@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
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)
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)
@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();
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()
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()
*/
package org.sonar.server.qualityprofile.ws;
-import java.util.List;
import org.junit.After;
import org.junit.Before;
import org.junit.ClassRule;
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 {
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();
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();
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();
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())
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())
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", "")
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();
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")
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")
@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();
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();
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();
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();
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();
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();
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();
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");
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();
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();
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();
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();
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();
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");
*/
package org.sonar.server.qualityprofile.ws;
-import java.io.Reader;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
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;
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)
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")
@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")
@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");
@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")
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")
@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"));
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")
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", "");
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
+import static org.sonar.server.ws.RequestVerifier.verifyRequest;
/**
* @since 4.2
public Result execute() throws Exception {
TestResponse response = new TestResponse();
+ verifyRequest(action(), this);
action().handler().handle(this, response);
return new Result(response);
}