1
0
mirror of https://github.com/lammertb/libhttp.git synced 2025-08-16 11:21:57 +03:00

Encoding/decoding test should also test url encoding

This commit is contained in:
bel
2015-07-25 13:23:33 +02:00
parent 8a65123257
commit f3d028713e

View File

@@ -308,13 +308,15 @@ START_TEST(test_mg_strcasestr)
END_TEST
START_TEST(test_base64_encode_decode)
START_TEST(test_encode_decode)
{
char buf[64];
const char *alpha = "abcdefghijklmnopqrstuvwxyz";
const char *alpha_enc = "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo=";
const char *nonalpha = " !\"#$%&'()*+,-./0123456789:;<=>?@";
const char *nonalpha_enc = "ICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9A";
const char *nonalpha_url =
"%20!%22%23%24%25%26'()*%2B%2C-.%2F0123456789%3A%3B%3C%3D%3E%3F%40";
int ret;
size_t len;
@@ -371,14 +373,33 @@ START_TEST(test_base64_encode_decode)
ck_assert_int_eq(ret, 3);
#endif
memset(buf, 77, sizeof(buf));
ret = mg_url_encode(alpha, buf, sizeof(buf));
ck_assert_int_eq(ret, strlen(buf));
ck_assert_int_eq(ret, strlen(alpha));
ck_assert_str_eq(buf, alpha);
/* All variables are unused, if USE_LUA and USE_WEBSOCKET is not set */
(void)buf;
(void)alpha;
(void)alpha_enc;
(void)nonalpha;
(void)nonalpha_enc;
(void)ret;
memset(buf, 77, sizeof(buf));
ret = mg_url_encode(alpha, buf, sizeof(buf));
ck_assert_int_eq(ret, strlen(buf));
ck_assert_int_eq(ret, strlen(nonalpha_url));
ck_assert_str_eq(buf, nonalpha_url);
memset(buf, 77, sizeof(buf));
ret = mg_url_decode(alpha, strlen(alpha), buf, sizeof(buf), 0);
ck_assert_int_eq(ret, strlen(buf));
ck_assert_int_eq(ret, strlen(alpha));
ck_assert_str_eq(buf, alpha);
memset(buf, 77, sizeof(buf));
ret =
mg_url_decode(nonalpha_url, strlen(nonalpha_url), buf, sizeof(buf), 0);
ck_assert_int_eq(ret, strlen(buf));
ck_assert_int_eq(ret, strlen(nonalpha));
ck_assert_str_eq(buf, nonalpha);
/* len could be unused, if base64_decode is not tested because USE_LUA is
* not defined */
(void)len;
}
END_TEST
@@ -408,7 +429,7 @@ Suite *make_private_suite(void)
tcase_add_test(internal_parse, test_alloc_vprintf);
suite_add_tcase(suite, internal_parse);
tcase_add_test(encode_decode, test_base64_encode_decode);
tcase_add_test(encode_decode, test_encode_decode);
suite_add_tcase(suite, encode_decode);
return suite;