| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
 | if test "$IMAPINVOKE" = ""
then
    IMAPINVOKE="./imapd"
fi
SED='s/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g;s/SNAPSHOT "[^"]*"/SNAPSHOT -SNAPSHOT-/g;s/SNAPSHOTEXISTS "[^"]*"/SNAPSHOTEXISTS -SNAPSHOT-/g;s:^-ERR .*:-ERR --error--:'
rm -rf confmdtest
../maildir/maildirmake confmdtest
i=0;
while test "$i" -lt 200
do
  ../maildir/deliverquota confmdtest <<EOF
Subject: test message
test message
EOF
  i=`expr $i + 1`
done
env IMAP_BROKENUIDV=1 MAILDIR=confmdtest PROTOCOL=SMAP1 $IMAPINVOKE <<EOF | sed "$SED"
OPEN INBOX
STORE 1-10 20-80 90-130 +FLAGS=DELETED
EXPUNGE
LOGOUT
EOF
rm -rf confmdtest
../maildir/maildirmake confmdtest
i=0;
while test "$i" -lt 200
do
  ../maildir/deliverquota confmdtest <<EOF
Subject: test message
test message
EOF
  i=`expr $i + 1`
done
env IMAP_BROKENUIDV=1 MAILDIR=confmdtest PROTOCOL=SMAP1 $IMAPINVOKE <<EOF | sed "$SED"
OPEN INBOX
EXPUNGE 1-10 20-80 90-130
LOGOUT
EOF
rm -rf confmdtest
../maildir/maildirmake confmdtest
../maildir/deliverquota confmdtest <<EOF
Subject: Test MIME message
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary=aaa
--aaa
Content-Type: multipart/alternative; boundary=bbb
--bbb
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
text/plain content
--bbb
Content-Type: text/html; charset=iso-8859-1
Content-Disposition: inline
text/html content
--bbb--
--aaa
Content-Type: message/rfc822
Mime-Version: 1.0
Subject: Attached message
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Attached message
--aaa--
EOF
env IMAP_BROKENUIDV=1 MAILDIR=confmdtest PROTOCOL=SMAP1 $IMAPINVOKE <<EOF | sed "$SED"
OPEN INBOX
FETCH 1 CONTENTS.PEEK=MIME(Mime-Version,Content-Type,Content-Disposition)
FETCH 1 CONTENTS=MIME(Mime-Version,Content-Type,Content-Disposition)
FETCH 1 CONTENTS=HEADERS(Mime-Version,Content-Type)
FETCH 1 CONTENTS=HEADERS
FETCH 1 CONTENTS=HEADERS[1.1]
FETCH 1 CONTENTS=HEADERS[1.1.1]
FETCH 1 CONTENTS=HEADERS[1.1.2]
FETCH 1 CONTENTS=HEADERS[1.2]
FETCH 1 CONTENTS=HEADERS[1.2.0]
FETCH 1 CONTENTS=HEADERS[A]
FETCH 1 CONTENTS=HEADERS[2]
FETCH 1 CONTENTS=HEADERS[1.1.3]
FETCH 1 CONTENTS=HEADERS[1.2.1]
FETCH 1 CONTENTS=BODY
FETCH 1 CONTENTS=BODY[1.2.0]
LOGOUT
EOF
rm -rf confmdtest confmdtest2
../maildir/maildirmake confmdtest
../maildir/maildirmake confmdtest2
../maildir/maildirmake -f folder1 confmdtest2
../maildir/maildirmake --add test=`pwd`/confmdtest2 confmdtest
../maildir/maildirmake -q10C confmdtest
../maildir/deliverquota confmdtest <<EOF
Subject: testing body.decoded
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary=zzz
--zzz
Content-Type: text/plain
Content-Transfer-Encoding: 8bit
This is a text/plain 8bit section
--zzz
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable
This is =61 text/plain =
quoted-printable section
--zzz
Content-Type: text/plain
Content-Transfer-Encoding: base64
YWNsb2NhbC5tNAkJICAgIGltYXBkLm8JCSAgICAgbXNnZW52ZWxvcGUubwphdXRoZW50aWNhdGVf
YXV0aC5jCSAgICBpbWFwZC5wYW0JCSAgICAgbXlzaWduYWwuYwphdXRoZW50aWNhdGVfYXV0aC5j
Ln4xLjYufiAgaW1hcGQuc2dtbAkJICAgICBteXNpZ25hbC5oCmF1dGhlbnRpY2F0ZV9hdXRoLm8J
ICAgIGltYXBkLXNzbC5kaXN0CSAgICAgbXlzaWduYWwubwphdXRoZW50aWNhdGVfc3R1Yi5jCSAg
ICBpbWFwZC1zc2wuZGlzdC5pbgkgICAgIG91dGJveC5jCmF1dG9tNHRlLTIuNTMuY2FjaGUJICAg
IGltYXBsb2dpbgkJICAgICBvdXRib3guaApCVUdTCQkJICAgIGltYXBsb2dpbi5jCQkgICAgIG91
dGJveC5vCmNhcGFiaWxpdHkuYwkJICAgIGltYXBsb2dpbi5jLn4xLjE5Ln4gICAgICBwb3AzZApj
YXBhYmlsaXR5LmMufjEuNi5+CSAgICBpbWFwbG9naW4ubwkJICAgICBwb3AzZC5hdXRocGFtCmNh
cGFiaWxpdHkubwkJICAgIGltYXBzY2FuY2xpZW50LmMJICAgICBwb3AzZGNhcGEuYwpDaGFuZ2VM
b2cJCSAgICBpbWFwc2NhbmNsaWVudC5oCSAgICAgcG9wM2RjYXBhLm8KY29uZmlnLmgJCSAgICBp
bWFwc2NhbmNsaWVudC5oLn4xLjYufiAgcG9wM2QuY25mCmNvbmZpZy5oLmluCQkgICAgaW1hcHNj
YW5jbGllbnQubwkgICAgIHBvcDNkLmNuZi5pbgpjb25maWcuaC5pbn4JCSAgICBpbWFwdG9rZW4u
YwkJICAgICBwb3AzZC5kaXN0CmNvbmZpZy5sb2cJCSAgICBpbWFwdG9rZW4uYy5+MS4xMy5+ICAg
ICAgcG9wM2QuZGlzdC5pbgpjb25maWcuc3RhdHVzCQkgICAgaW1hcHRva2VuLmgJCSAgICAgcG9w
M2QucGFtCmNvbmZpZ3VyZQkJICAgIGltYXB0b2tlbi5oLn4xLjYufgkgICAgIHBvcDNkc2VydmVy
LmMKY29uZmlndXJlLmluCQkgICAgaW1hcHRva2VuLm8JCSAgICAgcG9wM2RzZXJ2ZXIubwpjb25m
aWd1cmUuaW4ufjEuNzkufgkgICAgaW1hcHdyaXRlLmMJCSAgICAgcG9wM2Qtc3NsLmRpc3QKY29u
Zm1kdGVzdAkJICAgIGltYXB3cml0ZS5oCQkgICAgIHBvcDNkLXNzbC5kaXN0LmluCmNvbmZtZHRl
c3QyCQkgICAgaW1hcHdyaXRlLm8JCSAgICAgcG9wM2xvZ2luCmNvbmZtZHRlc3Quc3Rkb3V0CSAg
ICBsaWJpbWFwZC5hCQkgICAgIHBvcDNsb2dpbi5jCmNvdXJpZXJwb3AzZC44CQkgICAgbWFpbGJv
eGxpc3QuYwkgICAgIHBvcDNsb2dpbi5vCmNvdXJpZXJwb3AzZC44LmluCSAgICBtYWlsYm94bGlz
dC5oCSAgICAgUkVBRE1FCmNvdXJpZXJwb3AzZC5odG1sCSAgICBtYWlsYm94bGlzdC5vCSAgICAg
UkVBRE1FLmh0bWwKY291cmllcnBvcDNkLmh0bWwuaW4JICAgIG1haW5sb29wLmMJCSAgICAgc2Vh
cmNoLmMKY291cmllcnBvcDNkLnNnbWwJICAgIG1haW5sb29wLmMufjEuNi5+CSAgICAgc2VhcmNo
aW5mby5jCkNWUwkJCSAgICBtYWlubG9vcC5vCQkgICAgIHNlYXJjaGluZm8uaApGQVEJCQkgICAg
TWFrZWZpbGUJCSAgICAgc2VhcmNoaW5mby5vCkZBUS5odG1sCQkgICAgTWFrZWZpbGV+CQkgICAg
IHNlYXJjaC5vCmZldGNoLmMJCQkgICAgTWFrZWZpbGUuYW0JCSAgICAgc21hcC5jCmZldGNoLmMu
fjEuMjEufgkJICAgIE1ha2VmaWxlLmFtLn4xLjMxLn4gICAgICBzbWFwLmN+CmZldGNoaW5mby5j
CQkgICAgTWFrZWZpbGUuaW4JCSAgICAgc21hcC5vCmZldGNoaW5mby5oCQkgICAgbWtpbWFwZGNl
cnQJCSAgICAgc21hcHRlc3RzdWl0ZQpmZXRjaGluZm8ubwkJICAgIG1raW1hcGRjZXJ0LjgJICAg
ICBzbWFwdGVzdHN1aXRlfgpmZXRjaC5vCQkJICAgIG1raW1hcGRjZXJ0LjguaW4JICAgICBzbWFw
dGVzdHN1aXRlLnR4dApodG1sMm1hbi5wbC5pbgkJICAgIG1raW1hcGRjZXJ0Lmh0bWwJICAgICBz
dGFtcC1oMQppbWFwZAkJCSAgICBta2ltYXBkY2VydC5odG1sLmluICAgICAgc3RvcmVpbmZvLmMK
aW1hcGQuOAkJCSAgICBta2ltYXBkY2VydC5pbgkgICAgIHN0b3JlaW5mby5oCmltYXBkLjguaW4J
CSAgICBta2ltYXBkY2VydC5zZ21sCSAgICAgc3RvcmVpbmZvLm8KaW1hcGQuYXV0aHBhbQkJICAg
IG1rcG9wM2RjZXJ0CQkgICAgIHN5c3RlbS1hdXRoLmF1dGhwYW0KaW1hcGQuYwkJCSAgICBta3Bv
cDNkY2VydC44CSAgICAgdAppbWFwZC5jLn4xLjk1Ln4JCSAgICBta3BvcDNkY2VydC44LmluCSAg
ICAgdGVzdHN1aXRlCmltYXBkLmNuZgkJICAgIG1rcG9wM2RjZXJ0Lmh0bWwJICAgICB0ZXN0c3Vp
dGVmaXgucGwKaW1hcGQuY25mLmluCQkgICAgbWtwb3AzZGNlcnQuaHRtbC5pbiAgICAgIHRlc3Rz
dWl0ZWZpeC5wbC5pbgppbWFwZC5kaXN0CQkgICAgbWtwb3AzZGNlcnQuaW4JICAgICB0ZXN0c3Vp
dGUudHh0CmltYXBkLmRpc3QuaW4JCSAgICBta3BvcDNkY2VydC5zZ21sCSAgICAgdGhyZWFkLmMK
aW1hcGQuaAkJCSAgICBtc2dib2R5c3RydWN0dXJlLmMJICAgICB0aHJlYWQuaAppbWFwZC5odG1s
CQkgICAgbXNnYm9keXN0cnVjdHVyZS5vCSAgICAgdGhyZWFkLm8KaW1hcGQuaHRtbC5pbgkJICAg
IG1zZ2VudmVsb3BlLmMK
--zzz--
EOF
env IMAP_BROKENUIDV=1 MAILDIR=confmdtest PROTOCOL=SMAP1 $IMAPINVOKE <<EOF | sed "$SED"
open INBOX
FETCH 1 CONTENTS=BODY[1.1]
FETCH 1 CONTENTS=BODY.DECODED[1.1]
FETCH 1 CONTENTS=BODY[1.2]
FETCH 1 CONTENTS=BODY.DECODED[1.2]
FETCH 1 CONTENTS=BODY[1.3]
FETCH 1 CONTENTS=BODY.DECODED[1.3]
ADD FOLDER INBOX "" FLAGS=SEEN "INTERNALDATE=03 Aug 2003 03:00:00 -0500"
ADD {.100}
Subject: test add
Mime-Version: 1.0
This is a test of the
.add command.
.
NOOP
COPY 1-2 "" INBOX
NOOP
COPY 1-4 "" INBOX
NOOP
COPY 1-4 "" INBOX
COPY 1-2 "" INBOX
NOOP
ADD FOLDER INBOX "" FLAGS=SEEN "INTERNALDATE=03 Aug 2003 03:00:00 -0500"
ADD {.100}
Subject: test add
Mime-Version: 1.0
This is a test of the
.add command.
.
open INBOX
fetch 10 CONTENTS=HEADERS(Mime-Version)
LOGOUT
EOF
rm -f confmdtest/maildirsize
env IMAP_BROKENUIDV=1 MAILDIR=confmdtest PROTOCOL=SMAP1 $IMAPINVOKE <<EOF | sed "$SED"
open INBOX
COPY 1-10 "" INBOX
NOOP
COPY 1-20 "" INBOX
NOOP
COPY 1-40 "" INBOX
NOOP
COPY 1-80 "" INBOX
NOOP
COPY 1-160 "" INBOX
NOOP
COPY 1-320 "" INBOX
NOOP
LOGOUT
EOF
(
echo "open INBOX"
n=0
while test $n -lt 64
do
	m=$n
	if test "$m" = ""
	then
		m=""
	fi
	echo "STORE ${m}3-${m}5 ${m}7 ${m}9 +FLAGS=DELETED"
	n=`expr $n + 1`
done
echo "LOGOUT"
) | env IMAP_BROKENUIDV=1 MAILDIR=confmdtest PROTOCOL=SMAP1 $IMAPINVOKE | sed "$SED"
env IMAP_BROKENUIDV=1 MAILDIR=confmdtest PROTOCOL=SMAP1 $IMAPINVOKE <<EOF | sed "$SED"
open INBOX
SEARCH UNMARKED NOT DELETED
SEARCH MARKED NOT DELETED
SEARCH UNMARKED DELETED
STORE 1-10 +FLAGS=DRAFT
STORE 15-25 30 +FLAGS=SEEN
SEARCH UNMARKED DRAFT
SEARCH UNMARKED SEEN
EXPUNGE 1-640
ADD FOLDER INBOX "" FLAGS=SEEN "INTERNALDATE=03 Aug 2003 03:00:00 -0500"
ADD {.100}
Subject: iso-8859-1 encoding test: =?iso-8859-1?Q?S=E2m?=
Date: 03 Aug 2003 03:00:00 -0500
Mime-Version: 1.0
This is a test of the
.add command.
.
NOOP
ADD FOLDER INBOX "" FLAGS=SEEN "INTERNALDATE=08 Aug 2003 03:00:00 -0500"
ADD {.100}
Subject: iso-8859-1 encoding test: =?iso-8859-1?Q?S=E2m?=
Date: 05 Aug 2003 05:00:00 -0500
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
Mime-Version: 1.0
S=E2m This is a ttest of the
.add command.
.
NOOP
SEARCH UNMARKED SUBJECT "sâm"
SEARCH UNMARKED HEADER DATE "05 AUG"
SEARCH UNMARKED TEXT "ttest"
SEARCH UNMARKED BODY "sâm"
SEARCH UNMARKED TEXT "sâm"
SEARCH UNMARKED ON "08-Aug-2003"
SEARCH UNMARKED ON "03-Aug-2003"
SEARCH UNMARKED SENTON "05-Aug-2003"
SEARCH UNMARKED SMALLER "200"
SEARCH UNMARKED NOT SMALLER "200"
SEARCH UNMARKED INVALID
LOGOUT
EOF
rm -rf confmdtest confmdtest2
../maildir/maildirmake confmdtest
../maildir/maildirmake confmdtest2
../maildir/maildirmake -f folder1 confmdtest2
../maildir/maildirmake --add test=`pwd`/confmdtest2 confmdtest
../maildir/maildirmake -q20C confmdtest
../maildir/deliverquota confmdtest <<EOF
Subject: testing body.decoded
Mime-Version: 1.0
Content-Type: text/plain
Test
EOF
env IMAP_BROKENUIDV=1 MOVE_EXPUNGE_TO_TRASH=1 MAILDIR=confmdtest PROTOCOL=SMAP1 $IMAPINVOKE <<EOF | sed "$SED"
open INBOX
COPY 1 "" INBOX
NOOP
open INBOX
CREATE INBOX Trash
copy 1 "" INBOX Trash
CREATE INBOX a
MOVE 2 "" INBOX a
LOGOUT
EOF
cat confmdtest/maildirsize
env IMAP_BROKENUIDV=1 MOVE_EXPUNGE_TO_TRASH=1 MAILDIR=confmdtest PROTOCOL=SMAP1 $IMAPINVOKE <<EOF | sed "$SED"
open INBOX a
LOGOUT
EOF
cat confmdtest/maildirsize
env IMAP_BROKENUIDV=1 MOVE_EXPUNGE_TO_TRASH=1 MAILDIR=confmdtest PROTOCOL=SMAP1 $IMAPINVOKE <<EOF | sed "$SED"
sopen "" INBOX a
NOOP
NOOP
STORE 1 FLAGS=REPLIED
NOOP
NOOP
STORE 1 FLAGS=REPLIED
NOOP
NOOP
STORE 1 FLAGS=DELETED
EXPUNGE
EXPUNGE
NOOP
NOOP
EXPUNGE 1
NOOP
LOGOUT
EOF
echo `ls confmdtest/.a/courierimapsnapshots | wc -l`
env IMAP_BROKENUIDV=1 MOVE_EXPUNGE_TO_TRASH=1 MAILDIR=confmdtest PROTOCOL=SMAP1 $IMAPINVOKE <<EOF | sed "$SED"
delete INBOX a
sopen "" INBOX
NOOP
CLOSE
sopen "" INBOX
NOOP
CLOSE
sopen "" INBOX
NOOP
CLOSE
sopen "" INBOX
NOOP
CLOSE
sopen "" INBOX
NOOP
CLOSE
sopen "" INBOX
NOOP
CLOSE
sopen "" INBOX
NOOP
CLOSE
sopen "" INBOX
NOOP
CLOSE
sopen "" INBOX
NOOP
CLOSE
sopen "" INBOX
NOOP
CLOSE
sopen "" INBOX
NOOP
CLOSE
LOGOUT
EOF
echo `ls confmdtest/courierimapsnapshots | wc -l`
touch -t 199901010000 `ls confmdtest/courierimapsnapshots/* | sed -n 1p`
env IMAP_BROKENUIDV=1 MOVE_EXPUNGE_TO_TRASH=1 MAILDIR=confmdtest PROTOCOL=SMAP1 $IMAPINVOKE <<EOF | sed "$SED"
sopen "" INBOX
CLOSE
LOGOUT
EOF
echo `ls confmdtest/courierimapsnapshots | wc -l`
rm -rf confmdtest
../maildir/maildirmake confmdtest
  ../maildir/deliverquota confmdtest <<EOF
Received: by localhost
Subject: test message
From: nobody@localhost
Cc: nobody@localhost
Mime-Version: 1.0
Content-Type: multipart/mixed;
    boundary=abc
--abc
Content-Type: text/plain; charset=iso-8859-1
X-Comment: foo
Mary had a little lamb, its fleece was white as snow.
--abc--
test message
EOF
env IMAP_BROKENUIDV=1 MOVE_EXPUNGE_TO_TRASH=1 MAILDIR=confmdtest PROTOCOL=SMAP1 $IMAPINVOKE <<EOF | sed "$SED"
open INBOX
FETCH 1 CONTENTS=HEADERS
FETCH 1 CONTENTS=RAWHEADERS
FETCH 1 CONTENTS=MIME
FETCH 1 CONTENTS=MIME(Content-Type)
FETCH 1 CONTENTS=HEADERS(Content-Type)
FETCH 1 CONTENTS=HEADERS(:ENVELOPE)
FETCH 1 CONTENTS=HEADERS(:ENVELOPE,Received)
FETCH 1 CONTENTS=HEADERS(Received,:ENVELOPE)
FETCH 1 CONTENTS=HEADERS(:MIME)
FETCH 1 CONTENTS=MIME(:MIME)
LOGOUT
EOF
env IMAP_KEYWORDS=1 IMAP_BROKENUIDV=1 MOVE_EXPUNGE_TO_TRASH=1 MAILDIR=confmdtest PROTOCOL=SMAP1 $IMAPINVOKE <<EOF >testsuite.tmp
open INBOX
CREATE INBOX a
COPY 1 "" INBOX a
OPEN INBOX a
STORE 1 +FLAGS=DELETED +KEYWORDS=-Label1
ADD FOLDER INBOX a
ADD FLAGS=SEEN
ADD KEYWORDS=-Label2
ADD {.}
Subject: test
test
test
.
EXPUNGE
FETCH 1 FLAGS KEYWORDS
COPY 1 "" INBOX
OPEN INBOX
FETCH 1-2 FLAGS KEYWORDS
MOVE 2 "" INBOX a
SOPEN "" INBOX a
FETCH 1-2 FLAGS KEYWORDS
NOOP
EXPUNGE 1
STORE 1 KEYWORDS=-Label3
LOGOUT
EOF
SNAPSHOT=`fgrep '* SNAPSHOT ' testsuite.tmp | cut -c12-`
sed "$SED" <testsuite.tmp
rm -f testsuite.tmp
env IMAP_BROKENUIDV=1 IMAP_KEYWORDS=1 MOVE_EXPUNGE_TO_TRASH=1 MAILDIR=confmdtest PROTOCOL=SMAP1 $IMAPINVOKE <<EOF | sed "$SED"
SOPEN $SNAPSHOT INBOX a
COPY 1 "" INBOX a
NOOP
COPY 1-2 "" INBOX a
NOOP
FETCH 1-4 FLAGS KEYWORDS
STORE 3-4 -KEYWORDS=-Label2
STORE 3-4 -KEYWORDS=-Label3
SEARCH UNMARKED SEEN
SEARCH UNMARKED KEYWORD -Label2
SEARCH UNMARKED KEYWORD -Label3
SEARCH UNMARKED NOT KEYWORD -Label3
LOGOUT
EOF
env IMAP_BROKENUIDV=1 IMAP_KEYWORDS=1 MOVE_EXPUNGE_TO_TRASH=1 MAILDIR=confmdtest PROTOCOL=SMAP1 $IMAPINVOKE <<EOF | sed "$SED"
OPEN INBOX
STORE 1 KEYWORDS=Junk*Junk
LOGOUT
EOF
env IMAP_BROKENUIDV=1 IMAP_KEYWORDS=1 MOVE_EXPUNGE_TO_TRASH=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/'
a1 SELECT INBOX
a2 FETCH 1 FLAGS
a3 STORE 1 FLAGS (\Seen Abra,Cadabra)
a3 LOGOUT
EOF
env IMAP_BROKENUIDV=1 IMAP_KEYWORDS=1 MOVE_EXPUNGE_TO_TRASH=1 MAILDIR=confmdtest PROTOCOL=SMAP1 $IMAPINVOKE <<EOF | sed "$SED"
OPEN INBOX
FETCH 1 FLAGS KEYWORDS
COPY 1 "" INBOX
NOOP
STORE 2 +FLAGS=MARKED
SEARCH UNMARKED SEEN
SEARCH MARKED SEEN
SEARCH ALL SEEN
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
confmdtest	1	1	`pwd`	confmdtest
a	*	indexa
b	*	indexb
EOF
echo "confmdtest2	1	1	`pwd`	confmdtest2" >confmdtest4/indexa || exit 1
echo "aashared	1	1	`pwd`	confmdtest5" >>confmdtest4/indexa || exit 1
echo "confmdtest3	1	1	`pwd`	confmdtest3" >confmdtest4/indexb || exit 1
../maildir/maildirmake -f x confmdtest2
../maildir/maildiracl -set confmdtest2 INBOX.x user=confmdtest aceilrstwx
../maildir/maildiracl -set confmdtest3 INBOX user=confmdtest aceilrstwx
IMAP_SHAREDINDEXFILE=`pwd`/confmdtest4/index
export IMAP_SHAREDINDEXFILE
env AUTHENTICATED=confmdtest IMAP_BROKENUIDV=1 IMAP_KEYWORDS=1 MOVE_EXPUNGE_TO_TRASH=1 MAILDIR=confmdtest PROTOCOL=SMAP1 $IMAPINVOKE <<EOF | sed "$SED"
LIST public
LIST public a
LIST public b
LIST public a confmdtest2
GETACL INBOX
SETACL INBOX "" owner -stwx
SETACL INBOX "" owner aceilrstw
SETACL INBOX "" owner +x
SETACL INBOX "" owner -l
SETACL INBOX "" -owner a
SETACL INBOX "" user=testuser1 ace
SETACL INBOX "" user=testuser1 +x
SETACL INBOX "" user=testuser1 -x
SETACL INBOX "" user=testuser1 -ace
SETACL INBOX "" user=testuser1 ace
DELETEACL INBOX "" user=testuser2
DELETEACL INBOX "" user=testuser1
DELETEACL INBOX "" owner
ACL INBOX
GETACL public b confmdtest3
ACL public b confmdtest3
GETACL public a confmdtest2 x
ACL public a confmdtest2 x
ACL public
ACL public a
OPEN INBOX
ADD FOLDER INBOX "" FLAGS=SEEN,DELETED,MARKED KEYWORDS=keyword1
ADD {.}
Subject: test message 1
test message 1
.
NOOP
FETCH 1 FLAGS KEYWORDS
SETACL INBOX "" owner -w
ADD FOLDER INBOX "" FLAGS=SEEN,DELETED,MARKED KEYWORDS=keyword1
ADD {.}
Subject: test message 1
test message 1
.
NOOP
FETCH 2 FLAGS KEYWORDS
SETACL INBOX "" owner +w owner -s
ADD FOLDER INBOX "" FLAGS=SEEN,DELETED,MARKED KEYWORDS=keyword1
ADD {.}
Subject: test message 1
test message 1
.
NOOP
FETCH 3 FLAGS KEYWORDS
SETACL INBOX "" owner +s owner -t
ADD FOLDER INBOX "" FLAGS=SEEN,DELETED,MARKED KEYWORDS=keyword1
ADD {.}
Subject: test message 1
test message 1
.
NOOP
FETCH 4 FLAGS KEYWORDS
SETACL INBOX "" owner +t owner -i
ADD FOLDER INBOX ""
SETACL INBOX "" owner +i
SETACL public b confmdtest3 "" user=confmdtest -l
STATUS CHEAP public b confmdtest3
SETACL public b confmdtest3 "" user=confmdtest +l
STATUS CHEAP public b confmdtest3
DELETE public b confmdtest3
CREATE INBOX c
SETACL INBOX c "" owner -x
DELETE INBOX c
SETACL INBOX c "" owner +x
DELETE INBOX c
SETACL INBOX "" -owner r
OPEN INBOX
DELETEACL INBOX "" -owner
OPEN INBOX
SETACL INBOX "" -owner i
COPY 1-4 "" INBOX
DELETEACL INBOX "" -owner
COPY 1-4 "" INBOX
CLOSE
CREATE INBOX a
MKDIR INBOX b
SETACL INBOX b "" owner -c
RENAME INBOX a "" INBOX b a
SETACL INBOX b "" owner +c
RENAME INBOX a "" INBOX b a
SETACL INBOX b "" owner -x
RENAME INBOX b "" INBOX a
SETACL INBOX b "" owner +x
RENAME INBOX b "" INBOX a
OPEN INBOX
FETCH 1 FLAGS KEYWORDS
SETACL INBOX "" owner -w
STORE 1 FLAGS=SEEN KEYWORDS=
SETACL INBOX "" owner +w owner -t
STORE 1 FLAGS=MARKED,SEEN,DELETED KEYWORDS=keyword2
SETACL INBOX "" owner +t owner -s
STORE 1 -FLAGS=SEEN,MARKED
SETACL INBOX "" owner +s owner -e
STORE 1 FLAGS=DELETED
EXPUNGE
SETACL INBOX "" owner +e
EXPUNGE
SETACL INBOX "" owner -t
EXPUNGE 1
SETACL INBOX "" owner +t
EXPUNGE 1
LOGOUT
EOF
rm -rf confmdtest*
../maildir/maildirmake confmdtest || exit 1
n=0
while test $n -lt 256
do
	filename=`expr $n + 1000`
	filename="$filename,test:2,S"
	if test `expr $n % 2` = 1
	then
		filename="$filename""T"
	fi
	cat >confmdtest/cur/$filename <<EOF
Subject: test message
test message
EOF
	n=`expr $n + 1`
done
env AUTHENTICATED=user1 IMAP_BROKENUIDV=1 IMAP_KEYWORDS=1 MOVE_EXPUNGE_TO_TRASH=1 MAILDIR=confmdtest PROTOCOL=SMAP1 $IMAPINVOKE <<EOF | sed "$SED"
OPEN INBOX
EXPUNGE
SETACL INBOX "" -owner c
MKDIR INBOX subdir
CREATE INBOX subdir
SETACL INBOX "" -owner ""
MKDIR INBOX subdir
CREATE INBOX subdir
SETACL INBOX "" -owner x
RMDIR INBOX subdir
SETACL INBOX "" -owner ""
RMDIR INBOX subdir
SETACL INBOX subdir "" -owner x
DELETE INBOX subdir
SETACL INBOX subdir "" -owner ""
DELETE INBOX subdir
LOGOUT
EOF
 |