From a0f6a22de3337ba1e1e98def2767402ee41393ae Mon Sep 17 00:00:00 2001 From: Stephan Bosch Date: Sat, 20 Nov 2021 15:11:36 +0100 Subject: [PATCH] lib-imap: Reformat test-imap-url.c. --- src/lib-imap/test-imap-url.c | 996 +++++++++++++++++++++++------------ 1 file changed, 648 insertions(+), 348 deletions(-) diff --git a/src/lib-imap/test-imap-url.c b/src/lib-imap/test-imap-url.c index a63ca33622..208b2d4080 100644 --- a/src/lib-imap/test-imap-url.c +++ b/src/lib-imap/test-imap-url.c @@ -18,361 +18,489 @@ static const struct valid_imap_url_test valid_url_tests[] = { { .url = "imap://localhost", .url_parsed = { - .host = { .name = "localhost" } } - },{ + .host = { .name = "localhost" }, + }, + }, + { .url = "imap://user@localhost", .url_parsed = { .host = { .name = "localhost" }, - .userid = "user" } - },{ + .userid = "user" + }, + }, + { .url = "imap://user;AUTH=PLAIN@localhost", .url_parsed = { .host = { .name = "localhost" }, .userid = "user", - .auth_type = "PLAIN" } - },{ + .auth_type = "PLAIN", + }, + }, + { .url = "imap://;AUTH=PLAIN@localhost", .url_parsed = { .host = { .name = "localhost" }, - .auth_type = "PLAIN" } - },{ - .url = "imap://%68endri%6B;AUTH=GSS%41PI@%65%78%61%6d%70%6c%65.com", + .auth_type = "PLAIN" + }, + }, + { + .url = "imap://%68endri%6B;AUTH=GSS%41PI@" + "%65%78%61%6d%70%6c%65.com", .url_parsed = { .host = { .name = "example.com" }, .userid = "hendrik", - .auth_type = "GSSAPI" } - },{ + .auth_type = "GSSAPI", + }, + }, + { .url = "imap://user@localhost:993", .url_parsed = { .host = { .name = "localhost" }, .userid = "user", - .port = 993 } - },{ + .port = 993, + }, + }, + { .url = "imap://user@127.0.0.1", .url_parsed = { .host = { .name = "127.0.0.1", - .ip = { .family = AF_INET } }, - .userid = "user" } - },{ + .ip = { .family = AF_INET } + }, + .userid = "user", + }, + }, + { .url = "imap://user@[::1]", .url_parsed = { .host = { .name = "[::1]", - .ip = { .family = AF_INET6 } }, - .userid = "user" } - },{ + .ip = { .family = AF_INET6 } + }, + .userid = "user", + }, + }, + { .url = "imap://user@4example.com:423", .url_parsed = { .host = { .name = "4example.com" }, .userid = "user", - .port = 423 } - },{ + .port = 423, + }, + }, + { .url = "imap://beelzebub@666.4example.com:999", .url_parsed = { .host = { .name = "666.4example.com" }, .userid = "beelzebub", - .port = 999 } - },{ + .port = 999, + }, + }, + { .url = "imap://user@example.com/", .url_parsed = { .host = { .name = "example.com" }, .userid = "user", - .mailbox = NULL } - },{ + .mailbox = NULL, + }, + }, + { .url = "imap://user@example.com/./", .url_parsed = { .host = { .name = "example.com" }, .userid = "user", - .mailbox = NULL } - },{ + .mailbox = NULL, + }, + }, + { .url = "imap://user@example.com/INBOX", .url_parsed = { .host = { .name = "example.com" }, .userid = "user", - .mailbox = "INBOX" } - },{ + .mailbox = "INBOX", + }, + }, + { .url = "imap://user@example.com/INBOX/", .url_parsed = { .host = { .name = "example.com" }, .userid = "user", - .mailbox = "INBOX" } - },{ + .mailbox = "INBOX", + }, + }, + { .url = "imap://user@example.com//", .url_parsed = { .host = { .name = "example.com" }, - .userid = "user"} - },{ + .userid = "user", + }, + }, + { .url = "imap://user@example.com/INBOX/Trash", .url_parsed = { .host = { .name = "example.com" }, .userid = "user", - .mailbox = "INBOX/Trash" } - },{ + .mailbox = "INBOX/Trash", + }, + }, + { .url = "imap://user@example.com/INBOX/Trash/..", .url_parsed = { .host = { .name = "example.com" }, .userid = "user", - .mailbox = "INBOX" } - },{ + .mailbox = "INBOX", + }, + }, + { .url = "imap://user@example.com/INBOX/Trash/../", .url_parsed = { .host = { .name = "example.com" }, .userid = "user", - .mailbox = "INBOX" } - },{ + .mailbox = "INBOX", + }, + }, + { .url = "imap://user@example.com/INBOX/Trash/../..", .url_parsed = { .host = { .name = "example.com" }, .userid = "user", - .mailbox = NULL } - },{ + .mailbox = NULL, + }, + }, + { .url = "imap://user@example.com/INBOX.Trash", .url_parsed = { .host = { .name = "example.com" }, .userid = "user", - .mailbox = "INBOX.Trash" } - },{ + .mailbox = "INBOX.Trash", + }, + }, + { .url = "imap://user@example.com/INBOX%3BTrash", .url_parsed = { .host = { .name = "example.com" }, .userid = "user", - .mailbox = "INBOX;Trash" } - },{ + .mailbox = "INBOX;Trash", + }, + }, + { .url = "imap://user@example.com/INBOX;UIDVALIDITY=1341", .url_parsed = { .host = { .name = "example.com" }, .userid = "user", - .mailbox = "INBOX", .uidvalidity = 1341 } - },{ + .mailbox = "INBOX", + .uidvalidity = 1341, + }, + }, + { .url = "imap://user@example.com/INBOX/;UIDVALIDITY=23423", .url_parsed = { .host = { .name = "example.com" }, .userid = "user", - .mailbox = "INBOX", .uidvalidity = 23423 } - },{ + .mailbox = "INBOX", + .uidvalidity = 23423, + }, + }, + { .url = "imap://user@example.com/INBOX/Drafts;UIDVALIDITY=6567", .url_parsed = { .host = { .name = "example.com" }, .userid = "user", - .mailbox = "INBOX/Drafts", .uidvalidity = 6567 } - },{ - .url = "imap://user@example.com/INBOX/Drafts;UIDVALIDITY=788/;UID=16", + .mailbox = "INBOX/Drafts", + .uidvalidity = 6567, + }, + }, + { + .url = "imap://user@example.com" + "/INBOX/Drafts;UIDVALIDITY=788/;UID=16", .url_parsed = { .host = { .name = "example.com" }, .userid = "user", - .mailbox = "INBOX/Drafts", .uidvalidity = 788, - .uid = 16 } - },{ - .url = "imap://user@example.com/INBOX/Drafts;UIDVALIDITY=788/;UID=16/..", + .mailbox = "INBOX/Drafts", + .uidvalidity = 788, + .uid = 16, + }, + }, + { + .url = "imap://user@example.com" + "/INBOX/Drafts;UIDVALIDITY=788/;UID=16/..", .url_parsed = { .host = { .name = "example.com" }, .userid = "user", - .mailbox = "INBOX/Drafts", .uidvalidity = 788, - .uid = 0 } - },{ - .url = "imap://user@example.com/INBOX/Drafts;UIDVALIDITY=788/;UID=16/../..", + .mailbox = "INBOX/Drafts", + .uidvalidity = 788, + .uid = 0, + }, + }, + { + .url = "imap://user@example.com" + "/INBOX/Drafts;UIDVALIDITY=788/;UID=16/../..", .url_parsed = { .host = { .name = "example.com" }, .userid = "user", - .mailbox = "INBOX", .uidvalidity = 0, - .uid = 0 } - },{ + .mailbox = "INBOX", + .uidvalidity = 0, + .uid = 0, + }, + }, + { .url = "imap://user@example.com/INBOX/Junk;UIDVALIDITY=27667/" ";UID=434/;SECTION=HEADER", .url_parsed = { .host = { .name = "example.com" }, .userid = "user", - .mailbox = "INBOX/Junk", .uidvalidity = 27667, - .uid = 434, .section = "HEADER" } - },{ + .mailbox = "INBOX/Junk", + .uidvalidity = 27667, + .uid = 434, + .section = "HEADER", + }, + }, + { .url = "imap://user@example.com/INBOX/Important/" ";UID=437/;SECTION=1.2.MIME", .url_parsed = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX/Important", - .uid = 437, .section = "1.2.MIME" } - },{ - .url = "imap://user@example.com/INBOX/Important/;UID=56/;SECTION=AA/BB", + .uid = 437, + .section = "1.2.MIME", + }, + }, + { + .url = "imap://user@example.com" + "/INBOX/Important/;UID=56/;SECTION=AA/BB", .url_parsed = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX/Important", - .uid = 56, .section = "AA/BB" } - },{ - .url = "imap://user@example.com/INBOX/Important/;UID=56/;SECTION=AA/BB/..", + .uid = 56, .section = "AA/BB", + }, + }, + { + .url = "imap://user@example.com" + "/INBOX/Important/;UID=56/;SECTION=AA/BB/..", .url_parsed = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX/Important", - .uid = 56, .section = "AA/" } - },{ + .uid = 56, .section = "AA/", + }, + }, + { .url = "imap://user@example.com/INBOX/Important/;UID=56/" ";SECTION=AA/BB/../..", .url_parsed = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX/Important", - .uid = 56, .section = NULL } - },{ + .uid = 56, + .section = NULL, + }, + }, + { .url = "imap://user@example.com/INBOX/Important/;UID=234/" ";SECTION=HEADER.FIELDS%20(%22To%22%20%22From%22)", .url_parsed = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX/Important", - .uid = 234, .section = "HEADER.FIELDS (\"To\" \"From\")" } - },{ + .uid = 234, + .section = "HEADER.FIELDS (\"To\" \"From\")", + }, + }, + { .url = "imap://user@example.com/INBOX/Important/;UID=234/" ";PARTIAL=10.250", .url_parsed = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX/Important", - .uid = 234, .section = NULL, .partial_offset = 10, .partial_size = 250 } - },{ + .uid = 234, + .section = NULL, + .partial_offset = 10, + .partial_size = 250, + }, + }, + { .url = "imap://hendrik@example.com/INBOX/Important/;UID=34534/" ";SECTION=1.3.TEXT/;PARTIAL=0.34254", .url_parsed = { .host = { .name = "example.com" }, .userid = "hendrik", .mailbox = "INBOX/Important", - .uid = 34534, .section = "1.3.TEXT", - .partial_offset = 0, .partial_size = 34254 } - },{ + .uid = 34534, + .section = "1.3.TEXT", + .partial_offset = 0, + .partial_size = 34254, + }, + }, + { .url = "imap://hendrik@example.com/INBOX/Sent" ";UIDVALIDITY=534?SUBJECT%20%22Frop?%22", .url_parsed = { .host = { .name = "example.com" }, .userid = "hendrik", - .mailbox = "INBOX/Sent", .uidvalidity = 534, - .search_program = "SUBJECT \"Frop?\"" } - },{ + .mailbox = "INBOX/Sent", + .uidvalidity = 534, + .search_program = "SUBJECT \"Frop?\"", + }, + }, + { .url = "//hendrik@example.org/INBOX/Trash", .url_base = { .host = { .name = "example.com" }, - .userid = "user" }, + .userid = "user", + }, .url_parsed = { .host = { .name = "example.org" }, .userid = "hendrik", - .mailbox = "INBOX/Trash" } - },{ + .mailbox = "INBOX/Trash", + }, + }, + { .url = "/INBOX/Trash", .url_base = { .host = { .name = "example.com" }, - .userid = "user" }, + .userid = "user", + }, .url_parsed = { .host = { .name = "example.com" }, .userid = "user", - .mailbox = "INBOX/Trash" } - },{ + .mailbox = "INBOX/Trash", + }, + }, + { .url = "user@example.com", .url_base = { .host = { .name = "example.com" }, .userid = "user", - .mailbox = "INBOX/Accounts" }, + .mailbox = "INBOX/Accounts", + }, .url_parsed = { .host = { .name = "example.com" }, .userid = "user", - .mailbox = "INBOX/Accounts/user@example.com" } - },{ + .mailbox = "INBOX/Accounts/user@example.com", + }, + }, + { .url = "Drafts", .url_base = { .host = { .name = "example.com" }, .userid = "user", - .mailbox = "INBOX/" }, + .mailbox = "INBOX/", + }, .url_parsed = { .host = { .name = "example.com" }, .userid = "user", - .mailbox = "INBOX/Drafts" } - },{ + .mailbox = "INBOX/Drafts", + }, + }, + { .url = "../Drafts", .url_base = { .host = { .name = "example.com" }, .userid = "user", - .mailbox = "INBOX/Trash" }, + .mailbox = "INBOX/Trash", + }, .url_parsed = { .host = { .name = "example.com" }, .userid = "user", - .mailbox = "INBOX/Drafts" } - },{ + .mailbox = "INBOX/Drafts", + }, + }, + { .url = "../Junk", .url_base = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX/Trash", - .uidvalidity = 23452 }, + .uidvalidity = 23452, + }, .url_parsed = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX/Junk", .uidvalidity = 0 } - },{ + }, + { .url = "../Junk;UIDVALIDITY=23", .url_base = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX/Trash", - .uidvalidity = 23452 }, + .uidvalidity = 23452, + }, .url_parsed = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX/Junk", .uidvalidity = 23 } - },{ + }, + { .url = "../../%23shared;UIDVALIDITY=23452", .url_base = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX/Trash", - .uidvalidity = 764 }, + .uidvalidity = 764, + }, .url_parsed = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "#shared", - .uidvalidity = 23452 } - },{ + .uidvalidity = 23452, + }, + }, + { .url = "../../%23news;UIDVALIDITY=546/;UID=456", .url_base = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX/Trash", .uidvalidity = 23452, - .uid = 65 }, + .uid = 65, + }, .url_parsed = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "#news", .uidvalidity = 546, - .uid = 456 } - },{ + .uid = 456, + }, + }, + { .url = "", .url_base = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX/Trash", - .uidvalidity = 23452 }, + .uidvalidity = 23452, + }, .url_parsed = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX/Trash", - .uidvalidity = 23452 } - },{ + .uidvalidity = 23452, + }, + }, + { .url = "", .url_base = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX/Trash", .uidvalidity = 23452, - .uid = 65 }, + .uid = 65, + }, .url_parsed = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX/Trash", .uidvalidity = 23452, - .uid = 65 } - },{ + .uid = 65, + }, + }, + { .url = "", .url_base = { .host = { .name = "example.com" }, @@ -381,7 +509,10 @@ static const struct valid_imap_url_test valid_url_tests[] = { .uidvalidity = 23452, .uid = 65, .section = "AA/BB", - .have_partial = TRUE, .partial_offset = 1024, .partial_size = 1024 }, + .have_partial = TRUE, + .partial_offset = 1024, + .partial_size = 1024, + }, .url_parsed = { .host = { .name = "example.com" }, .userid = "user", @@ -389,8 +520,12 @@ static const struct valid_imap_url_test valid_url_tests[] = { .uidvalidity = 23452, .uid = 65, .section = "AA/BB", - .have_partial = TRUE, .partial_offset = 1024, .partial_size = 1024 } - },{ + .have_partial = TRUE, + .partial_offset = 1024, + .partial_size = 1024, + }, + }, + { .url = "", .url_base = { .host = { .name = "example.com" }, @@ -398,56 +533,72 @@ static const struct valid_imap_url_test valid_url_tests[] = { .mailbox = "INBOX/Trash", .uidvalidity = 23452, .uid = 65, - .have_partial = TRUE, .partial_offset = 1024, .partial_size = 1024 }, + .have_partial = TRUE, + .partial_offset = 1024, + .partial_size = 1024, + }, .url_parsed = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX/Trash", .uidvalidity = 23452, .uid = 65, - .have_partial = TRUE, .partial_offset = 1024, .partial_size = 1024 } - },{ + .have_partial = TRUE, + .partial_offset = 1024, + .partial_size = 1024, + }, + }, + { .url = ";UID=4767", .url_base = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX/Trash", .uidvalidity = 23452, - .uid = 65 }, + .uid = 65, + }, .url_parsed = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX/Trash", .uidvalidity = 23452, - .uid = 4767 } - },{ + .uid = 4767, + } + }, + { .url = ";UID=4767", .url_base = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX/Trash", - .uidvalidity = 23452}, + .uidvalidity = 23452, + }, .url_parsed = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX/Trash", .uidvalidity = 23452, - .uid = 4767 } - },{ + .uid = 4767, + }, + }, + { .url = "../;UID=4767", .url_base = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX/Trash", .uidvalidity = 23452, - .uid = 65 }, + .uid = 65, + }, .url_parsed = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX", .uidvalidity = 0, - .uid = 4767 } - },{ + .uid = 4767, + } + }, + { .url = "../;UID=4767/;SECTION=TEXT", .url_base = { .host = { .name = "example.com" }, @@ -455,15 +606,18 @@ static const struct valid_imap_url_test valid_url_tests[] = { .mailbox = "INBOX/Trash", .uidvalidity = 23452, .uid = 65, - .section = "1.2.3.MIME" }, + .section = "1.2.3.MIME", + }, .url_parsed = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX/Trash", .uidvalidity = 23452, .uid = 4767, - .section = "TEXT" } - },{ + .section = "TEXT", + } + }, + { .url = ";SECTION=TEXT", .url_base = { .host = { .name = "example.com" }, @@ -471,15 +625,18 @@ static const struct valid_imap_url_test valid_url_tests[] = { .mailbox = "INBOX/Drafts", .uidvalidity = 769, .uid = 43, - .section = "1.2.3.MIME" }, + .section = "1.2.3.MIME", + }, .url_parsed = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX/Drafts", .uidvalidity = 769, .uid = 43, - .section = "TEXT" } - },{ + .section = "TEXT", + }, + }, + { .url = "..", .url_base = { .host = { .name = "example.com" }, @@ -487,14 +644,17 @@ static const struct valid_imap_url_test valid_url_tests[] = { .mailbox = "INBOX/Drafts", .uidvalidity = 769, .uid = 43, - .section = "AA/BB" }, + .section = "AA/BB", + }, .url_parsed = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX/Drafts", .uidvalidity = 769, - .uid = 43 } - },{ + .uid = 43, + }, + }, + { .url = "../;SECTION=CC", .url_base = { .host = { .name = "example.com" }, @@ -502,15 +662,18 @@ static const struct valid_imap_url_test valid_url_tests[] = { .mailbox = "INBOX/Drafts", .uidvalidity = 769, .uid = 43, - .section = "AA/BB" }, + .section = "AA/BB", + }, .url_parsed = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX/Drafts", .uidvalidity = 769, .uid = 43, - .section = "CC" } - },{ + .section = "CC", + }, + }, + { .url = "CC", .url_base = { .host = { .name = "example.com" }, @@ -518,15 +681,18 @@ static const struct valid_imap_url_test valid_url_tests[] = { .mailbox = "INBOX/Drafts", .uidvalidity = 769, .uid = 43, - .section = "AA/BB" }, + .section = "AA/BB", + }, .url_parsed = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX/Drafts", .uidvalidity = 769, .uid = 43, - .section = "AA/CC" } - },{ + .section = "AA/CC", + }, + }, + { .url = ";PARTIAL=1024.1024", .url_base = { .host = { .name = "example.com" }, @@ -534,15 +700,22 @@ static const struct valid_imap_url_test valid_url_tests[] = { .mailbox = "INBOX/Drafts", .uidvalidity = 769, .uid = 43, - .have_partial = TRUE, .partial_offset = 0, .partial_size = 1024 }, + .have_partial = TRUE, + .partial_offset = 0, + .partial_size = 1024, + }, .url_parsed = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX/Drafts", .uidvalidity = 769, .uid = 43, - .have_partial = TRUE, .partial_offset = 1024, .partial_size = 1024 } - },{ + .have_partial = TRUE, + .partial_offset = 1024, + .partial_size = 1024, + }, + }, + { .url = "../CC/;PARTIAL=0.512", .url_base = { .host = { .name = "example.com" }, @@ -551,7 +724,10 @@ static const struct valid_imap_url_test valid_url_tests[] = { .uidvalidity = 769, .uid = 43, .section = "AA/BB", - .have_partial = TRUE, .partial_offset = 1024, .partial_size = 1024 }, + .have_partial = TRUE, + .partial_offset = 1024, + .partial_size = 1024, + }, .url_parsed = { .host = { .name = "example.com" }, .userid = "user", @@ -559,51 +735,67 @@ static const struct valid_imap_url_test valid_url_tests[] = { .uidvalidity = 769, .uid = 43, .section = "AA/CC", - .have_partial = TRUE, .partial_offset = 0, .partial_size = 512 } - },{ - .url = "imap://user@example.com/INBOX/;UID=377;URLAUTH=anonymous", + .have_partial = TRUE, + .partial_offset = 0, + .partial_size = 512, + }, + }, + { + .url = "imap://user@example.com" + "/INBOX/;UID=377;URLAUTH=anonymous", .flags = IMAP_URL_PARSE_ALLOW_URLAUTH, .url_parsed = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX", .uid = 377, - .uauth_rumpurl = "imap://user@example.com/INBOX/;UID=377" - ";URLAUTH=anonymous", - .uauth_access_application = "anonymous"} - },{ - .url = "imap://user@example.com/INBOX/;UID=377" - ";URLAUTH=anonymous:internal:4142434445464748494A4B4C4D4E4F5051525354", + .uauth_rumpurl = "imap://user@example.com" + "/INBOX/;UID=377;URLAUTH=anonymous", + .uauth_access_application = "anonymous", + } + }, + { + .url = "imap://user@example.com" + "/INBOX/;UID=377;URLAUTH=anonymous:internal:" + "4142434445464748494A4B4C4D4E4F5051525354", .flags = IMAP_URL_PARSE_ALLOW_URLAUTH, .url_parsed = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX", .uid = 377, - .uauth_rumpurl = "imap://user@example.com/INBOX/;UID=377" - ";URLAUTH=anonymous", + .uauth_rumpurl = "imap://user@example.com" + "/INBOX/;UID=377;URLAUTH=anonymous", .uauth_access_application = "anonymous", .uauth_mechanism = "internal", - .uauth_token = (const unsigned char *)"ABCDEFGHIJKLMNOPQRST", - .uauth_token_size = 20} - },{ + .uauth_token = + (const unsigned char *)"ABCDEFGHIJKLMNOPQRST", + .uauth_token_size = 20, + } + }, + { .url = "imap://user@example.com/INBOX/;UID=377" ";EXPIRE=2011-02-12T12:45:14+01:00" - ";URLAUTH=user+frop:internal:4142434445464748494A4B4C4D4E4F5051525354", + ";URLAUTH=user+frop:internal:" + "4142434445464748494A4B4C4D4E4F5051525354", .flags = IMAP_URL_PARSE_ALLOW_URLAUTH, .url_parsed = { .host = { .name = "example.com" }, .userid = "user", .mailbox = "INBOX", .uid = 377, - .uauth_rumpurl = "imap://user@example.com/INBOX/;UID=377" - ";EXPIRE=2011-02-12T12:45:14+01:00;URLAUTH=user+frop", + .uauth_rumpurl = "imap://user@example.com" + "/INBOX/;UID=377" + ";EXPIRE=2011-02-12T12:45:14+01:00" + ";URLAUTH=user+frop", .uauth_access_application = "user", .uauth_access_user = "frop", .uauth_mechanism = "internal", - .uauth_token = (const unsigned char *)"ABCDEFGHIJKLMNOPQRST", - .uauth_token_size = 20} - } + .uauth_token = + (const unsigned char *)"ABCDEFGHIJKLMNOPQRST", + .uauth_token_size = 20, + } + }, }; static const unsigned int valid_url_test_count = N_ELEMENTS(valid_url_tests); @@ -630,31 +822,41 @@ static void test_imap_url_valid(void) valid_url_tests[i].url), urlp != NULL, error); if (urlp != NULL) { if (urlp->host.name == NULL || urlt->host.name == NULL) { - test_out_quiet(t_strdup_printf("url->host.name = %s", urlp->host.name), + test_out_quiet(t_strdup_printf("url->host.name = %s", + urlp->host.name), urlp->host.name == urlt->host.name); } else { - test_out_quiet(t_strdup_printf("url->host.name = %s", urlp->host.name), - strcmp(urlp->host.name, urlt->host.name) == 0); + test_out_quiet(t_strdup_printf("url->host.name = %s", + urlp->host.name), + strcmp(urlp->host.name, + urlt->host.name) == 0); } if (urlp->userid == NULL || urlt->userid == NULL) { - test_out_quiet(t_strdup_printf("url->userid = %s", urlp->userid), + test_out_quiet(t_strdup_printf("url->userid = %s", + urlp->userid), urlp->userid == urlt->userid); } else { - test_out_quiet(t_strdup_printf("url->userid = %s", urlp->userid), - strcmp(urlp->userid, urlt->userid) == 0); + test_out_quiet(t_strdup_printf("url->userid = %s", + urlp->userid), + strcmp(urlp->userid, + urlt->userid) == 0); } if (urlp->auth_type == NULL || urlt->auth_type == NULL) { - test_out_quiet(t_strdup_printf("url->auth_type = %s", urlp->auth_type), + test_out_quiet(t_strdup_printf("url->auth_type = %s", + urlp->auth_type), urlp->auth_type == urlt->auth_type); } else { - test_out_quiet(t_strdup_printf("url->auth_type = %s", urlp->auth_type), - strcmp(urlp->auth_type, urlt->auth_type) == 0); + test_out_quiet(t_strdup_printf("url->auth_type = %s", + urlp->auth_type), + strcmp(urlp->auth_type, + urlt->auth_type) == 0); } if (urlp->port == 0) { test_out_quiet("url->port = (unspecified)", urlp->port == urlt->port); } else { - test_out_quiet(t_strdup_printf("url->port = %u", urlp->port), + test_out_quiet(t_strdup_printf("url->port = %u", + urlp->port), urlp->port == urlt->port); } if (urlp->host.ip.family == 0) { @@ -665,21 +867,26 @@ static void test_imap_url_valid(void) urlp->host.ip.family == urlt->host.ip.family); } if (urlp->mailbox == NULL || urlt->mailbox == NULL) { - test_out_quiet(t_strdup_printf("url->mailbox = %s", urlp->mailbox), + test_out_quiet(t_strdup_printf("url->mailbox = %s", + urlp->mailbox), urlp->mailbox == urlt->mailbox); } else { - test_out_quiet(t_strdup_printf("url->mailbox = %s", urlp->mailbox), + test_out_quiet(t_strdup_printf("url->mailbox = %s", + urlp->mailbox), strcmp(urlp->mailbox, urlt->mailbox) == 0); } - test_out_quiet(t_strdup_printf("url->uidvalidity = %u", urlp->uidvalidity), + test_out_quiet(t_strdup_printf("url->uidvalidity = %u", + urlp->uidvalidity), urlp->uidvalidity == urlt->uidvalidity); test_out_quiet(t_strdup_printf("url->uid = %u", urlp->uid), urlp->uid == urlt->uid); if (urlp->section == NULL || urlt->section == NULL) { - test_out_quiet(t_strdup_printf("url->section = %s", urlp->section), + test_out_quiet(t_strdup_printf("url->section = %s", + urlp->section), urlp->section == urlt->section); } else { - test_out_quiet(t_strdup_printf("url->section = %s", urlp->section), + test_out_quiet(t_strdup_printf("url->section = %s", + urlp->section), strcmp(urlp->section, urlt->section) == 0); } test_out_quiet(t_strdup_printf("url->partial = %"PRIuUOFF_T".%"PRIuUOFF_T, @@ -688,11 +895,13 @@ static void test_imap_url_valid(void) urlp->partial_size == urlt->partial_size); if (urlp->search_program == NULL || urlt->search_program == NULL) { test_out_quiet(t_strdup_printf( - "url->search_program = %s", urlp->search_program), + "url->search_program = %s", + urlp->search_program), urlp->search_program == urlt->search_program); } else { test_out_quiet(t_strdup_printf( - "url->search_program = %s", urlp->search_program), + "url->search_program = %s", + urlp->search_program), strcmp(urlp->search_program, urlt->search_program) == 0); } if (urlt->uauth_rumpurl != NULL) { @@ -700,49 +909,59 @@ static void test_imap_url_valid(void) test_out_quiet("url->uauth_rumpurl = NULL", FALSE); } else { test_out_quiet(t_strdup_printf( - "url->uauth_rumpurl = %s", urlp->uauth_rumpurl), + "url->uauth_rumpurl = %s", + urlp->uauth_rumpurl), strcmp(urlp->uauth_rumpurl, urlt->uauth_rumpurl) == 0); } if (urlp->uauth_access_application == NULL || urlt->uauth_access_application == NULL) { - test_out_quiet(t_strdup_printf("url->uauth_access_application = %s", - urlp->uauth_access_application), + test_out_quiet(t_strdup_printf( + "url->uauth_access_application = %s", + urlp->uauth_access_application), urlp->uauth_access_application == urlt->uauth_access_application); } else { - test_out_quiet(t_strdup_printf("url->uauth_access_application = %s", - urlp->uauth_access_application), + test_out_quiet(t_strdup_printf( + "url->uauth_access_application = %s", + urlp->uauth_access_application), strcmp(urlp->uauth_access_application, urlt->uauth_access_application) == 0); } if (urlp->uauth_access_user == NULL || urlt->uauth_access_user == NULL) { - test_out_quiet(t_strdup_printf("url->uauth_access_user = %s", - urlp->uauth_access_user), + test_out_quiet(t_strdup_printf( + "url->uauth_access_user = %s", + urlp->uauth_access_user), urlp->uauth_access_user == urlt->uauth_access_user); } else { - test_out_quiet(t_strdup_printf("url->uauth_access_user = %s", - urlp->uauth_access_user), + test_out_quiet(t_strdup_printf( + "url->uauth_access_user = %s", + urlp->uauth_access_user), strcmp(urlp->uauth_access_user, urlt->uauth_access_user) == 0); } if (urlp->uauth_mechanism == NULL || urlt->uauth_mechanism == NULL) { test_out_quiet(t_strdup_printf( - "url->uauth_mechanism = %s", urlp->uauth_mechanism), + "url->uauth_mechanism = %s", + urlp->uauth_mechanism), urlp->uauth_mechanism == urlt->uauth_mechanism); } else { test_out_quiet(t_strdup_printf( - "url->uauth_mechanism = %s", urlp->uauth_mechanism), - strcmp(urlp->uauth_mechanism, urlt->uauth_mechanism) == 0); + "url->uauth_mechanism = %s", + urlp->uauth_mechanism), + strcmp(urlp->uauth_mechanism, + urlt->uauth_mechanism) == 0); } if (urlp->uauth_token == NULL || urlt->uauth_token == NULL) { test_out_quiet(t_strdup_printf( - "url->uauth_token = %s", urlp->uauth_token), + "url->uauth_token = %s", + urlp->uauth_token), urlp->uauth_token == urlt->uauth_token); } else { bool equal = urlp->uauth_token_size == urlt->uauth_token_size; size_t i; test_out_quiet(t_strdup_printf( - "url->uauth_token_size = %zu", urlp->uauth_token_size), + "url->uauth_token_size = %zu", + urlp->uauth_token_size), equal); if (equal) { @@ -752,8 +971,9 @@ static void test_imap_url_valid(void) break; } } - test_out_quiet(t_strdup_printf("url->uauth_token [index=%d]", (int)i), - equal); + test_out_quiet(t_strdup_printf( + "url->uauth_token [index=%d]", (int)i), + equal); } } } @@ -771,160 +991,238 @@ struct invalid_imap_url_test { static const struct invalid_imap_url_test invalid_url_tests[] = { { - .url = "http://www.dovecot.org" - },{ - .url = "imap:/INBOX" - },{ + .url = "http://www.dovecot.org", + }, + { + .url = "imap:/INBOX", + }, + { .url = "imap://user@example.com/INBOX", .flags = IMAP_URL_PARSE_REQUIRE_RELATIVE, .url_base = { .host = { .name = "example.com" }, - .userid = "user" } - },{ - .url = "" - },{ - .url = "/INBOX/;UID=377" - },{ - .url = "imap://user@example.com/INBOX/;UID=377/;SECTION=TEXT?ALL" - },{ - .url = "imap://user@example.com/INBOX/?" - },{ - .url = "imap://user@example.com/INBOX/#Fragment" - },{ - .url = "imap://user@example.com/INBOX/\"" - },{ - .url = "imap:///INBOX" - },{ - .url = "imap://[]/INBOX" - },{ - .url = "imap://[v08.234:232:234:234:2221]/INBOX" - },{ - .url = "imap://[1::34a:34:234::6]/INBOX" - },{ - .url = "imap://example%a.com/INBOX" - },{ - .url = "imap://example.com%/INBOX" - },{ - .url = "imap://example%00.com/INBOX" - },{ - .url = "imap://example.com:65539/INBOX" - },{ - .url = "imap://user;ATH=frop@example.com" - },{ - .url = "imap://user;AUTH=frop;friep@example.com" - },{ - .url = "imap://user;AUTH=@example.com" - },{ - .url = "imap://user:password@example.com" - },{ - .url = "imap://user;AUTH=A:B@example.com" - },{ - .url = "imap://user%@example.com" - },{ - .url = "imap://user%00@example.com" - },{ - .url = "imap://user%ar;AUTH=*@example.com" - },{ - .url = "imap://;AUTH=FR%etD@example.com" - },{ - .url = "imap://user;AUTH=%@example.com" - },{ - .url = "imap://user;AUTH=%00@example.com" - },{ - .url = "imap://example.com/INBOX/%00/" - },{ - .url = "imap://example.com/INBOX/%0r/" - },{ - .url = "imap://example.com/INBOX/Trash/%/" - },{ - .url = "imap://example.com/INBOX;UIDVALIDITY=23423;FROP=friep/" - },{ - .url = "imap://example.com/INBOX;UIDVALIDITY=0/;UID=377" - },{ - .url = "imap://example.com/INBOX;UIDVALIDITY=/" - },{ - .url = "imap://example.com/INBOX;UIDVALIDITY=33a/" - },{ - .url = "imap://example.com/INBOX;FROP=friep/" - },{ - .url = "imap://example.com/INBOX/;UID=377;FROP=friep/" - },{ - .url = "imap://example.com/INBOX/;UID=0/" - },{ - .url = "imap://example.com/INBOX/;UID=/" - },{ - .url = "imap://example.com/INBOX/;UID=5e6/" - },{ - .url = "imap://example.com/INBOX/;UID=35/;SECTION=ALL;FROP=43/" - },{ - .url = "imap://example.com/INBOX/;UID=35/;SECTION=/" - },{ - .url = "imap://example.com/INBOX/;UID=34/;PARTIAL=" - },{ - .url = "imap://example.com/INBOX/;UID=34/;PARTIAL=0." - },{ - .url = "imap://example.com/INBOX/;UID=34/;PARTIAL=0.e10" - },{ - .url = "imap://example.com/INBOX/;UID=34/;PARTIAL=.3" - },{ - .url = "imap://example.com/INBOX/;UID=34/;PARTIAL=5t4.3" - },{ - .url = "imap://example.com/INBOX/;UID=34/;PARTIAL=0.0" - },{ - .url = "imap://example.com/INBOX/;UID=34/;PARTIAL=0.23409823409820938409823" - },{ - .url = "imap://example.com/INBOX/;UID=377/;FROP=34" - },{ - .url = "imap://example.com/INBOX/;UID=377;FROP=34" - },{ - .url = "imap://example.com/INBOX/;UID=377;EXPIRE=2010-02-02T12:00:12Z" - },{ + .userid = "user", + }, + }, + { + .url = "", + }, + { + .url = "/INBOX/;UID=377", + }, + { + .url = "imap://user@example.com" + "/INBOX/;UID=377/;SECTION=TEXT?ALL", + }, + { + .url = "imap://user@example.com/INBOX/?", + }, + { + .url = "imap://user@example.com/INBOX/#Fragment", + }, + { + .url = "imap://user@example.com/INBOX/\"", + }, + { + .url = "imap:///INBOX", + }, + { + .url = "imap://[]/INBOX", + }, + { + .url = "imap://[v08.234:232:234:234:2221]/INBOX", + }, + { + .url = "imap://[1::34a:34:234::6]/INBOX", + }, + { + .url = "imap://example%a.com/INBOX", + }, + { + .url = "imap://example.com%/INBOX", + }, + { + .url = "imap://example%00.com/INBOX", + }, + { + .url = "imap://example.com:65539/INBOX", + }, + { + .url = "imap://user;ATH=frop@example.com", + }, + { + .url = "imap://user;AUTH=frop;friep@example.com", + }, + { + .url = "imap://user;AUTH=@example.com", + }, + { + .url = "imap://user:password@example.com", + }, + { + .url = "imap://user;AUTH=A:B@example.com", + }, + { + .url = "imap://user%@example.com", + }, + { + .url = "imap://user%00@example.com", + }, + { + .url = "imap://user%ar;AUTH=*@example.com", + }, + { + .url = "imap://;AUTH=FR%etD@example.com", + }, + { + .url = "imap://user;AUTH=%@example.com", + }, + { + .url = "imap://user;AUTH=%00@example.com", + }, + { + .url = "imap://example.com/INBOX/%00/", + }, + { + .url = "imap://example.com/INBOX/%0r/", + }, + { + .url = "imap://example.com/INBOX/Trash/%/", + }, + { + .url = "imap://example.com/INBOX;UIDVALIDITY=23423;FROP=friep/", + }, + { + .url = "imap://example.com/INBOX;UIDVALIDITY=0/;UID=377", + }, + { + .url = "imap://example.com/INBOX;UIDVALIDITY=/", + }, + { + .url = "imap://example.com/INBOX;UIDVALIDITY=33a/", + }, + { + .url = "imap://example.com/INBOX;FROP=friep/", + }, + { + .url = "imap://example.com/INBOX/;UID=377;FROP=friep/", + }, + { + .url = "imap://example.com/INBOX/;UID=0/", + }, + { + .url = "imap://example.com/INBOX/;UID=/", + }, + { + .url = "imap://example.com/INBOX/;UID=5e6/", + }, + { + .url = "imap://example.com/INBOX/;UID=35/;SECTION=ALL;FROP=43/", + }, + { + .url = "imap://example.com/INBOX/;UID=35/;SECTION=/", + }, + { + .url = "imap://example.com/INBOX/;UID=34/;PARTIAL=", + }, + { + .url = "imap://example.com/INBOX/;UID=34/;PARTIAL=0.", + }, + { + .url = "imap://example.com/INBOX/;UID=34/;PARTIAL=0.e10", + }, + { + .url = "imap://example.com/INBOX/;UID=34/;PARTIAL=.3", + }, + { + .url = "imap://example.com/INBOX/;UID=34/;PARTIAL=5t4.3", + }, + { + .url = "imap://example.com/INBOX/;UID=34/;PARTIAL=0.0", + }, + { + .url = "imap://example.com/INBOX" + "/;UID=34/;PARTIAL=0.23409823409820938409823", + }, + { + .url = "imap://example.com/INBOX/;UID=377/;FROP=34", + }, + { + .url = "imap://example.com/INBOX/;UID=377;FROP=34", + }, + { + .url = "imap://example.com" + "/INBOX/;UID=377;EXPIRE=2010-02-02T12:00:12Z", + }, + { .url = "imap://example.com/INBOX/;UID=377" - ";URLAUTH=anonymous:internal:0ad89fafd79f54afe4523f45aadf2afe" - },{ - .url = "imap://example.com/INBOX/;UID=377;EXPIRE=2011-15-02T00:00:00Z" - ";URLAUTH=anonymous:internal:0ad89fafd79f54afe4523f45aadf2afe", - .flags = IMAP_URL_PARSE_ALLOW_URLAUTH - },{ - .url = "imap://example.com/INBOX/;UID=377;EXPIRE=2011-10-02T00:00:00Z", - .flags = IMAP_URL_PARSE_ALLOW_URLAUTH - },{ + ";URLAUTH=anonymous:internal:" + "0ad89fafd79f54afe4523f45aadf2afe", + }, + { + .url = "imap://example.com/INBOX/" + ";UID=377;EXPIRE=2011-15-02T00:00:00Z" + ";URLAUTH=anonymous:internal:" + "0ad89fafd79f54afe4523f45aadf2afe", + .flags = IMAP_URL_PARSE_ALLOW_URLAUTH, + }, + { + .url = "imap://example.com/INBOX/" + ";UID=377;EXPIRE=2011-10-02T00:00:00Z", + .flags = IMAP_URL_PARSE_ALLOW_URLAUTH, + }, + { .url = "/INBOX/;UID=377;EXPIRE=2011-10-02T00:00:00Z" - ";URLAUTH=anonymous:internal:0ad89fafd79f54afe4523f45aadf2afe", - .flags = IMAP_URL_PARSE_ALLOW_URLAUTH - },{ + ";URLAUTH=anonymous:internal:" + "0ad89fafd79f54afe4523f45aadf2afe", + .flags = IMAP_URL_PARSE_ALLOW_URLAUTH, + }, + { .url = "imap://example.com/INBOX/;UID=377;URLAUTH=", - .flags = IMAP_URL_PARSE_ALLOW_URLAUTH - },{ + .flags = IMAP_URL_PARSE_ALLOW_URLAUTH, + }, + { .url = "imap://example.com/INBOX/;UID=377" ";URLAUTH=:internal:0ad89fafd79f54afe4523f45aadf2afe", - .flags = IMAP_URL_PARSE_ALLOW_URLAUTH - },{ + .flags = IMAP_URL_PARSE_ALLOW_URLAUTH, + }, + { .url = "imap://example.com/INBOX/;UID=377" - ";URLAUTH=user+:internal:0ad89fafd79f54afe4523f45aadf2afe", - .flags = IMAP_URL_PARSE_ALLOW_URLAUTH - },{ + ";URLAUTH=user+:internal:" + "0ad89fafd79f54afe4523f45aadf2afe", + .flags = IMAP_URL_PARSE_ALLOW_URLAUTH, + }, + { .url = "imap://example.com/INBOX/;UID=377" - ";URLAUTH=+frop:internal:0ad89fafd79f54afe4523f45aadf2afe", - .flags = IMAP_URL_PARSE_ALLOW_URLAUTH - },{ + ";URLAUTH=+frop:internal:" + "0ad89fafd79f54afe4523f45aadf2afe", + .flags = IMAP_URL_PARSE_ALLOW_URLAUTH, + }, + { .url = "imap://example.com/INBOX/;UID=377;URLAUTH=anonymous:", - .flags = IMAP_URL_PARSE_ALLOW_URLAUTH - },{ + .flags = IMAP_URL_PARSE_ALLOW_URLAUTH, + }, + { .url = "imap://example.com/INBOX/;UID=377" ";URLAUTH=anonymous::0ad89fafd79f54afe4523f45aadf2afe", - .flags = IMAP_URL_PARSE_ALLOW_URLAUTH - },{ - .url = "imap://example.com/INBOX/;UID=377;URLAUTH=anonymous:internal:", - .flags = IMAP_URL_PARSE_ALLOW_URLAUTH - },{ + .flags = IMAP_URL_PARSE_ALLOW_URLAUTH, + }, + { + .url = "imap://example.com/INBOX/" + ";UID=377;URLAUTH=anonymous:internal:", + .flags = IMAP_URL_PARSE_ALLOW_URLAUTH, + }, + { .url = "imap://example.com/INBOX/;UID=377" ";URLAUTH=anonymous:internal:fd79f54afe4523", - .flags = IMAP_URL_PARSE_ALLOW_URLAUTH - },{ - .url = "imap://example.com/INBOX/;UID=377;EXPIRE=2011-10-02T00:00:00Z" - ";URLAUTH=anonymous:internal:0ad89fafd79f54afe4523q45aadf2afe", - .flags = IMAP_URL_PARSE_ALLOW_URLAUTH + .flags = IMAP_URL_PARSE_ALLOW_URLAUTH, + }, + { + .url = "imap://example.com/INBOX/" + ";UID=377;EXPIRE=2011-10-02T00:00:00Z" + ";URLAUTH=anonymous:internal:" + "0ad89fafd79f54afe4523q45aadf2afe", + .flags = IMAP_URL_PARSE_ALLOW_URLAUTH, }, }; @@ -988,7 +1286,8 @@ static const char *parse_create_url_tests[] = { "/;SECTION=TEXT/;PARTIAL=1.14;URLAUTH=user+user%3bname", }; -static const unsigned int parse_create_url_test_count = N_ELEMENTS(parse_create_url_tests); +static const unsigned int +parse_create_url_test_count = N_ELEMENTS(parse_create_url_tests); static void test_imap_url_parse_create(void) { @@ -1001,14 +1300,15 @@ static void test_imap_url_parse_create(void) test_begin(t_strdup_printf("imap url parse/create [%d]", i)); - if (imap_url_parse - (url, NULL, IMAP_URL_PARSE_ALLOW_URLAUTH, &urlp, &error) < 0) + if (imap_url_parse(url, NULL, IMAP_URL_PARSE_ALLOW_URLAUTH, + &urlp, &error) < 0) urlp = NULL; - test_out_reason(t_strdup_printf("parse %s", url), urlp != NULL, error); + test_out_reason(t_strdup_printf("parse %s", url), + urlp != NULL, error); if (urlp != NULL) { const char *urlnew = imap_url_create(urlp); - test_out(t_strdup_printf - ("create %s", urlnew), strcmp(url, urlnew) == 0); + test_out(t_strdup_printf("create %s", urlnew), + strcmp(url, urlnew) == 0); } test_end(); -- 2.47.3