@@ -316,6 +316,42 @@ validate_ldap_configuration_via_api(Config) ->
316316 'servers' => [" localhost" ],
317317 'port' => LdapPort
318318 }, ? METHOD_NOT_ALLOWED ),
319+ % % Invalid JSON should return 400 Bad Request
320+ rabbit_mgmt_test_util :http_put_raw (Config , " /ldap/validate/simple-bind" ,
321+ " {invalid json" , ? BAD_REQUEST ),
322+
323+ % % HTTP Method coverage tests
324+ % % GET method - should return 405 Method Not Allowed
325+ ? assertMatch ({ok , {{_ , ? METHOD_NOT_ALLOWED , _ }, _Headers , _ResBody }},
326+ rabbit_mgmt_test_util :req (Config , 0 , get , " /ldap/validate/simple-bind" ,
327+ [rabbit_mgmt_test_util :auth_header (" guest" , " guest" )])),
328+
329+ % % HEAD method - should return 405 Method Not Allowed (same as GET)
330+ ? assertMatch ({ok , {{_ , ? METHOD_NOT_ALLOWED , _ }, _Headers , _ResBody }},
331+ rabbit_mgmt_test_util :req (Config , 0 , head , " /ldap/validate/simple-bind" ,
332+ [rabbit_mgmt_test_util :auth_header (" guest" , " guest" )])),
333+
334+ % % POST method - should return 405 Method Not Allowed
335+ ? assertMatch ({ok , {{_ , ? METHOD_NOT_ALLOWED , _ }, _Headers , _ResBody }},
336+ rabbit_mgmt_test_util :req (Config , 0 , post , " /ldap/validate/simple-bind" ,
337+ [rabbit_mgmt_test_util :auth_header (" guest" , " guest" )], " {}" )),
338+
339+ % % DELETE method - should return 405 Method Not Allowed
340+ ? assertMatch ({ok , {{_ , ? METHOD_NOT_ALLOWED , _ }, _Headers , _ResBody }},
341+ rabbit_mgmt_test_util :req (Config , 0 , delete , " /ldap/validate/simple-bind" ,
342+ [rabbit_mgmt_test_util :auth_header (" guest" , " guest" )])),
343+
344+ % % OPTIONS method - should return 200 with Allow header showing only PUT, OPTIONS
345+ {ok , {{_ , OptionsCode , _ }, OptionsHeaders , _OptionsResBody }} =
346+ rabbit_mgmt_test_util :req (Config , 0 , options , " /ldap/validate/simple-bind" ,
347+ [rabbit_mgmt_test_util :auth_header (" guest" , " guest" )]),
348+ ? assertEqual (? OK , OptionsCode ),
349+ AllowHeader = proplists :get_value (" allow" , OptionsHeaders ),
350+ ? assert (string :str (string :to_upper (AllowHeader ), " PUT" ) > 0 ),
351+ ? assert (string :str (string :to_upper (AllowHeader ), " OPTIONS" ) > 0 ),
352+ % % Should NOT contain GET or HEAD
353+ ? assertEqual (0 , string :str (string :to_upper (AllowHeader ), " GET" )),
354+ ? assertEqual (0 , string :str (string :to_upper (AllowHeader ), " HEAD" )),
319355 http_put (Config , " /ldap/validate/simple-bind" ,
320356 #{
321357 'user_dn' => AliceUserDN ,
@@ -329,7 +365,7 @@ validate_ldap_configuration_via_api(Config) ->
329365 'password' => Password ,
330366 'servers' => [" localhost" ],
331367 'port' => LdapPort
332- }, ? NOT_AUTHORISED ),
368+ }, ? UNPROCESSABLE_ENTITY ),
333369 http_put (Config , " /ldap/validate/simple-bind" ,
334370 #{
335371 'user_dn' => AliceUserDN ,
0 commit comments