From: Baptiste Daroussin Date: Tue, 7 Jan 2025 17:37:58 +0000 (+0100) Subject: unistr: add tests for unistr_header_to_utf8 X-Git-Tag: RELEASE_1_5_0~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bd0c9b2b816360e2d11d728f78c77ec8e71533b9;p=thirdparty%2Fmlmmj.git unistr: add tests for unistr_header_to_utf8 --- diff --git a/tests/mlmmj.c b/tests/mlmmj.c index 704c4563..670b0df6 100644 --- a/tests/mlmmj.c +++ b/tests/mlmmj.c @@ -72,6 +72,7 @@ #include "mlmmj_tests.h" #include "send_help.h" #include "gethdrline.h" +#include "unistr.h" ATF_TC_WITHOUT_HEAD(random_int); ATF_TC_WITHOUT_HEAD(chomp); @@ -161,6 +162,7 @@ ATF_TC_WITHOUT_HEAD(send_probe); ATF_TC_WITHOUT_HEAD(parse_content_type); ATF_TC_WITHOUT_HEAD(find_in_list); ATF_TC_WITHOUT_HEAD(do_access); +ATF_TC_WITHOUT_HEAD(unistr_header_to_utf8); ATF_TC_BODY(random_int, tc) { @@ -2969,6 +2971,36 @@ ATF_TC_BODY(do_access, tc) ATF_REQUIRE_STREQ(msg, "access - A mail from \"test@plop\" with header \"from: toto@bla\" was moderated by rule #0 \"moderate-meh ^from: toto@\""); } +ATF_TC_BODY(unistr_header_to_utf8, tc) +{ + const char *input = "=?UTF-8?B?SGVsbG8gd29ybGQ=?="; + + char *out = unistr_header_to_utf8(input); + + ATF_REQUIRE(out != NULL); + ATF_REQUIRE_STREQ(out, "Hello world"); + + out = unistr_header_to_utf8("=?UTF-8?B?Sm9obiBEb2U=?= "); + + ATF_REQUIRE(out != NULL); + ATF_REQUIRE_STREQ(out, "John Doe "); + + out = unistr_header_to_utf8("=?utf-8?b?5aSq6YOO?= "); + + ATF_REQUIRE(out != NULL); + ATF_REQUIRE_STREQ(out, "太郎 "); + + out = unistr_header_to_utf8("=?ISO-8859-1?Q?Jean-Pierre_Dupont?= "); + + ATF_REQUIRE(out != NULL); + ATF_REQUIRE_STREQ(out, "Jean-Pierre Dupont "); + + out = unistr_header_to_utf8("=?koi8-r?b?8NLJ18XUIM3J0g==?="); + ATF_REQUIRE(out != NULL); + ATF_REQUIRE_STREQ(out, "Привет мир"); + +} + ATF_TP_ADD_TCS(tp) { ATF_TP_ADD_TC(tp, random_int); @@ -3059,6 +3091,7 @@ ATF_TP_ADD_TCS(tp) ATF_TP_ADD_TC(tp, parse_content_type); ATF_TP_ADD_TC(tp, find_in_list); ATF_TP_ADD_TC(tp, do_access); + ATF_TP_ADD_TC(tp, unistr_header_to_utf8); return (atf_no_error()); }