diff --git a/gateleen-hook/src/main/java/org/swisspush/gateleen/hook/HookHandler.java b/gateleen-hook/src/main/java/org/swisspush/gateleen/hook/HookHandler.java index 22ed90a90..9770251f5 100755 --- a/gateleen-hook/src/main/java/org/swisspush/gateleen/hook/HookHandler.java +++ b/gateleen-hook/src/main/java/org/swisspush/gateleen/hook/HookHandler.java @@ -587,7 +587,7 @@ public boolean handle(final RoutingContext ctx) { } } - if (requestMethod == GET && !request.params().isEmpty()) { + if (requestMethod == GET && null != request.getParam("q")) { if (requestUri.contains(normalizedListenerBase) ) { handleListenerSearch(request); return true; diff --git a/gateleen-hook/src/test/java/org/swisspush/gateleen/hook/HookHandlerTest.java b/gateleen-hook/src/test/java/org/swisspush/gateleen/hook/HookHandlerTest.java index 2d148c3f0..60b0341a9 100644 --- a/gateleen-hook/src/test/java/org/swisspush/gateleen/hook/HookHandlerTest.java +++ b/gateleen-hook/src/test/java/org/swisspush/gateleen/hook/HookHandlerTest.java @@ -912,35 +912,6 @@ public void testHandleGETRequestWithTrailingSlash(TestContext testContext) { assertEmptyResult(jsonResponse); } - @Test - public void testHandleGETRequestWithInvalidParam(TestContext testContext) { - // Define URI with an invalid parameter different from 'q' - GETRequest request = new GETRequest(HOOK_LISTENER_URI, mockResponse); - request.addParameter("invalidParam", "someValue"); // Invalid parameter, not 'q' - - // Mock the RoutingContext - when(routingContext.request()).thenReturn(request); - - // Capture the response content - ArgumentCaptor responseCaptor = ArgumentCaptor.forClass(String.class); - when(mockResponse.setStatusCode(anyInt())).thenReturn(mockResponse); - when(mockResponse.end(responseCaptor.capture())).thenReturn(Future.succeededFuture()); - - // Execute the Handler - boolean result = hookHandler.handle(routingContext); - - // Verify status 400 due to invalid parameter - verify(mockResponse).setStatusCode(StatusCode.BAD_REQUEST.getStatusCode()); - testContext.assertTrue(result); - - // Verify captured response content - String jsonResponse = responseCaptor.getValue(); - testContext.assertNotNull(jsonResponse); - // Confirm that the response contains "Bad Request" - testContext.assertTrue(jsonResponse.contains("Only the 'q' parameter is allowed and can't be empty or null")); - } - - /////////////////////////////////////////////////////////////////////////////// // Helpers /////////////////////////////////////////////////////////////////////////////// diff --git a/gateleen-test/src/test/java/org/swisspush/gateleen/hook/ListenerTest.java b/gateleen-test/src/test/java/org/swisspush/gateleen/hook/ListenerTest.java index 081483a25..ef273e626 100755 --- a/gateleen-test/src/test/java/org/swisspush/gateleen/hook/ListenerTest.java +++ b/gateleen-test/src/test/java/org/swisspush/gateleen/hook/ListenerTest.java @@ -887,11 +887,11 @@ public void testRequestForwardingForTwoListenerAtSameResourceButDifferentHeaders } @Test - public void testSearchListenerWithValidAndInvalidSearchParam(TestContext context) { + public void testSearchListenerWithDifferentParams(TestContext context) { Async async = context.async(); registerDefaultListener(); - - searchWithQueryParam("wq", defaultListenerName, 400); + searchWithQueryParam("storageExpand", "true", 200); + searchWithQueryParam("expand", "1", 200); searchWithQueryParam("q", "", 400); Response response = searchWithQueryParam("q",defaultListenerName,200); @@ -940,20 +940,6 @@ public void testHookHandleSearch_NoListenersRegistered(TestContext context) { async.complete(); } - @Test - public void testHookHandleSearch_ListenerPathInvalidParam(TestContext context) { - Async async = context.async(); - delete(); - initRoutingRules(); - - String queryParam = "testQuery"; - String requestUrl = searchUrlBase+ "?www=" + queryParam; - - // Validate the response - checkGETStatusCodeWithAwait(requestUrl, 400); - async.complete(); - } - @Test public void testHookHandleSearch_ListenerTwoParam(TestContext context) { Async async = context.async(); @@ -1042,7 +1028,7 @@ public void testHookHandleSearch_ReturnsTwoOutOfThreeListeners(TestContext conte // added in searchUrlBase a '/' to validate if also works Response response = given() .queryParam("q", "listener") - .when().get(searchUrlBase+"/") + .when().get(searchUrlBase + "/") .then().assertThat().statusCode(200) .extract().response(); @@ -1170,7 +1156,7 @@ private void checkGETBodyWithAwait(final String requestUrl, final String body) { private Response searchWithQueryParam(String searchParam, String queryParam, int expectedStatusCode ) { return given() .queryParam(searchParam, queryParam) - .when().get(searchUrlBase) + .when().get(searchUrlBase + "/") .then().assertThat().statusCode(expectedStatusCode) .extract().response(); } diff --git a/gateleen-test/src/test/java/org/swisspush/gateleen/hook/RouteListingTest.java b/gateleen-test/src/test/java/org/swisspush/gateleen/hook/RouteListingTest.java index 48256f05c..3edda60b0 100644 --- a/gateleen-test/src/test/java/org/swisspush/gateleen/hook/RouteListingTest.java +++ b/gateleen-test/src/test/java/org/swisspush/gateleen/hook/RouteListingTest.java @@ -206,7 +206,6 @@ public void testHookHandleSearch_WithValidAndInvalidSearchParam(TestContext cont addRoute(queryParam, true, true); // Verify that the route was correctly registered - searchWithQueryParam("w", queryParam, 400); searchWithQueryParam("q", "", 400); // Verify that the route was correctly registered @@ -232,7 +231,7 @@ public void testHookHandleSearch_RouteNonMatchingQueryParam(TestContext context) // Register a route using the addRoute method addRoute(queryParam, true, true); - assertResponse(get(requestUrlBase), new String[]{queryParam+"/"}); + assertResponse(get(requestUrlBase), new String[]{queryParam + "/"}); Response response = searchWithQueryParam("q", queryParam, 200); Assert.assertTrue("Query param should be found in response",