From: Aki Tuomi Date: Mon, 3 Jul 2017 16:00:14 +0000 (+0300) Subject: lib-mail: Add unit test for message detail address parser X-Git-Tag: 2.2.32.rc1~28 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ff9619cc96d0b97308a80364ab628ed9eb39bc76;p=thirdparty%2Fdovecot%2Fcore.git lib-mail: Add unit test for message detail address parser --- diff --git a/src/lib-mail/test-message-address.c b/src/lib-mail/test-message-address.c index ebc84a0379..ac95510748 100644 --- a/src/lib-mail/test-message-address.c +++ b/src/lib-mail/test-message-address.c @@ -295,10 +295,49 @@ static void test_message_address(void) test_end(); } +static void test_message_delim(void) { + test_begin("message address detail parsing"); + + struct { + const char *delimiters; + const char *address; + const char *username; + const char *detail; + } tests[] = { + { "", "", "", "" }, + { "", "test", "test", "" }, + { "", "test+address", "test+address", "" }, + { "", "test:address", "test:address", "" }, + { "", "test-address:another+delim", "test-address:another+delim", "" }, + { "", "test@domain", "test@domain", "" }, + { "", "test+address@domain", "test+address@domain", "" }, + { "", "test:address@domain", "test:address@domain", "" }, + { "", "test-address:another+delim@domain", "test-address:another+delim@domain", "" }, + + { "+-:", "", "", "" }, + { "+-:", "test", "test", "" }, + { "+-:", "test+address", "test+address", "" }, + { "+-:", "test+-:address", "test", "address" }, + { "+-:", "test+-:address@domain", "test@domain", "address" }, + }; + + for(size_t i = 0; i < N_ELEMENTS(tests); i++) { + const char *username, *detail; + + message_detail_address_parse(tests[i].delimiters, tests[i].address, + &username, &detail); + test_assert_idx(strcmp(username, tests[i].username) == 0, i); + test_assert_idx(strcmp(detail, tests[i].detail) == 0, i); + } + + test_end(); +} + int main(void) { static void (*test_functions[])(void) = { test_message_address, + test_message_delim, NULL }; return test_run(test_functions);