# This file is part of GNU Mailutils. -*- Autotest -*- # Copyright (C) 2011-2012, 2014-2017 Free Software Foundation, Inc. # # GNU Mailutils is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 3, or (at # your option) any later version. # # GNU Mailutils is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Mailutils. If not, see <http://www.gnu.org/licenses/>. dnl SEARCH_CHECK([NAME],[KW],[ARG],[OUTPUT]) m4_define([SEARCH_CHECK],[ AT_SETUP([$1]) AT_KEYWORDS([search $2]) IMAP4D_CHECK([ MUT_MBCOPY($abs_top_srcdir/testsuite/spool/search.mbox,INBOX) ], [1 SELECT INBOX 2 SEARCH $3 X LOGOUT ], [* PREAUTH IMAP4rev1 Test mode * SEARCH $4 2 OK SEARCH Completed * BYE Session terminating. X OK LOGOUT Completed ], [], [remove_select_untagged]) AT_CLEANUP ]) dnl ---------------------------------------------------------------------- # <message set> Messages with message sequence numbers # corresponding to the specified message sequence # number set SEARCH_CHECK([search sequence number],[search00], [1:*],[1 2 3 4 5 6 7 8]) # ALL All messages in the mailbox; the default initial # key for ANDing. SEARCH_CHECK([search all],[search01], [ALL],[1 2 3 4 5 6 7 8]) # NEW Messages that have the \Recent flag set but not the # \Seen flag. This is functionally equivalent to # "(RECENT UNSEEN)". SEARCH_CHECK([search new],[search02], [NEW],[4 5 6 7 8]) # FROM <string> Messages that contain the specified string in the # envelope structure's FROM field. SEARCH_CHECK([search from personal],[search03], [FROM corrector],[2 4 8]) SEARCH_CHECK([search from email],[search04], [FROM lexi@example.net],[1 3 5 6 7]) # LARGER <n> Messages with an [RFC-822] size larger than the # specified number of octets. SEARCH_CHECK([search larger],[search05], [LARGER 512],[3 4]) # SMALLER <n> Messages with an [RFC-822] size smaller than the # specified number of octets. SEARCH_CHECK([search smaller],[search06], [SMALLER 400],[7 8]) # SUBJECT <string> Messages that contain the specified string in the # envelope structure's SUBJECT field. SEARCH_CHECK([search subject],[search07], [SUBJECT "Alliance"],[6]) # HEADER <field-name> <string> # Messages that have a header with the specified # field-name (as defined in [RFC-822]) and that # contains the specified string in the [RFC-822] # field-body. SEARCH_CHECK([search header],[search08], [HEADER Message-Id "<200207291200.3303@example.org>"],[3]) # CC <string> Messages that contain the specified string in the # envelope structure's CC field. SEARCH_CHECK([search cc],[search09], [CC Corrector],[6]) # TO <string> Messages that contain the specified string in the # envelope structure's TO field. SEARCH_CHECK([search to],[search10], [TO editor+recheck],[7]) # SENTBEFORE <date> # Messages whose [RFC-822] Date: header is earlier # than the specified date. SEARCH_CHECK([search sentbefore],[search11], [SENTBEFORE "30-Jul-2002"],[1 2]) # SENTSINCE <date> # Messages whose [RFC-822] Date: header is within or # later than the specified date. SEARCH_CHECK([search sentsince],[search12], [SENTSINCE "31-Jul-2002"],[5 6 7 8]) # BEFORE <date> Messages whose internal date is earlier than the # specified date. SEARCH_CHECK([search beforedate],[search13], [BEFORE "30-Jul-2002"],[1]) # SINCE <date> Messages whose internal date is within or later # than the specified date. SEARCH_CHECK([search since],[search14], [SINCE "30-Jul-2002"],[2 3 4 5 6 7 8]) # ANSWERED Messages with the \Answered flag set. SEARCH_CHECK([search answered],[search15], [ANSWERED],[2 3]) # TEXT <string> Messages that contain the specified string in the # header or body of the message. SEARCH_CHECK([search text],[search16], [TEXT person],[2 5 8]) # When multiple keys are specified, the result is the intersection # (AND function) of all the messages that match those keys. SEARCH_CHECK([search multiple keys (implicit AND) 1],[search17], [TEXT person FROM corrector],[2 8]) SEARCH_CHECK([search multiple keys (implicit AND) 2],[search18], [SENTSINCE "30-Jul-2002" SENTBEFORE "31-Jul-2002"],[3 4]) # OR <search-key1> <search-key2> # Messages that match either search key. SEARCH_CHECK([search or],[search19], [OR FROM corrector ANSWERED],[2 3 4 8]) # Test precedence SEARCH_CHECK([precedence 1],[search20], [(OR FROM corrector ANSWERED) SENTSINCE "30-Jul-2002"],[3 4 8]) SEARCH_CHECK([precedence 2],[search21], [OR FROM corrector ANSWERED SENTSINCE "30-Jul-2002"],[3 4 8]) SEARCH_CHECK([precedence 3],[search22], [OR FROM corrector (ANSWERED SENTSINCE "30-Jul-2002")],[2 3 4 8]) dnl ----------------------------------------------------------------------