Mercurial > dovecot > core-2.2
changeset 22169:1c7f10f84fa2
lib-mail: test-message-address - add more and better organized tests
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Wed, 07 Jun 2017 13:19:40 +0300 |
parents | fb24444dd968 |
children | 293249bf0b5a |
files | src/lib-mail/test-message-address.c |
diffstat | 1 files changed, 76 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-mail/test-message-address.c Wed Jun 07 12:58:21 2017 +0300 +++ b/src/lib-mail/test-message-address.c Wed Jun 07 13:19:40 2017 +0300 @@ -22,34 +22,90 @@ const char *wanted_output; struct message_address addr; } tests[] = { + /* user@domain -> <user@domain> */ { "user@domain", "<user@domain>", { NULL, NULL, NULL, "user", "domain", FALSE } }, + { "\"user\"@domain", "<user@domain>", + { NULL, NULL, NULL, "user", "domain", FALSE } }, + { "\"user name\"@domain", "<\"user name\"@domain>", + { NULL, NULL, NULL, "user name", "domain", FALSE } }, + { "\"user@na\\\\me\"@domain", "<\"user@na\\\\me\"@domain>", + { NULL, NULL, NULL, "user@na\\me", "domain", FALSE } }, + { "\"user\\\"name\"@domain", "<\"user\\\"name\"@domain>", + { NULL, NULL, NULL, "user\"name", "domain", FALSE } }, + { "\"\"@domain", "<\"\"@domain>", + { NULL, NULL, NULL, "", "domain", FALSE } }, + { "@domain", "<\"\"@domain>", + { NULL, NULL, NULL, "", "domain", TRUE } }, + + /* <user@domain> -> <user@domain> */ { "<user@domain>", NULL, { NULL, NULL, NULL, "user", "domain", FALSE } }, + { "<\"user\"@domain>", "<user@domain>", + { NULL, NULL, NULL, "user", "domain", FALSE } }, + { "<\"user name\"@domain>", NULL, + { NULL, NULL, NULL, "user name", "domain", FALSE } }, + { "<\"user@na\\\\me\"@domain>", NULL, + { NULL, NULL, NULL, "user@na\\me", "domain", FALSE } }, + { "<\"user\\\"name\"@domain>", NULL, + { NULL, NULL, NULL, "user\"name", "domain", FALSE } }, + { "<\"\"@domain>", NULL, + { NULL, NULL, NULL, "", "domain", FALSE } }, { "<@route>", "<@route:\"\">", { NULL, NULL, "@route", "", "", TRUE } }, - { "<\"\"@domain>", "<\"\"@domain>", - { NULL, NULL, NULL, "", "domain", FALSE } }, - { "foo bar <user@domain>", "\"foo bar\" <user@domain>", - { NULL, "foo bar", NULL, "user", "domain", FALSE } }, - { "\"foo bar\" <user@domain>", NULL, - { NULL, "foo bar", NULL, "user", "domain", FALSE } }, + + /* user@domain (Display Name) -> "Display Name" <user@domain> */ + { "user@domain (DisplayName)", "DisplayName <user@domain>", + { NULL, "DisplayName", NULL, "user", "domain", FALSE } }, + { "user@domain (Display Name)", "\"Display Name\" <user@domain>", + { NULL, "Display Name", NULL, "user", "domain", FALSE } }, + { "user@domain (Display\"Name)", "\"Display\\\"Name\" <user@domain>", + { NULL, "Display\"Name", NULL, "user", "domain", FALSE } }, + { "user (Display Name)", "\"Display Name\" <user>", + { NULL, "Display Name", NULL, "user", "", TRUE } }, + { "@domain (Display Name)", "\"Display Name\" <\"\"@domain>", + { NULL, "Display Name", NULL, "", "domain", TRUE } }, + + /* Display Name <user@domain> -> "Display Name" <user@domain> */ + { "DisplayName <user@domain>", NULL, + { NULL, "DisplayName", NULL, "user", "domain", FALSE } }, + { "Display Name <user@domain>", "\"Display Name\" <user@domain>", + { NULL, "Display Name", NULL, "user", "domain", FALSE } }, + { "\"Display Name\" <user@domain>", NULL, + { NULL, "Display Name", NULL, "user", "domain", FALSE } }, + { "\"Display\\\"Name\" <user@domain>", NULL, + { NULL, "Display\"Name", NULL, "user", "domain", FALSE } }, + { "Display Name <user>", "\"Display Name\" <user>", + { NULL, "Display Name", NULL, "user", "", TRUE } }, + + /* <@route:user@domain> -> <@route:user@domain> */ + { "<@route:user@domain>", NULL, + { NULL, NULL, "@route", "user", "domain", FALSE } }, + { "<@route,@route2:user@domain>", NULL, + { NULL, NULL, "@route,@route2", "user", "domain", FALSE } }, + { "<@route@route2:user@domain>", "<@route,@route2:user@domain>", + { NULL, NULL, "@route,@route2", "user", "domain", FALSE } }, + { "<@route@route2:user>", "<@route,@route2:user>", + { NULL, NULL, "@route,@route2", "user", "", TRUE } }, + { "<@route@route2:\"\"@domain>", "<@route,@route2:\"\"@domain>", + { NULL, NULL, "@route,@route2", "", "domain", FALSE } }, + + /* Display Name <@route:user@domain> -> + "Display Name" <@route:user@domain> */ + { "Display Name <@route:user@domain>", "\"Display Name\" <@route:user@domain>", + { NULL, "Display Name", "@route", "user", "domain", FALSE } }, + { "Display Name <@route,@route2:user@domain>", "\"Display Name\" <@route,@route2:user@domain>", + { NULL, "Display Name", "@route,@route2", "user", "domain", FALSE } }, + { "Display Name <@route@route2:user@domain>", "\"Display Name\" <@route,@route2:user@domain>", + { NULL, "Display Name", "@route,@route2", "user", "domain", FALSE } }, + { "Display Name <@route@route2:user>", "\"Display Name\" <@route,@route2:user>", + { NULL, "Display Name", "@route,@route2", "user", "", TRUE } }, + { "Display Name <@route@route2:\"\"@domain>", "\"Display Name\" <@route,@route2:\"\"@domain>", + { NULL, "Display Name", "@route,@route2", "", "domain", FALSE } }, + + /* other tests: */ { "\"foo: <a@b>;,\" <user@domain>", NULL, { NULL, "foo: <a@b>;,", NULL, "user", "domain", FALSE } }, - { "<@route:user@domain>", NULL, - { NULL, NULL, "@route", "user", "domain", FALSE } }, - { "<@route@route2:user@domain>", "<@route,@route2:user@domain>", - { NULL, NULL, "@route,@route2", "user", "domain", FALSE } }, - { "hello <@route ,@route2:user@domain>", "hello <@route,@route2:user@domain>", - { NULL, "hello", "@route,@route2", "user", "domain", FALSE } }, - { "hello", "hello", - { NULL, "hello", NULL, "", "", TRUE } }, - { "user (hello)", "hello <user>", - { NULL, "hello", NULL, "user", "", TRUE } }, - { "hello <user>", "hello <user>", - { NULL, "hello", NULL, "user", "", TRUE } }, - { "@domain", "<\"\"@domain>", - { NULL, NULL, NULL, "", "domain", TRUE } }, }; static struct message_address group_prefix = { NULL, NULL, NULL, "group", NULL, FALSE