From a40e40fb0155e402fe19bef1c50519c6a6f2bc60 Mon Sep 17 00:00:00 2001 From: Guillaume Jambet Date: Tue, 7 Nov 2017 17:31:56 +0100 Subject: [PATCH] SONAR-10046 adding minimum length validation to api/measures/component_tree --- .../server/measure/ws/ComponentTreeAction.java | 13 ++++++------- .../server/measure/ws/ComponentTreeActionTest.java | 4 ++-- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/measure/ws/ComponentTreeAction.java b/server/sonar-server/src/main/java/org/sonar/server/measure/ws/ComponentTreeAction.java index 892d64fc303..10b5f566fd8 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/measure/ws/ComponentTreeAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/measure/ws/ComponentTreeAction.java @@ -155,8 +155,8 @@ public class ComponentTreeAction implements MeasuresWsAction { .setDescription(format("Limit search to: " + - "Must have at least %d characters.", QUERY_MINIMUM_LENGTH)) + "")) + .setMinimumLength(QUERY_MINIMUM_LENGTH) .setExampleValue("FILE_NAM"); action.createParam(DEPRECATED_PARAM_BASE_COMPONENT_ID) @@ -270,11 +270,13 @@ public class ComponentTreeAction implements MeasuresWsAction { } private static boolean areMetricsInResponse(ComponentTreeWsRequest request) { - return request.getAdditionalFields() != null && request.getAdditionalFields().contains(ADDITIONAL_METRICS); + List additionalFields = request.getAdditionalFields(); + return additionalFields != null && additionalFields.contains(ADDITIONAL_METRICS); } private static boolean arePeriodsInResponse(ComponentTreeWsRequest request) { - return request.getAdditionalFields() != null && request.getAdditionalFields().contains(ADDITIONAL_PERIODS); + List additionalFields = request.getAdditionalFields(); + return additionalFields != null && additionalFields.contains(ADDITIONAL_PERIODS); } private static ComponentTreeWsResponse emptyResponse(ComponentDto baseComponent, ComponentTreeWsRequest request) { @@ -308,9 +310,6 @@ public class ComponentTreeAction implements MeasuresWsAction { .setPage(request.mandatoryParamAsInt(Param.PAGE)) .setPageSize(request.mandatoryParamAsInt(Param.PAGE_SIZE)) .setQuery(request.param(Param.TEXT_QUERY)); - String searchQuery = componentTreeWsRequest.getQuery(); - checkRequest(searchQuery == null || searchQuery.length() >= QUERY_MINIMUM_LENGTH, - "The '%s' parameter must have at least %d characters", Param.TEXT_QUERY, QUERY_MINIMUM_LENGTH); String metricSortValue = componentTreeWsRequest.getMetricSort(); checkRequest(!componentTreeWsRequest.getMetricKeys().isEmpty(), "The '%s' parameter must contain at least one metric key", PARAM_METRIC_KEYS); List sorts = Optional.ofNullable(componentTreeWsRequest.getSort()).orElse(emptyList()); diff --git a/server/sonar-server/src/test/java/org/sonar/server/measure/ws/ComponentTreeActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/measure/ws/ComponentTreeActionTest.java index 0b9e192bea0..692a818e36a 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/measure/ws/ComponentTreeActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/measure/ws/ComponentTreeActionTest.java @@ -685,8 +685,8 @@ public class ComponentTreeActionTest { db.components().insertSnapshot(project); insertNclocMetric(); insertNewViolationsMetric(); - expectedException.expect(BadRequestException.class); - expectedException.expectMessage("The 'q' parameter must have at least 3 characters"); + expectedException.expect(IllegalArgumentException.class); + expectedException.expectMessage("'q' length (2) is shorter than the minimum authorized (3)"); ws.newRequest() .setParam(PARAM_COMPONENT, project.getKey()) -- 2.39.5