diff options
| author | Sam Varshavchik | 2013-08-19 16:39:41 -0400 | 
|---|---|---|
| committer | Sam Varshavchik | 2013-08-25 14:43:51 -0400 | 
| commit | 9c45d9ad13fdf439d44d7443ae75da15ea0223ed (patch) | |
| tree | 7a81a04cb51efb078ee350859a64be2ebc6b8813 /imap/testsuite | |
| parent | a9520698b770168d1f33d6301463bb70a19655ec (diff) | |
| download | courier-libs-9c45d9ad13fdf439d44d7443ae75da15ea0223ed.tar.bz2 | |
Initial checkin
Imported from subversion report, converted to git. Updated all paths in
scripts and makefiles, reflecting the new directory hierarchy.
Diffstat (limited to 'imap/testsuite')
| -rwxr-xr-x | imap/testsuite | 1084 | 
1 files changed, 1084 insertions, 0 deletions
| diff --git a/imap/testsuite b/imap/testsuite new file mode 100755 index 0000000..53671c0 --- /dev/null +++ b/imap/testsuite @@ -0,0 +1,1084 @@ +#!/bin/sh + +# Maintainer's sanity check + +OPTIONS="" +export OPTIONS +TZ=EST5EDT +export TZ + +echo '****************************' >&2 +echo '* Sanity check in progress *' >&2 +echo '****************************' >&2 +#test ! -d confmdtest || find confmdtest -exec chmod u+rwx {} \; +#test ! -d confmdtest2 || find confmdtest2 -exec chmod u+rwx {} \; +test ! -d confmdtest || chmod -R u+rwx confmdtest  +test ! -d confmdtest2 || chmod -R u+rwx confmdtest2 +rm -rf confmdtest +../maildir/maildirmake confmdtest || exit 1 + +cat >confmdtest/cur/msg1:2,S <<EOF || exit 1 +From: John <john@example.com> +To: Steve <steve@example.com>, Tom <tom@example.com> +Mime-Version: 1.0 +Content-Type: multipart/mixed; boundary="b1" +Subject: This is the message + +foobar +--b1 +Content-Type: text/plain + +This is section 1 + +--b1 +Content-Type: text/plain + +This is section 2 + +--b1 +Content-Type: message/rfc822 + +Mime-Version: 1.0 +Content-Type: multipart/mixed; boundary="b2" +Subject: This is message part 3 + +foobar +--b2 +Content-Type: text/plain + +This is section 3.1 + +--b2 +Content-Type: text/plain + +This is section 3.2 + +--b2-- +--b1 +Content-Type: multipart/mixed; boundary="b3" + +foobar +--b3 +Content-Type: text/plain + +This is section 4.1 + +--b3 +Content-Type: message/rfc822 + +Mime-Version: 1.0 +Content-Type: multipart/mixed; boundary="b4" +Subject: This is message part 4.2 + +foobar +--b4 +Content-Type: text/plain + +This is section 4.2.1 + +--b4 +Content-Type: multipart/alternative; boundary="b5" + +foobar +--b5 +Content-Type: text/plain + +This is section 4.2.2.1 + +--b5 +Content-Type: text/plain + +This is section 4.2.2.2 + +--b5-- + +--b4-- + +--b3-- + +--b1-- +EOF + +inituid() { + +initdir="$1" + +if test "$initdir" = "" +then +    initdir="confmdtest" +fi + +initinbox="$2" +if test "$initinbox" = "" +then +    initinbox="inbox" +else +    initinbox="inbox.$initinbox" +fi + +env IMAP_BROKENUIDV=1 MAILDIR=$initdir ./imapd >confmdtest.stdout <<EOF +a001 select $initinbox +a logout +EOF + +} + +inituid + +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +a001 select inbox +a002 fetch 1 (bodystructure) +a003 fetch 1 (body[]) +a004 fetch 1 (body[]<500.100>) +a005 fetch 1 (body[1]) +a006 fetch 1 (body[1.text]) +a007 fetch 1 (body[2]) +a008 fetch 1 (body[2.text]) +a009 fetch 1 (body[3.header]) +a010 fetch 1 (body[3.mime]) +a011 fetch 1 (body[3.mime]<10,50>) +a012 fetch 1 (body[3.1]) +a013 fetch 1 (body[3.2]) +a014 fetch 1 (body[4.1]) +a015 fetch 1 (body[4.2.header]) +a016 fetch 1 (body[4.2.1]) +a017 fetch 1 (body[4.2.2.1]) +a018 fetch 1 (body[4.2.2.2]) +a019 fetch 1 (envelope) +a020 fetch 1 (body) +a021 fetch 1 (envelope body) +a022 fetch 1 (bodystructure) +a023 fetch 1 (rfc822.size) +a024 fetch 1 (all) +a025 fetch 1 (fast) +a026 fetch 1 (full) +a027 fetch 1 (rfc822.text) +a028 fetch 1 (body[header.fields(content-type)]) +adone logout +EOF + +rm -f confmdtest/cur/msg1:2,S + +cat >confmdtest/new/msg2 <<EOF || exit 1 +From: John <john@example.com> +To: Steve <steve@example.com>, +    Tom <tom@example.com> +Mime-Version: 1.0 +Date: Wed, 22 Sep 1999 15:41:09 -0200 +Content-Type: multipart/mixed; boundary="b1" +Subject: This is the message + +foobar +--b1 +Content-Type: text/plain + +This is section 1 + +--b1 +Content-Type: message/rfc822 + +Subject: This is message part 4.2 +From: dave@example.org +To: tom@example.org +Cc: steve@example.org +Mime-Version: 1.0 +content-type: text/plain +content-transfer-encoding: quoted-printable + + +M=41ry had a little lamb, it's fleece was white as snow.  And everywhere +Mary went, the lamb was sure to go. + +--b1-- +EOF + +inituid + +cat >confmdtest/new/msg3 <<EOF || exit 1 +From: todd@example.org +To: kevin@example.org +Subject: today's meeting + +Today's meeting has been cancelled +EOF +cat >confmdtest/new/msg4 <<EOF || exit 1 +Subject: New MIME headers test +Mime-Version: 1.0 +Content-Type: multipart/mixed; boundary="c1" +Content-Language: en + + +--c1 +Content-Type: text/plain +Content-ID: <foo@bar> +Content-Description:  MIME test message +Content-MD5: aaaabbbb + +test + +--c1-- +EOF +touch -t 199901010000 confmdtest/new/msg3 + +inituid + +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +b000 status inbox ( MESSAGES RECENT UIDNEXT UIDVALIDITY UNSEEN) +b001 select inbox +b001a status inbox ( MESSAGES RECENT UIDNEXT UIDVALIDITY UNSEEN) +b002 fetch 1:2 (flags uid) +b003 search header "content-type" "multipart" +b004 search 2 header "content-type" "multipart" +b005 search to tom@example +b006 search subject "message part 4.2" +b007 search before "1-Feb-1999" +b008 search on "1-Jan-1999" +b009 search senton "22-Sep-1999" +b010 search recent +b011 fetch 1 (rfc822.header) +b012 fetch 1:2 (flags) +b013 search seen +b014 search body "mary had a little lamb" +b015 uid search body "mary had a little lamb" +b016 store 1:2 +flags(\flagged) +b017 store 1 flags(\seen \deleted) +b018 expunge +b019 fetch 1 (flags uid) +b020 create inbox.bozo +b021 uid copy 3 inbox.bozo +b022 select inbox.bozo +b023 status inbox.bozo (uidnext) +b024 fetch 1 (flags) +b025 append inbox.bozo \Seen {11} +test + +test + +b026 append inbox.bozo (\Seen \Flagged) {11} +test + +test + +b027 noop +b028 fetch 1 flags +b029 fetch 1 flags +b030 select inbox +b031 fetch 2 (bodystructure) +adone logout +EOF +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +foo select inbox.bozo +foo store 1 +flags \Deleted +foo expunge +foo logout +EOF +rm -rf confmdtest +mkdir confmdtest || exit 1 +mkdir confmdtest/tmp || exit 1 +mkdir confmdtest/cur || exit 1 +mkdir confmdtest/new || exit 1 +echo "10000S,2C" >confmdtest/maildirsize +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +c001 select inbox +c002 append inbox {5} +test + +c003 append inbox {5} +test + +c004 append inbox {5} +test + +c005 noop +c006 store 1 +flags \Deleted +c007 append inbox {5} +test + +c008 noop +c009 append inbox {5} +test + +c010 store 1 -flags \Deleted +cdone logout +EOF +cat confmdtest/maildirsize +rm -rf confmdtest +mkdir confmdtest || exit 1 +mkdir confmdtest/tmp || exit 1 +mkdir confmdtest/cur || exit 1 +mkdir confmdtest/new || exit 1 +echo "10000S,5C" >confmdtest/maildirsize +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +d001 select inbox +d002 append inbox {5} +test + +d003 noop +d004 copy 1 inbox +d005 noop +ddone logout +EOF +cat confmdtest/maildirsize +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +e001 select inbox +e002 copy 1:2 inbox +e003 noop +edone logout +EOF +cat confmdtest/maildirsize +../maildir/maildirmake -f Trash confmdtest || exit 1 + +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +f001 select inbox +f002 copy 1:2 inbox +f002 copy 1:2 inbox.Trash +f003 noop +f004 select inbox.Trash +f005 copy 1:2 inbox +f006 copy 1:2 inbox.Trash +f007 noop +f008 copy 1 inbox +f009 select inbox +fdone logout +EOF +cat confmdtest/maildirsize +echo "Counts:" `ls confmdtest/cur | wc -l` `ls confmdtest/.Trash/cur | wc -l` +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +g001 select inbox +g002 select Trash +g003 select INBOX.Trash +g004 delete INBOX.Trash +g005 close +g006 delete INBOX.Trash +g007 create INBOX.a +g008 delete INBOX.a/ +g009 delete INBOX.a +g010 create inbox.a/ +gdone logout +EOF + +rm -rf confmdtest2 +../maildir/maildirmake confmdtest2 +../maildir/maildirmake -f a confmdtest2 +../maildir/maildirmake -f b confmdtest2 +chmod u-rwx confmdtest2/.b/tmp +chmod u-rwx confmdtest2/.b/new +chmod u-rwx confmdtest2/.b/cur + +echo "test `pwd`/confmdtest2" >confmdtest/shared-maildirs + +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +h001 list "" "*" +h002 list "" "%" +h003 list "" "%.%" +h004 list "" "%.%.%" +h005 list "shared" "*" +h006 list "shared.test" "*" +h007 list "INBOX" "" +h008 list "shared" "" +h009 list "shared.test" "" +h010 subscribe inbox +h011 list "" "*" +h012 lsub "" "*" +h013 subscribe shared.test.a +h014 list "" "*" +h015 lsub "" "*" +h016 subscribe shared.test.b +h017 list "" "*" +h018 lsub "" "*" +h019 unsubscribe shared.test.a +h020 list "" "*" +h021 lsub "" "*" +h022 subscribe shared.test.a +h023 list "" "*" +h024 lsub "" "*" +hdone logout +EOF + +cat >confmdtest2/.a/new/msg1 <<EOF +Subject: message 1 + +message 1 +EOF + +inituid confmdtest2 a + +cat >confmdtest2/.a/new/msg2 <<EOF +Subject: message 2 + +message 2 +EOF + +inituid confmdtest2 a + +cat >confmdtest/new/msg1 <<EOF +Subject: message 1 +EOF + +cat >confmdtest/.Trash/new/msg2 <<EOF +Subject: message 2 +EOF + +../maildir/maildirmake -f c confmdtest +../maildir/maildirmake -f Trash confmdtest2 + +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +ii001 list "" "*" +ii002 list "" "*" +iidone logout +EOF + +env IMAP_BROKENUIDV=1 IMAP_CHECK_ALL_FOLDERS=1 MAILDIR=confmdtest ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +ii003 list "" "*" +ii004 list "" "*" +iidone logout +EOF + +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +i001 select shared.test.b +i002 select shared.test.a +i003 close +i004 select shared.test.a +i005 append shared.test.a {5} +test + +i006 noop +i007 fetch 1:* (flags) +i008 select inbox +i009 copy 1:2 shared.test.a +i010 select shared.test.a +i011 fetch 1:* (flags) +i012 append shared.test.b {5} +i013 copy 1 shared.test.b +i014 store 1:2 +flags (\Deleted) +i015 expunge +idone logout +EOF +chmod -R u+rwx confmdtest +chmod -R u+rwx confmdtest2 + +rm -f confmdtest/new/* +rm -f confmdtest/cur/* + +cat >confmdtest/new/msg1 <<EOF +From: John <john1@example.com> +To: John <cca4@example.com>, <ccb1@example.com> +Cc: John <toa1@example.com>, <tob4@example.com> +Subject: Re[2]: [foo] message 1 +Date: Wed, 22 Sep 1999 15:41:09 -0200 + +message 1 +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +EOF + +inituid + +cat >confmdtest/new/msg2 <<EOF +From: John <john2@example.com> +To: John <cca3@example.com>, <ccb2@example.com> +Cc: John <toa2@example.com>, <tob3@example.com> +Subject: message 2 +Date: Wed, 22 Sep 1999 15:41:00 -0200 + +message 2 +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +EOF + +inituid + +cat >confmdtest/new/msg3 <<EOF +From: John <john3@example.com> +To: John <cca2@example.com>, <ccb3@example.com> +Cc: John <toa3@example.com>, <tob2@example.com> +Subject: message 1 +Date: Wed, 22 Sep 1999 15:41:00 -0200 + +message 3 +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +EOF + +inituid + +cat >confmdtest/new/msg4 <<EOF +From: John <john4@example.com> +To: John <cca1@example.com>, <ccb4@example.com> +Cc: John <toa4@example.com>, <tob1@example.com> +Subject: [fwd:message 1] (fwd) +Date: Wed, 15 Sep 1999 15:41:00 -0200 + +message 3 +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +EOF + +inituid + +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +T001 select INBOX +T002 fetch 1:* (uid body[header.fields(date)]) +T003 THREAD ORDEREDSUBJECT US-ASCII ALL +T004 THREAD ORDEREDSUBJECT US-ASCII SENTSINCE 19-SEP-1999 +S001 SORT (SUBJECT DATE) US-ASCII ALL +S002 SORT (SUBJECT REVERSE DATE) US-ASCII ALL +S003 SORT (REVERSE SUBJECT DATE) US-ASCII ALL +S004 SORT (FROM) US-ASCII ALL +S005 SORT (REVERSE FROM) US-ASCII ALL +S006 SORT (FROM) US-ASCII SENTSINCE 19-SEP-1999 +S007 SORT (REVERSE FROM) US-ASCII SENTSINCE 19-SEP-1999 +S008 SORT (TO) US-ASCII ALL +S009 SORT (CC) US-ASCII ALL +S010 SORT (REVERSE SIZE) US-ASCII ALL +TDONE logout +EOF + +rm -rf confmdtest +../maildir/maildirmake confmdtest || exit 1 +../maildir/maildirmake -f Trash confmdtest || exit 1 +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +J001 list "" "*" +J002 lsub "" "*" +J003 SUBSCRIBE INBOX +J004 SUBSCRIBE INBOX.Trash +J005 list "" "*" +J006 lsub "" "*" +J007 UNSUBSCRIBE INBOX +J008 LIST "" "*" +J009 LSUB "" "*" +JDONE logout +EOF + +rm -rf confmdtest +../maildir/maildirmake confmdtest || exit 1 + +cat >confmdtest/new/msg1 <<EOF +From: postmaster +Subject: thread 1 +Message-ID: <mid1> +Date: Sat, 05 Feb 2000 13:34:02 -0800 + +message 1 +EOF + +inituid + +cat >confmdtest/new/msg2 <<EOF +From: postmaster +Subject: thread 1.1 +Date: Sat, 05 Feb 2000 13:34:02 -0800 +Message-ID: <mid2> +References: <mid1> + +message 2 +EOF + +inituid + +cat >confmdtest/new/msg3 <<EOF +From: postmaster +Date: Sat, 05 Feb 2000 13:34:02 -0800 +Subject: thread 1.2 +In-Reply-To: <mid2> + +message 3 +EOF + +inituid + +cat >confmdtest/new/msg4 <<EOF +From: postmaster +Date: Sat, 05 Feb 2000 13:34:02 -0800 +Subject: thread 1.2 +References: <mid1> + +message 4 +EOF + +inituid + +cat >confmdtest/new/msg5 <<EOF +From: postmaster +Date: Sat, 05 Feb 2000 13:34:02 -0800 +Subject: thread 1.2 +Message-ID: <mid11> +References: <mid10> + +message 5 +EOF + +inituid + +cat >confmdtest/new/msg6 <<EOF +From: postmaster +Date: Sat, 05 Feb 2000 13:34:01 -0800 +Subject: thread 1.2 +Message-ID: <mid12> +References: <mid10> + +message 6 +EOF + +inituid + +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +K001 select INBOX +K002 THREAD REFERENCES US-ASCII ALL +KDONE logout +EOF + +rm -rf confmdtest +../maildir/maildirmake confmdtest || exit 1 +../maildir/maildirmake -f Trash confmdtest || exit 1 + +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +L001 CREATE INBOX.a +L002 CREATE INBOX.a.a +L003 CREATE INBOX.aa +L004 RENAME INBOX.a INBOX.b +L005 LIST "" "*" +L006 RENAME INBOX.b INBOX.a +L007 LIST "" "*" +L008 RENAME INBOX.a. INBOX.b. +L009 LIST "" "*" +L010 RENAME INBOX.b. INBOX.a. +L011 LIST "" "*" +L012 CREATE INBOX.b.a +L013 DELETE INBOX.a +L014 CREATE INBOX.a.a +L015 LIST "" "*" +L016 RENAME INBOX.a INBOX.b +L017 RENAME INBOX.a. INBOX.b. +L018 SELECT INBOX +L019 APPEND INBOX \Seen {5} +test + +L020 NOOP +L021 COPY 1 INBOX +L022 COPY 1 INBOX +L023 COPY 1 INBOX +L024 COPY 1 INBOX +L025 COPY 1 INBOX +L026 COPY 1 INBOX +L027 NOOP +L028 STORE 2:3,5:7 +FLAGS \Deleted +L029 FETCH 1:* (UID FLAGS) +L030 UID EXPUNGE 2,3:5 +L031 FETCH 1:* (UID FLAGS) +LDONE logout +EOF + +rm -rf confmdtest + +../maildir/maildirmake confmdtest || exit 1 +../maildir/maildirmake -q 10C confmdtest || exit 1 + +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +M001 CREATE INBOX.a +M002 APPEND INBOX \Seen {5} +test + +M003 SELECT INBOX +M004 COPY 1 INBOX +M005 COPY 1 INBOX +M006 NOOP +M007 COPY 1:3 INBOX.a +M008 RENAME INBOX.a INBOX.b +MDONE logout +EOF +cat confmdtest/maildirsize +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +M009 DELETE INBOX.b +MDONE logout +EOF +cat confmdtest/maildirsize + +rm -rf confmdtest + +../maildir/maildirmake confmdtest || exit 1 +env IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +N001 LIST "" "*" +N002 append inbox \Deleted {11} +test + +test + +N003 LIST "" "*" +N004 SELECT inbox +N005 EXPUNGE +N006 LIST "" "*" +NDONE logout +EOF + +rm -rf confmdtest +../maildir/maildirmake confmdtest || exit 1 +../maildir/maildirmake -q10C confmdtest +env IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +O001 append inbox NIL {11} +test + +test + +o002 SELECT inbox +o003 COPY 1 inbox +o004 NOOP +o005 STORE 1 +FLAGS \Deleted +o006 COPY 1:2 inbox +o007 NOOP +o008 logout +EOF +cat confmdtest/maildirsize +rm -f confmdtest/maildirsize + +env IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +p001 SELECT INBOX +p002 CREATE INBOX.a +p003 COPY 1 INBOX.a +p004 SELECT INBOX.a +p005 STORE 1 +FLAGS(-Label1 \Deleted) +p006 append INBOX.a (-Label2) {11} +test + +test + +p007 EXPUNGE +p008 FETCH 1:* FLAGS +p009 COPY 1 INBOX.a +p010 NOOP +P011 FETCH 1:* FLAGS +P012 STORE 1 -FLAGS (-Label2) +P013 STORE 1 +FLAGS (\SEEN) +P013 FETCH 1:* FLAGS +P014 SEARCH SEEN +P015 SEARCH KEYWORD -LABEL2 +P016 SEARCH UNKEYWORD -Label2 +P017 SEARCH KEYWORD -Label1 +P018 COPY 1:* INBOX.a +P019 COPY 1:* INBOX.a +P020 NOOP +P021 COPY 1:* INBOX.a +P022 COPY 1:* INBOX.a +P023 NOOP +P025 STORE 4 +FLAGS -Label1 +P024 FETCH 1:* FLAGS +P025 SEARCH KEYWORD -Label2 +P026 SEARCH KEYWORD -Label2 KEYWORD -Label1 +pDONE LOGOUT +EOF + +env IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +Q001 select INBOX +Q002 fetch 1:* FLAGS +Q003 status INBOX.Trash MESSAGES +Q004 expunge +Q005 status INBOX.Trash MESSAGES +Q006 COPY 1 INBOX.a +Q007 STORE 1:* +FLAGS \Deleted +Q008 NOOP +Q009 EXPUNGE +Q005 status INBOX.Trash MESSAGES +qDONE LOGOUT +EOF + +rm -rf confmdtest +../maildir/maildirmake confmdtest || exit 1 + +env IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +R001 CREATE INBOX.a +R002 LIST (ACL MYRIGHTS POSTADDRESS) "" "*" +R003 ACL STORE INBOX owner -t +R004 ACL STORE (INBOX *) owner +d +R005 ACL STORE INBOX.a user=systemuser1 alr +R006 ACL STORE INBOX.a user=systemuser1 +w +R007 ACL STORE INBOX.a user=systemuser1 -w +R008 ACL STORE INBOX.a user=systemuser1 -alr +R009 ACL STORE INBOX.a user=systemuser1 alr +R010 ACL STORE INBOX.a user=systemuser1 "" +R011 ACL STORE INBOX.a user=systemuser1 alr +R012 ACL SET (INBOX *) "owner" "acdilrsw" administrators "acdilrsw" user=systemuser2 alr +R013 ACL DELETE INBOX.a user=systemuser1 +R014 ACL DELETE INBOX.a user=systemuser2 +R015 ACL STORE INBOX.a owner -a +R016 ACL STORE INBOX.a -owner +wt +R017 ACL STORE INBOX.a -owner -w +R018 ACL DELETE INBOX.a -owner +R019 ACL STORE INBOX.a -owner +a +R020 ACL STORE INBOX.a owner -ci +R021 CREATE INBOX.a.b +R022 ACL STORE INBOX.a owner +c +R023 CREATE INBOX.a.b +R024 LIST (ACL) "" INBOX.a.b +R025 CREATE INBOX.c.d +R026 LIST (ACL) "" "INBOX.c*" +R027 ACL STORE (INBOX.c*) -owner x +R028 DELETE INBOX.c.d +R029 ACL DELETE INBOX.c.d -owner +R030 DELETE INBOX.c.d +R031 DELETE INBOX.c. +R032 LIST (ACL) "" "*" +R033 DELETE INBOX.a +R034 LIST (ACL) "" "*" +R035 RENAME INBOX.a INBOX.f +R036 LIST (ACL) "" "*" +R037 CREATE INBOX.f +R038 LIST (ACL) "" "*" +R039 ACL STORE INBOX owner -i +R040 SELECT INBOX +R041 APPEND INBOX (\Seen \Deleted \Answered Foo) {0} +R042 ACL STORE INBOX owner +i +R043 APPEND INBOX (\Seen \Deleted \Answered Foo) {11} +test + +test + +R043 NOOP +R044 FETCH 1 (FLAGS) +R045 ACL STORE INBOX owner -tw +R046 APPEND INBOX (\Seen \Deleted \Answered Foo) {11} +test + +test + +R047 NOOP +R048 FETCH 2 (FLAGS) +R049 ACL STORE INBOX owner +tw +R050 ACL STORE INBOX owner -s +R051 APPEND INBOX (\Seen \Deleted \Answered Foo) {11} +test + +test + +R052 NOOP +R053 FETCH 3 (FLAGS) +R054 STORE 2:3 +FLAGS (\Deleted) +R055 STORE 1 -FLAGS (\Deleted) +R056 EXPUNGE +R057 STORE 1 +FLAGS (\Deleted) +R058 ACL STORE INBOX owner +s +R059 CREATE INBOX.x +R060 COPY 1 INBOX.x +R061 SELECT INBOX.x +R062 FETCH 1 (FLAGS) +R063 SELECT INBOX +R064 ACL STORE INBOX.x owner -s +R065 COPY 1 INBOX.x +R066 SELECT INBOX.x +R067 FETCH 2 (FLAGS) +R068 SELECT INBOX +R069 ACL STORE INBOX.x owner +s +R070 ACL STORE INBOX.x owner -w +R071 COPY 1 INBOX.x +R072 SELECT INBOX.x +R073 FETCH 3 (FLAGS) +R074 SELECT INBOX +R075 ACL STORE INBOX.x owner +w +R076 ACL STORE INBOX.x owner -t +R077 COPY 1 INBOX.x +R078 SELECT INBOX.x +R079 FETCH 4 (FLAGS) +R080 SELECT INBOX +RDONE LOGOUT +EOF + +rm -rf confmdtest +../maildir/maildirmake confmdtest || exit 1 +../maildir/maildirmake -f a confmdtest || exit 1 +cat >confmdtest/.a/cur/msg1:2,S <<EOF || exit 1 +From: John <john@example.com> +To: john <john@example.com> +Subject: test + +test +EOF +env IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +S001 SELECT INBOX.a +S002 COPY 1 INBOX.a +S003 NOOP +S004 COPY 1:2 INBOX.a +S005 NOOP +S006 ACL STORE INBOX.a owner -e +S007 STORE 1 +FLAGS(\Deleted) +S008 EXPUNGE +S009 CLOSE +S010 SELECT INBOX.a +S011 ACL STORE INBOX.a owner +e +S012 EXPUNGE +S013 STORE 1 +FLAGS(\Deleted) +S014 CLOSE +S015 SELECT INBOX.a +S016 CLOSE +S017 ACL STORE INBOX.a owner -r +S018 SELECT INBOX.a +S019 EXAMINE INBOX.a +S020 STATUS INBOX.a (UIDVALIDITY) +S021 ACL STORE INBOX.a owner +r +S022 SELECT INBOX.a +S023 APPEND INBOX.a NIL {11} +test + +test + +S024 NOOP +S025 STORE 1:* FLAGS () +S027 ACL STORE INBOX.a owner -s +S028 FETCH 1 (BODY[]) +S029 ACL STORE INBOX.a owner +s +S030 FETCH 1 (BODY[]) +S031 ACL STORE INBOX.a owner -s +S032 STORE 1:2 FLAGS(\Seen \Deleted Foo) +S033 STORE 1:2 -FLAGS(\Seen \Deleted Foo) +S034 STORE 2 +FLAGS(\Seen \Deleted \Answered Foo) +S035 FETCH 1:2 (FLAGS) +S036 ACL STORE INBOX.a owner +s +S037 ACL STORE INBOX.a owner -w +S038 STORE 1:2 FLAGS(\Seen \Deleted Bar) +S039 STORE 1:2 -FLAGS(\Seen \Deleted Bar) +S040 STORE 1:2 +FLAGS(\Seen \Deleted Bar) +S041 ACL STORE INBOX.a owner +w +S042 STORE 2 -FLAGS (\Deleted) +S043 ACL STORE INBOX.a owner -t +S044 STORE 1:2 FLAGS (\Deleted \Seen Bar) +S045 STORE 1:2 -FLAGS (\Deleted \Seen Bar) +S046 STORE 1:2 +FLAGS (\Deleted \Seen Bar) +S047 CLOSE +S048 ACL STORE INBOX user=courierimaptestuser1 alr +S049 ACL STORE INBOX user=courierimaptestuser2 lr +S050 LIST (ACL) "" INBOX +SDONE LOGOUT +EOF + +rm -rf confmdtest* +../maildir/maildirmake confmdtest || exit 1 +../maildir/maildirmake confmdtest2 || exit 1 +../maildir/maildirmake confmdtest3 || exit 1 +mkdir confmdtest4 || exit 1 +cat >confmdtest4/index <<EOF || exit 1 +user0	1	1	`pwd`	confmdtest +a	*	indexa +b	*	indexb +EOF +echo "user1	1	1	`pwd`	confmdtest2" >confmdtest4/indexa || exit 1 +echo "aashared	1	1	`pwd`	confmdtest5" >>confmdtest4/indexa || exit 1 +echo "user2	1	1	`pwd`	confmdtest3" >confmdtest4/indexb || exit 1 + +IMAP_SHAREDINDEXFILE=`pwd`/confmdtest4/index +export IMAP_SHAREDINDEXFILE + +env AUTHENTICATED=user1 IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest2 ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +T001 ACL STORE INBOX user=user0 +l +T002 CREATE INBOX.a +T003 ACL STORE INBOX.a anyone +lr +T004 append INBOX.a \Seen {22} +Subject: user1 + +user1 + +T005 LOGOUT +EOF + +env AUTHENTICATED=user2 IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest3 ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +T010 ACL STORE INBOX anyone +l +T011 CREATE INBOX.a +T012 append INBOX.a \Seen {22} +Subject: user2 + +user2 + +T013 LOGOUT +EOF + +env AUTHENTICATED=user0 IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +T020 list(acl) "" "#shared.*" +T021 ACL STORE INBOX anyone acdilrsw +T022 list(acl) "" "#shared.%" +T023 LOGOUT +EOF + +env AUTHENTICATED=user2 IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest3 ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +T030 LIST "" "#shared.*" +T031 LIST "" "#shared.%" +T032 LIST "" "#shared.a.%" +T033 LIST "" "#shared.c.%" +T034 SELECT "#shared.a.user1" +T035 SELECT "#shared.a.user1.a" +T036 FETCH 1:* (ENVELOPE) +T037 STATUS #shared.a.user1 (UIDVALIDITY) +T038 COPY 1 #shared.user0 +T039 SELECT #shared.user0 +T040 CREATE #shared.a.user1.b +T041 CREATE #shared.c +T042 CREATE #shared.user0.foo +T043 RENAME #shared.user0.foo #shared.user0.bar +T044 LIST(ACL) "" "#shared.user0*" +T045 ACL STORE #shared.a.user1.a anyone lr +T046 CREATE #shared.user0.foo +T047 ACL STORE #shared.user0.foo anyone alr +T048 ACL STORE #shared.user0.bar anyone -x +T049 RENAME #shared.user0.bar #shared.user0.foo.bar +T050 ACL STORE #shared.user0.bar anyone +x +T051 RENAME #shared.user0.bar #shared.user0.foo.bar +T052 ACL STORE #shared.user0.foo anyone +c +T053 RENAME #shared.user0.bar #shared.user0.foo.bar +T054 LIST "" "#shared.user0*" +TDONE LOGOUT +EOF + +cat >confmdtest4/indexb <<EOF +use&2	1	1	`pwd`	confmdtest3 +user.2	1	1	`pwd`	confmdtest3 +usér/3	1	1	`pwd`	confmdtest3 +EOF + +env AUTHENTICATED=user1 IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest2 ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +T055 LIST "" "#shared.b.*" +T056 LIST "" "#shared.b.%" +T057 LIST "" "#shared.b.user 2.*" +T058 LIST "" "#shared.b.use&-2.*" +TDONE LOGOUT +EOF + +env IMAP_SHAREDMUNGENAMES=1 AUTHENTICATED=user1 IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest2 ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +T055 LIST "" "#shared.b.*" +T056 LIST "" "#shared.b.%" +T057 LIST "" "#shared.b.user\\\\:2.*" +T058 LIST "" "#shared.b.use&-2.*" +T059 CREATE INBOX.a.b +T060 SELECT INBOX.a.b +T061 RENAME INBOX.a INBOX.aa +T062 CLOSE +T063 RENAME INBOX.a INBOX.aa +T064 RENAME INBOX INBOX.c +T065 RENAME INBOX.aa #shared.user0.aa +T066 LIST "" #shared.* +T067 LIST "" #shared.% +T068 LIST "" #shared.% +T069 LIST "" #shared.%.% +T070 LIST "" #shared.%.%.% +T071 LIST "" #shared.%.%.%.% +TDONE LOGOUT +EOF + +echo "usergroup1	1	1	`pwd`	confmdtest" >confmdtest4/indexgroup1 || exit 1 + +env IMAP_SHAREDMUNGENAMES=1 AUTHENTICATED=user1 OPTIONS=sharedgroup=group1 IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest2 ./imapd <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +T072 LIST "" #shared.* +T073 LIST(ACL) "" INBOX +T074 ACL STORE INBOX user=fred lr +T075 ACL STORE INBOX -user=john lr +T076 ACL STORE INBOX -authuser lr +T077 GETACL INBOX +T078 SETACL INBOX -authuser lcr +T079 SETACL INBOX -john lcr +T080 SETACL INBOX fred cr +T081 GETACL INBOX +T082 LIST(ACL) "" INBOX +T083 DELETEACL INBOX -john +T084 DELETEACL INBOX fred +T085 GETACL INBOX +T086 LIST(ACL) "" INBOX +TDONE LOGOUT +EOF + | 
