diff --git a/test/unit_test.c b/test/unit_test.c index 4d7672094c2ac7931f58ce8003e2ff7849f35814..ca630b02e0bf805b3226e051e106c446d0373b97 100644 --- a/test/unit_test.c +++ b/test/unit_test.c @@ -241,7 +241,7 @@ static int log_message_cb(const struct mg_connection *conn, const char *msg) { static const struct mg_callbacks CALLBACKS = { &begin_request_handler_cb, NULL, &log_message_cb, NULL, NULL, NULL, NULL, - &open_file_cb, NULL, &upload_cb + &open_file_cb, NULL, &upload_cb, NULL }; static const char *OPTIONS[] = { @@ -577,6 +577,18 @@ static void test_api_calls(void) { mg_stop(ctx); } +static void test_url_decode(void) { + char buf[100]; + + ASSERT(url_decode("foo", 3, buf, 3, 0) == -1); // No space for terminating \0 + ASSERT(url_decode("foo", 3, buf, 4, 0) == 3); + ASSERT(strcmp(buf, "foo") == 0); + ASSERT(url_decode("a+", 2, buf, sizeof(buf), 0) == 2); + ASSERT(strcmp(buf, "a+") == 0); + ASSERT(url_decode("a+", 2, buf, sizeof(buf), 1) == 2); + ASSERT(strcmp(buf, "a ") == 0); +} + int __cdecl main(void) { test_alloc_vprintf(); test_base64_encode(); @@ -593,6 +605,7 @@ int __cdecl main(void) { test_mg_upload(); test_request_replies(); test_api_calls(); + test_url_decode(); #ifdef USE_LUA test_lua(); #endif