1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-07 10:13:12 +02:00

relay: move functions to get URL parameters from api to relay-http.c, add tests

This commit is contained in:
Sébastien Helleu
2024-02-18 23:13:20 +01:00
parent 9b9b36bb02
commit 0f30a4e020
4 changed files with 91 additions and 47 deletions
@@ -178,6 +178,48 @@ TEST(RelayHttp, UrlDecode)
WEE_TEST_STR("test*", relay_http_url_decode ("test%2a"));
}
/*
* Tests functions:
* relay_http_get_param_boolean
*/
TEST(RelayHttp, GetParamBoolean)
{
struct t_relay_http_request *request;
request = relay_http_request_alloc ();
CHECK(request);
relay_http_parse_method_path (request, "GET /api/test?key1=true&key2=1&key3=off");
LONGS_EQUAL(1, relay_http_get_param_boolean (request, "key1", 0));
LONGS_EQUAL(1, relay_http_get_param_boolean (request, "key1", 1));
LONGS_EQUAL(1, relay_http_get_param_boolean (request, "key2", 0));
LONGS_EQUAL(1, relay_http_get_param_boolean (request, "key2", 1));
LONGS_EQUAL(0, relay_http_get_param_boolean (request, "key3", 0));
LONGS_EQUAL(0, relay_http_get_param_boolean (request, "key3", 1));
LONGS_EQUAL(0, relay_http_get_param_boolean (request, "xxx", 0));
LONGS_EQUAL(1, relay_http_get_param_boolean (request, "xxx", 1));
relay_http_request_free (request);
}
/*
* Tests functions:
* relay_http_get_param_long
*/
TEST(RelayHttp, GetParamLong)
{
struct t_relay_http_request *request;
request = relay_http_request_alloc ();
CHECK(request);
relay_http_parse_method_path (request, "GET /api/test?key1=123&key2=-4&key3=abc");
LONGS_EQUAL(123, relay_http_get_param_long (request, "key1", 8));
LONGS_EQUAL(-4, relay_http_get_param_long (request, "key2", 8));
LONGS_EQUAL(8, relay_http_get_param_long (request, "key3", 8));
LONGS_EQUAL(99, relay_http_get_param_long (request, "xxx", 99));
relay_http_request_free (request);
}
/*
* Tests functions:
* relay_http_parse_path