test-mail-search-args-simplify.c revision f5e8a76a128d4e92f0641135183c164fd5c5ce5e
bcb4e51a409d94ae670de96afb8483a4f7855294Stephan Bosch/* Copyright (c) 2015 Dovecot authors, see the included COPYING file */
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomi const char *input;
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomi const char *output;
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomi { "( ( TEXT foo ) ( TEXT bar ) )", "TEXT foo TEXT bar" },
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomi { "OR ( TEXT foo ) ( TEXT bar )", "(OR TEXT foo TEXT bar)" },
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomi { "OR ( TEXT foo ) OR ( TEXT bar ) ( TEXT baz )",
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomi "(OR TEXT foo OR TEXT bar TEXT baz)" },
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomi { "OR ( ( TEXT foo TEXT foo2 ) ) ( ( TEXT bar ( TEXT baz ) ) )",
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomi "(OR (TEXT foo TEXT foo2) (TEXT bar TEXT baz))" },
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomi { "NOT OR ( TEXT foo ) ( TEXT bar )", "NOT TEXT foo NOT TEXT bar" },
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomi { "NOT ( OR ( TEXT foo ) ( TEXT bar ) )", "NOT TEXT foo NOT TEXT bar" },
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomi { "NOT ( TEXT foo TEXT bar )", "(OR NOT TEXT foo NOT TEXT bar)" },
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomi { "ANSWERED FLAGGED SEEN", "(ANSWERED FLAGGED SEEN)" },
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomi { "OR ( ANSWERED FLAGGED SEEN ) DRAFT", "(OR (ANSWERED FLAGGED SEEN) (DRAFT))" },
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomi { "ANSWERED TEXT foo FLAGGED SEEN", "(ANSWERED FLAGGED SEEN) TEXT foo" },
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomi { "NOT ( ANSWERED FLAGGED SEEN )", "NOT (ANSWERED FLAGGED SEEN)" },
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomi { "OR NOT ANSWERED OR NOT FLAGGED NOT SEEN", "NOT (ANSWERED FLAGGED SEEN)" },
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomi { "ANSWERED NOT FLAGGED SEEN NOT DRAFT", "(ANSWERED SEEN) NOT (FLAGGED) NOT (DRAFT)" },
e88e76e782853e826d00524ee1133e64fb69b3d9Aki Tuomi { "OR NOT ANSWERED NOT SEEN", "NOT (ANSWERED SEEN)" },
{ "BEFORE 03-Aug-2014 NOT BEFORE 01-Aug-2014 BEFORE 02-Aug-2014", "BEFORE \"02-Aug-2014\" NOT BEFORE \"01-Aug-2014\"" },
{ "SENTBEFORE 03-Aug-2014 SENTBEFORE 01-Aug-2014 SENTBEFORE 02-Aug-2014", "SENTBEFORE \"01-Aug-2014\"" },
{ "SENTBEFORE 03-Aug-2014 BEFORE 01-Aug-2014 SENTBEFORE 02-Aug-2014", "SENTBEFORE \"02-Aug-2014\" BEFORE \"01-Aug-2014\"" },
{ "ON 03-Aug-2014 ON 04-Aug-2014", "ON \"03-Aug-2014\" ON \"04-Aug-2014\"" }, /* this could be replaced with e.g. NOT ALL */
{ "SINCE 03-Aug-2014 NOT SINCE 01-Aug-2014 SINCE 02-Aug-2014", "SINCE \"03-Aug-2014\" NOT SINCE \"01-Aug-2014\"" },
{ "SENTSINCE 03-Aug-2014 SENTSINCE 01-Aug-2014 SENTSINCE 02-Aug-2014", "SENTSINCE \"03-Aug-2014\"" },
{ "SENTSINCE 03-Aug-2014 SINCE 01-Aug-2014 SENTSINCE 02-Aug-2014", "SENTSINCE \"03-Aug-2014\" SINCE \"01-Aug-2014\"" },
static struct mail_search_args *
return sargs;
static void test_mail_search_args_simplify(void)
const char *error;
test_end();
int main(void)
static void (*test_functions[])(void) = {