Import upstream v0.16.22, stripped
Upstream commit: 474dd0229cb20cf513036619781ed97bd8073c3f Enterprise-only files removed or emptied: 63 Enterprise-only snippets removed: 117 in 50 files Dangling module declarations removed: 5 Cargo edits turning enterprise off: 14 Verification: clean Enterprise feature gates left for rebuilt features: 19 in 18 files Produced by tools/fork/strip.py. The full report is in docs/fork/strip-reports/ on main.
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
connections: 3
|
||||
state: created
|
||||
|
||||
1 ok select $mailbox
|
||||
2 ok select $mailbox
|
||||
|
||||
# Two connections have mailbox SELECTed, one doesn't.
|
||||
# The \recent flags can be given to either one of the SELECTed connections,
|
||||
# but never for the 3rd. We rely on mailbox state tracking to catch duplicate
|
||||
# \recent flags (which is why there are two FETCH FLAGS commands).
|
||||
|
||||
1 ok append $mailbox (\seen \flagged)
|
||||
* 1 exists
|
||||
2 ok noop
|
||||
* 1 exists
|
||||
3 ok status $mailbox (messages unseen recent)
|
||||
* status $mailbox (messages 1 unseen 0 recent 0)
|
||||
1 ok fetch 1 (uid flags)
|
||||
* 1 fetch (uid $uid1 flags (\seen \flagged))
|
||||
2 ok fetch 1 (uid flags)
|
||||
* 1 fetch (uid $uid1 flags (\seen \flagged))
|
||||
|
||||
2 ok append
|
||||
* 2 exists
|
||||
1 ok noop
|
||||
* 2 exists
|
||||
3 ok status $mailbox (messages unseen recent)
|
||||
* status $mailbox (messages 2 unseen 1 recent 0)
|
||||
1 ok fetch 2 (uid flags)
|
||||
2 ok fetch 2 (uid flags)
|
||||
|
||||
3 ok append
|
||||
3 ok status $mailbox (messages unseen)
|
||||
* status $mailbox (messages 3 unseen 2)
|
||||
2 ok noop
|
||||
* 3 exists
|
||||
1 ok noop
|
||||
* 3 exists
|
||||
1 ok fetch 3 (uid flags)
|
||||
2 ok fetch 3 (uid flags)
|
||||
|
||||
1 append ${mailbox}nonexistent
|
||||
no [trycreate]
|
||||
@@ -0,0 +1,39 @@
|
||||
capabilities: BINARY
|
||||
state: created
|
||||
|
||||
ok append $mailbox ~{{{
|
||||
From: [email protected]
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Mime-Version: 1.0
|
||||
Content-Type: application/octet-stream
|
||||
Content-Transfer-Encoding: binary
|
||||
|
||||
nil
|
||||
|
||||
|
||||
|
||||
}}}
|
||||
|
||||
ok select $mailbox
|
||||
|
||||
# should have been converted to base64, or something
|
||||
ok fetch 1 (body.peek[1])
|
||||
! 1 fetch (body[1] {{{
|
||||
nil
|
||||
|
||||
}}})
|
||||
! 1 fetch (body[1] {{{
|
||||
nil
|
||||
|
||||
}}})
|
||||
! 1 fetch (body[1] ~{{{
|
||||
nil
|
||||
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (binary.size[1] binary.peek[1])
|
||||
! 1 fetch (binary.size[1] 6 binary[1] ~{{{
|
||||
nil
|
||||
|
||||
}}})
|
||||
@@ -0,0 +1,13 @@
|
||||
state: auth
|
||||
|
||||
# Don't confuse with ~{literal8}
|
||||
ok list "" ~foo
|
||||
no select ~foo
|
||||
|
||||
# atom-specials = "(" / ")" / "{" / SP / CTL / list-wildcards /
|
||||
# quoted-specials / resp-specials
|
||||
# quoted-specials = DQUOTE / "\"
|
||||
# resp-specials = "]"
|
||||
# list-wildcards = "%" / "*"
|
||||
no select !#$$&'+,-.0123456789:;<=>?@^_`|[}
|
||||
ok list "" !#$$&'+,-.0123456789:;<=>?@^_`|[}%*
|
||||
@@ -0,0 +1,75 @@
|
||||
# this test assumes that server stores INTERNALDATE timestamps in
|
||||
# EET/EEST timezones (or stores/fetches them using the same timezones as
|
||||
# they were APPENDed with)
|
||||
|
||||
# 1) Timezone changes from EET +0200 -> EEST +0300
|
||||
# 1a) BEFORE
|
||||
ok search before 24-mar-2007
|
||||
* search
|
||||
ok search before 25-mar-2007
|
||||
* search 1
|
||||
ok search before 26-mar-2007
|
||||
* search 1 2 3 4 5 6
|
||||
ok search before 27-mar-2007
|
||||
* search 1 2 3 4 5 6 7
|
||||
|
||||
# 1b) ON
|
||||
ok search on 23-mar-2007
|
||||
* search
|
||||
ok search on 24-mar-2007
|
||||
* search 1
|
||||
ok search on 25-mar-2007
|
||||
* search 2 3 4 5 6
|
||||
ok search on 26-mar-2007
|
||||
* search 7
|
||||
|
||||
# 1c) SINCE
|
||||
ok search 1:7 since 24-mar-2007
|
||||
* search 1 2 3 4 5 6 7
|
||||
ok search 1:7 since 25-mar-2007
|
||||
* search 2 3 4 5 6 7
|
||||
ok search 1:7 since 26-mar-2007
|
||||
* search 7
|
||||
ok search 1:7 since 27-mar-2007
|
||||
* search
|
||||
|
||||
# 2) Timezone changes from EEST +0300 -> EET +0200
|
||||
# 2a) BEFORE
|
||||
ok search 8:* before 27-oct-2007
|
||||
* search
|
||||
ok search 8:* before 28-oct-2007
|
||||
* search 8
|
||||
ok search 8:* before 29-oct-2007
|
||||
* search 8 9 10 11 12 13 14 15
|
||||
ok search 8:* before 30-oct-2007
|
||||
* search 8 9 10 11 12 13 14 15 16
|
||||
|
||||
# 2b) ON
|
||||
ok search 8:* on 26-oct-2007
|
||||
* search
|
||||
ok search 8:* on 27-oct-2007
|
||||
* search 8
|
||||
ok search 8:* on 28-oct-2007
|
||||
* search 9 10 11 12 13 14 15
|
||||
ok search 8:* on 29-oct-2007
|
||||
* search 16
|
||||
|
||||
# 2c) SINCE
|
||||
ok search 8:* since 27-oct-2007
|
||||
* search 8 9 10 11 12 13 14 15 16
|
||||
ok search 8:* since 28-oct-2007
|
||||
* search 9 10 11 12 13 14 15 16
|
||||
ok search 8:* since 29-oct-2007
|
||||
* search 16
|
||||
ok search 8:* since 30-oct-2007
|
||||
* search
|
||||
|
||||
# 3) Try a couple of NOTs
|
||||
ok search 1:7 not before 26-mar-2007
|
||||
* search 7
|
||||
ok search 1:7 not on 25-mar-2007
|
||||
* search 1 7
|
||||
ok search 8:* not since 28-oct-2007
|
||||
* search 8
|
||||
ok search 8:* not on 28-oct-2007
|
||||
* search 8 16
|
||||
@@ -0,0 +1,80 @@
|
||||
From user@domain Sat Mar 24 23:00:00 2007 +0200
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
body
|
||||
|
||||
From user@domain Sun Mar 25 00:00:00 2007 +0200
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
body
|
||||
|
||||
From user@domain Sun Mar 25 01:00:00 2007 +0200
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
body
|
||||
|
||||
From user@domain Sun Mar 25 02:00:00 2007 +0200
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
body
|
||||
|
||||
From user@domain Sun Mar 25 04:00:00 2007 +0300
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
body
|
||||
|
||||
From user@domain Sun Mar 25 23:00:00 2007 +0300
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
body
|
||||
|
||||
From user@domain Mon Mar 26 00:00:00 2007 +0300
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
body
|
||||
|
||||
From user@domain Sat Oct 27 23:00:00 2007 +0300
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
body
|
||||
|
||||
From user@domain Sun Oct 28 00:00:00 2007 +0300
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
body
|
||||
|
||||
From user@domain Sun Oct 28 01:00:00 2007 +0300
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
body
|
||||
|
||||
From user@domain Sun Oct 28 02:00:00 2007 +0300
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
body
|
||||
|
||||
From user@domain Sun Oct 28 03:00:00 2007 +0300
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
body
|
||||
|
||||
From user@domain Sun Oct 28 03:00:00 2007 +0200
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
body
|
||||
|
||||
From user@domain Sun Oct 28 04:00:00 2007 +0200
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
body
|
||||
|
||||
From user@domain Sun Oct 28 23:00:00 2007 +0200
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
body
|
||||
|
||||
From user@domain Mon Oct 29 00:00:00 2007 +0200
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
body
|
||||
|
||||
@@ -0,0 +1,235 @@
|
||||
state: created
|
||||
capabilities: CATENATE
|
||||
|
||||
"" delete ${mailbox}2
|
||||
|
||||
ok append $mailbox (\seen \flagged) catenate (text {{{
|
||||
From: [email protected]
|
||||
|
||||
Hello world body
|
||||
|
||||
}}})
|
||||
|
||||
ok append $mailbox (\seen \flagged) catenate (text {{{
|
||||
From: [email protected]
|
||||
|
||||
Lookslike: header
|
||||
|
||||
Another body
|
||||
|
||||
}}})
|
||||
|
||||
ok select $mailbox
|
||||
* ok [uidvalidity $uidv]
|
||||
|
||||
ok fetch 1:2 (uid body.peek[])
|
||||
* 1 fetch (uid $uid body[] {{{
|
||||
From: [email protected]
|
||||
|
||||
Hello world body
|
||||
|
||||
}}})
|
||||
* 2 fetch (uid $uid2 body[] {{{
|
||||
From: [email protected]
|
||||
|
||||
Lookslike: header
|
||||
|
||||
Another body
|
||||
|
||||
}}})
|
||||
|
||||
ok create ${mailbox}2
|
||||
|
||||
ok append ${mailbox}2 (\seen \flagged) catenate (url "/$mailbox_url/;uid=$uid/;section=header" text {{{
|
||||
body1
|
||||
|
||||
}}})
|
||||
|
||||
ok append ${mailbox}2 (\seen \flagged) catenate (url "/$mailbox_url;uidvalidity=$uidv/;uid=$uid/;section=header" text {{{
|
||||
body2
|
||||
|
||||
}}})
|
||||
|
||||
ok append ${mailbox}2 (\seen \flagged) catenate (url "/$mailbox_url/;uid=$uid2/;section=text" text {{{
|
||||
body3
|
||||
|
||||
}}})
|
||||
|
||||
ok append ${mailbox}2 (\seen \flagged) catenate (url "/$mailbox_url/;uid=$uid2/;section=1" text {{{
|
||||
body4
|
||||
|
||||
}}})
|
||||
|
||||
ok append ${mailbox}2 (\seen \flagged) catenate (text {{{
|
||||
From: [email protected]
|
||||
Subject: test header
|
||||
|
||||
|
||||
}}} url "/$mailbox_url/;uid=$uid/;section=1" text {{{
|
||||
|
||||
suffix
|
||||
|
||||
}}})
|
||||
|
||||
ok append ${mailbox}2 (\seen \flagged) catenate (text {{{
|
||||
From: [email protected]
|
||||
|
||||
}}} text {{{
|
||||
Subject: hdr2
|
||||
|
||||
}}} text {{{
|
||||
|
||||
body6
|
||||
|
||||
}}})
|
||||
|
||||
ok append ${mailbox}2 (\seen \flagged) catenate (url "/$mailbox_url/;uid=$uid2/;partial=100000.1" text {{{
|
||||
Hdr: foo
|
||||
|
||||
body7
|
||||
|
||||
}}})
|
||||
|
||||
#
|
||||
# Try invalid URLs
|
||||
#
|
||||
|
||||
no append ${mailbox}2 (\seen \flagged) catenate (url "/$mailbox_url;uidvalidity=12345/;uid=$uid/;section=header" text {{{
|
||||
body
|
||||
|
||||
}}})
|
||||
|
||||
no append ${mailbox}2 (\seen \flagged) catenate (text {{{
|
||||
hdr: 1
|
||||
|
||||
}}} url "/$mailbox_url;uidvalidity=12345/;uid=$uid/;section=header")
|
||||
|
||||
no append ${mailbox}2 (\seen \flagged) catenate (text {{{
|
||||
hdr: 1
|
||||
|
||||
}}} url "/$mailbox_url;uidvalidity=12345/;uid=$uid/;section=header" text {{{
|
||||
hdr: 2
|
||||
|
||||
}}})
|
||||
|
||||
no append ${mailbox}2 (\seen \flagged) catenate (text {{{
|
||||
hdr: 1
|
||||
|
||||
}}} url "/$mailbox_url;uidvalidity=12345/;uid=$uid/;section=header" text {{{
|
||||
hdr: 2
|
||||
|
||||
}}} url "/$mailbox_url;uidvalidity=12345/;uid=$uid/;section=header" text {{{
|
||||
hdr: 3
|
||||
|
||||
}}})
|
||||
|
||||
no append ${mailbox}2 (\seen \flagged) catenate (text {{{
|
||||
hdr: 1
|
||||
|
||||
}}} url "/$mailbox_url/;uid=$uid/;section=header" text {{{
|
||||
hdr: 2
|
||||
|
||||
}}} url "/$mailbox_url;uidvalidity=12345/;uid=$uid/;section=header" text {{{
|
||||
hdr: 3
|
||||
|
||||
}}})
|
||||
|
||||
no append ${mailbox}2 (\seen \flagged) catenate (text {{{
|
||||
hdr: 1
|
||||
|
||||
}}} url "/$mailbox_url;uidvalidity=12345/;uid=$uid/;section=header" text {{{
|
||||
hdr: 2
|
||||
|
||||
}}} url "/$mailbox_url/;uid=$uid/;section=header" text {{{
|
||||
hdr: 3
|
||||
|
||||
}}})
|
||||
|
||||
no append ${mailbox}2 (\seen \flagged) catenate (url "/$mailbox_url;uidvalidity=12345/;uid=$uid/;section=header" url "/$mailbox_url/;uid=$uid/;section=header")
|
||||
no append ${mailbox}2 (\seen \flagged) catenate (url "/$mailbox_url/;uid=$uid/;section=header" url "/$mailbox_url;uidvalidity=12345/;uid=$uid/;section=header")
|
||||
|
||||
#
|
||||
# verify previous appends
|
||||
#
|
||||
ok select ${mailbox}2
|
||||
ok fetch 1:* body.peek[]
|
||||
* 1 fetch (body[] {{{
|
||||
From: [email protected]
|
||||
|
||||
body1
|
||||
|
||||
}}})
|
||||
* 2 fetch (body[] {{{
|
||||
From: [email protected]
|
||||
|
||||
body2
|
||||
|
||||
}}})
|
||||
* 3 fetch (body[] {{{
|
||||
Lookslike: header
|
||||
|
||||
Another body
|
||||
body3
|
||||
|
||||
}}})
|
||||
* 4 fetch (body[] {{{
|
||||
Lookslike: header
|
||||
|
||||
Another body
|
||||
body4
|
||||
|
||||
}}})
|
||||
* 5 fetch (body[] {{{
|
||||
From: [email protected]
|
||||
Subject: test header
|
||||
|
||||
Hello world body
|
||||
|
||||
suffix
|
||||
|
||||
}}})
|
||||
* 6 fetch (body[] {{{
|
||||
From: [email protected]
|
||||
Subject: hdr2
|
||||
|
||||
body6
|
||||
|
||||
}}})
|
||||
* 7 fetch (body[] {{{
|
||||
Hdr: foo
|
||||
|
||||
body7
|
||||
|
||||
}}})
|
||||
|
||||
|
||||
#
|
||||
# Try appending to nonexistent mailbox
|
||||
#
|
||||
|
||||
append ${mailbox}nonexistent catenate (url "/$mailbox_url/;uid=$uid/;section=1")
|
||||
no [trycreate]
|
||||
|
||||
append ${mailbox}nonexistent catenate (url "/$mailbox_url/;uid=$uid/;section=1" text {{{
|
||||
hello
|
||||
}}})
|
||||
no [trycreate]
|
||||
|
||||
append ${mailbox}nonexistent catenate (text {{{
|
||||
hello
|
||||
}}} url "/$mailbox_url/;uid=$uid/;section=1")
|
||||
no [trycreate]
|
||||
|
||||
append ${mailbox}nonexistent (\seen \flagged) catenate (text {{{
|
||||
hdr1: 1
|
||||
|
||||
}}} url "/$mailbox_url;uidvalidity=12345/;uid=$uid/;section=header" text {{{
|
||||
hdr2: 2
|
||||
|
||||
}}} url "/$mailbox_url/;uid=$uid/;section=header" text {{{
|
||||
hdr3: 3
|
||||
|
||||
}}})
|
||||
no [trycreate]
|
||||
|
||||
ok noop
|
||||
@@ -0,0 +1,130 @@
|
||||
state: created
|
||||
capabilities: CATENATE MULTIAPPEND
|
||||
|
||||
ok append $mailbox catenate (text {{{
|
||||
From: [email protected]
|
||||
|
||||
Hello world body
|
||||
|
||||
}}}) catenate (text {{{
|
||||
From: [email protected]
|
||||
|
||||
Second body
|
||||
|
||||
}}})
|
||||
|
||||
ok select $mailbox
|
||||
* ok [uidvalidity $uidv]
|
||||
|
||||
ok fetch 1:2 (uid body.peek[])
|
||||
* 1 fetch (uid $uid body[] {{{
|
||||
From: [email protected]
|
||||
|
||||
Hello world body
|
||||
|
||||
}}})
|
||||
* 2 fetch (uid $uid2 body[] {{{
|
||||
From: [email protected]
|
||||
|
||||
Second body
|
||||
|
||||
}}})
|
||||
|
||||
ok append ${mailbox} catenate (url "/$mailbox_url/;uid=$uid/;section=header" text {{{
|
||||
body1
|
||||
|
||||
}}}) catenate (url "/$mailbox_url/;uid=$uid2/;section=header" text {{{
|
||||
body2
|
||||
|
||||
}}})
|
||||
|
||||
ok append ${mailbox} catenate (url "/$mailbox_url/;uid=$uid") catenate (url "/$mailbox_url/;uid=$uid2/;section=header" text {{{
|
||||
body3
|
||||
|
||||
}}})
|
||||
|
||||
ok append ${mailbox} catenate (url "/$mailbox_url/;uid=$uid") {{{
|
||||
New: Message
|
||||
|
||||
body4
|
||||
|
||||
}}}
|
||||
|
||||
ok append ${mailbox} catenate (url "/$mailbox_url/;uid=$uid") (\answered) {{{
|
||||
New: Message
|
||||
|
||||
body5
|
||||
|
||||
}}}
|
||||
|
||||
ok noop
|
||||
|
||||
ok fetch 3:* body.peek[]
|
||||
* 3 fetch (body[] {{{
|
||||
From: [email protected]
|
||||
|
||||
body1
|
||||
|
||||
}}})
|
||||
* 4 fetch (body[] {{{
|
||||
From: [email protected]
|
||||
|
||||
body2
|
||||
|
||||
}}})
|
||||
* 5 fetch (body[] {{{
|
||||
From: [email protected]
|
||||
|
||||
Hello world body
|
||||
|
||||
}}})
|
||||
* 6 fetch (body[] {{{
|
||||
From: [email protected]
|
||||
|
||||
body3
|
||||
|
||||
}}})
|
||||
* 7 fetch (body[] {{{
|
||||
From: [email protected]
|
||||
|
||||
Hello world body
|
||||
|
||||
}}})
|
||||
* 8 fetch (body[] {{{
|
||||
New: Message
|
||||
|
||||
body4
|
||||
|
||||
}}})
|
||||
* 9 fetch (body[] {{{
|
||||
From: [email protected]
|
||||
|
||||
Hello world body
|
||||
|
||||
}}})
|
||||
* 10 fetch (body[] {{{
|
||||
New: Message
|
||||
|
||||
body5
|
||||
|
||||
}}})
|
||||
|
||||
#
|
||||
# Try invalid URLs
|
||||
#
|
||||
|
||||
no append ${mailbox} (\seen \flagged) catenate (url "/$mailbox_url;uidvalidity=12345/;uid=$uid/;section=header") catenate (url "/$mailbox_url/;uid=$uid")
|
||||
|
||||
no append ${mailbox} (\seen \flagged) catenate (url "/$mailbox_url;uidvalidity=12345/;uid=$uid/;section=header") catenate (url "/$mailbox_url/;uid=$uid" text {{{
|
||||
hello
|
||||
}}})
|
||||
|
||||
no append ${mailbox} (\seen \flagged) catenate (url "/$mailbox_url;uidvalidity=12345/;uid=$uid/;section=header") catenate (text {{{
|
||||
hello
|
||||
}}})
|
||||
|
||||
no append ${mailbox} (\seen \flagged) catenate (url "/$mailbox_url;uidvalidity=12345/;uid=$uid/;section=header") {{{
|
||||
hello
|
||||
}}}
|
||||
|
||||
ok noop
|
||||
@@ -0,0 +1,9 @@
|
||||
connections: 2
|
||||
messages: 3
|
||||
|
||||
1 ok store 1,3 +flags \deleted
|
||||
1 ok close
|
||||
|
||||
2 ok noop
|
||||
* $1 expunge
|
||||
* $3 expunge
|
||||
@@ -0,0 +1,48 @@
|
||||
connections: 2
|
||||
state: created
|
||||
|
||||
1 ok select ${mailbox}
|
||||
1 ok append
|
||||
1 ok append
|
||||
1 ok append
|
||||
1 ok append
|
||||
1 ok append
|
||||
# make sure the server sees the appended messages
|
||||
1 ok check
|
||||
|
||||
2 "" delete ${mailbox}2
|
||||
2 ok create ${mailbox}2
|
||||
2 ok select ${mailbox}2
|
||||
|
||||
1 ok store 1 flags (\seen)
|
||||
1 ok store 2 flags (\answered \flagged)
|
||||
1 ok store 5 flags (\flagged $$keyword1 $$keyword2)
|
||||
|
||||
1 ok fetch 1:5 (internaldate)
|
||||
* 1 fetch (internaldate $date1)
|
||||
* 2 fetch (internaldate $date2)
|
||||
* 4 fetch (internaldate $date4)
|
||||
* 5 fetch (internaldate $date5)
|
||||
1 ok copy 1:2,4 ${mailbox}2
|
||||
|
||||
2 ok noop
|
||||
* 3 exists
|
||||
#* 3 recent
|
||||
|
||||
2 ok fetch 1:3 (flags internaldate)
|
||||
? 1 fetch (flags (\seen) internaldate $date1)
|
||||
? 2 fetch (flags (\answered \flagged) internaldate $date2)
|
||||
? 3 fetch (flags () internaldate $date4)
|
||||
|
||||
# keywords aren't required to be created on COPY, so help the server here
|
||||
2 ok store 3 +flags ($$keyword1 $$keyword2)
|
||||
|
||||
1 ok copy 5 ${mailbox}2
|
||||
2 ok noop
|
||||
* 4 exists
|
||||
|
||||
2 ok fetch 4 (flags internaldate)
|
||||
* 4 fetch (flags (\flagged $$keyword1 $$keyword2) internaldate $date5)
|
||||
|
||||
2 ok close
|
||||
2 "" delete ${mailbox}2
|
||||
@@ -0,0 +1,42 @@
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
From: [email protected]
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Subject: s1
|
||||
|
||||
body1
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
From: [email protected]
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Subject: s22
|
||||
|
||||
body22
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
From: [email protected]
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Subject: s333
|
||||
|
||||
body33
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
From: [email protected]
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Subject: s4444
|
||||
|
||||
body4444
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
From: [email protected]
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Subject: s55555
|
||||
|
||||
body55555
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
From: [email protected]
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Subject: s666666
|
||||
|
||||
body666666
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
capabilities: ESEARCH
|
||||
messages: all
|
||||
|
||||
ok store 4 +flags \deleted
|
||||
ok expunge
|
||||
|
||||
# SEARCH ALL
|
||||
|
||||
ok search return (all) all
|
||||
* esearch (tag $tag) all 1:6
|
||||
ok search return () all
|
||||
* esearch (tag $tag) all 1:6
|
||||
ok search return (min) all
|
||||
* esearch (tag $tag) min 1
|
||||
ok search return (max) all
|
||||
* esearch (tag $tag) max 6
|
||||
ok search return (count) all
|
||||
* esearch (tag $tag) count 6
|
||||
|
||||
# UID SEARCH ALL
|
||||
|
||||
ok fetch 1:* UID
|
||||
* 1 fetch (uid $uid1)
|
||||
* 2 fetch (uid $uid2)
|
||||
* 3 fetch (uid $uid3)
|
||||
* 4 fetch (uid $uid4)
|
||||
* 5 fetch (uid $uid5)
|
||||
* 6 fetch (uid $uid6)
|
||||
|
||||
ok uid search return (all) all
|
||||
* esearch (tag $tag) uid all $uid1:$uid3,$uid4:$uid6
|
||||
ok uid search return () all
|
||||
* esearch (tag $tag) uid all $uid1:$uid3,$uid4:$uid6
|
||||
ok uid search return (min) all
|
||||
* esearch (tag $tag) uid min $uid1
|
||||
ok uid search return (max) all
|
||||
* esearch (tag $tag) uid max $uid6
|
||||
ok uid search return (count) all
|
||||
* esearch (tag $tag) uid count 6
|
||||
|
||||
# \Seen flag test
|
||||
|
||||
ok store 2,4 +flags \seen
|
||||
|
||||
ok uid search return (all) seen
|
||||
* esearch (tag $tag) uid all $uid2,$uid4
|
||||
ok uid search return () seen
|
||||
* esearch (tag $tag) uid all $uid2,$uid4
|
||||
ok uid search return (min) seen
|
||||
* esearch (tag $tag) uid min $uid2
|
||||
ok uid search return (max) seen
|
||||
* esearch (tag $tag) uid max $uid4
|
||||
ok uid search return (count) seen
|
||||
* esearch (tag $tag) uid count 2
|
||||
|
||||
# nonexistent
|
||||
|
||||
ok search return () 1000
|
||||
* esearch (tag $tag)
|
||||
ok search return (min) 1000
|
||||
* esearch (tag $tag)
|
||||
ok search return (max) 1000
|
||||
* esearch (tag $tag)
|
||||
ok search return (count) 1000
|
||||
* esearch (tag $tag) count 0
|
||||
|
||||
# UID nonexistent
|
||||
|
||||
ok uid search return () 1000
|
||||
* esearch (tag $tag) uid
|
||||
ok uid search return (min) 1000
|
||||
* esearch (tag $tag) uid
|
||||
ok uid search return (max) 1000
|
||||
* esearch (tag $tag) uid
|
||||
ok uid search return (count) 1000
|
||||
* esearch (tag $tag) uid count 0
|
||||
@@ -0,0 +1,38 @@
|
||||
capabilities: ESEARCH CONDSTORE
|
||||
messages: 4
|
||||
|
||||
# ENABLE is valid only in authenticated state. we could do enable+select
|
||||
# manually here also, but lets just make sure that switching it on via
|
||||
# condstore-enabling command works as well (since that is valid)
|
||||
ok fetch 1 modseq
|
||||
* ok [highestmodseq $highestmodseq]
|
||||
|
||||
ok store 1 +flags \seen
|
||||
* 1 fetch (modseq ($modseq1))
|
||||
ok store 3 +flags \seen
|
||||
* 3 fetch (modseq ($modseq3))
|
||||
ok store 2 +flags \seen
|
||||
* 2 fetch (modseq ($modseq2))
|
||||
ok store 4 +flags \seen
|
||||
* 4 fetch (modseq ($modseq4))
|
||||
|
||||
ok search return (min) 1:3 modseq "/flags/\\seen" all $highestmodseq
|
||||
* esearch (tag $tag) min 1 modseq $modseq4
|
||||
|
||||
ok search return (max) 1:3 modseq "/flags/\\seen" all $highestmodseq
|
||||
* esearch (tag $tag) max 3 modseq $modseq4
|
||||
|
||||
ok search return () 1:3 modseq "/flags/\\seen" all $highestmodseq
|
||||
* esearch (tag $tag) all 1:3 modseq $modseq4
|
||||
|
||||
ok search return (min max) 2:3 modseq "/flags/\\seen" all $highestmodseq
|
||||
* esearch (tag $tag) min 2 max 3 modseq $modseq4
|
||||
|
||||
ok search return (all) 2:4 modseq "/flags/\\seen" all $modseq3
|
||||
* esearch (tag $tag) all 2,4 modseq $modseq4
|
||||
|
||||
ok search return (all) 2:4 modseq "/flags/\\seen" all $modseq2
|
||||
* esearch (tag $tag) all 4 modseq $modseq4
|
||||
|
||||
ok search return (all) 2:4 modseq "/flags/\\seen" all $modseq4
|
||||
* esearch (tag $tag) modseq $modseq4
|
||||
@@ -0,0 +1,28 @@
|
||||
From user@domain Fri Feb 22 17:06:21 2008
|
||||
|
||||
1
|
||||
|
||||
From user@domain Fri Feb 22 17:06:22 2008
|
||||
|
||||
2
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
|
||||
3
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
|
||||
4
|
||||
|
||||
From user@domain Fri Feb 22 17:06:25 2008
|
||||
|
||||
5
|
||||
|
||||
From user@domain Fri Feb 22 17:06:25 2008
|
||||
|
||||
6
|
||||
|
||||
From user@domain Fri Feb 22 17:06:25 2008
|
||||
|
||||
7
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
capabilities: ESORT
|
||||
messages: 5
|
||||
|
||||
ok sort return (min) (arrival) us-ascii 1:5
|
||||
* esearch (tag $tag) min 1
|
||||
ok sort return (max) (arrival) us-ascii 1:5
|
||||
* esearch (tag $tag) max 5
|
||||
ok sort return (all) (arrival) us-ascii 1:5
|
||||
* esearch (tag $tag) all 1:5
|
||||
ok sort return (count) (arrival) us-ascii 1:5
|
||||
* esearch (tag $tag) count 5
|
||||
@@ -0,0 +1,62 @@
|
||||
connections: 2
|
||||
messages: 8
|
||||
|
||||
# get UIDs
|
||||
1 ok fetch 1:4 uid
|
||||
* 1 fetch (uid $uid1)
|
||||
* 2 fetch (uid $uid2)
|
||||
* 3 fetch (uid $uid3)
|
||||
* 4 fetch (uid $uid4)
|
||||
|
||||
# 1) test that expunges work ok and session 2 fetch sees 1's flag changes.
|
||||
1 ok store 1,3 flags \deleted
|
||||
* 1 fetch (flags (\deleted))
|
||||
* 3 fetch (flags (\deleted))
|
||||
1 ok store 2,4 flags \seen
|
||||
* 2 fetch (flags (\seen))
|
||||
* 4 fetch (flags (\seen))
|
||||
1 ok expunge
|
||||
* $1 expunge
|
||||
* $3 expunge
|
||||
|
||||
2 ok fetch 2,4 (uid)
|
||||
* 2 fetch (uid $uid2)
|
||||
* 4 fetch (uid $uid4)
|
||||
2 ok fetch 2,4 (uid)
|
||||
* 2 fetch (uid $uid2)
|
||||
* 4 fetch (uid $uid4)
|
||||
2 ok check
|
||||
* $1 expunge
|
||||
* $3 expunge
|
||||
2 ok fetch 1:2 (uid flags)
|
||||
* 1 fetch (uid $uid2 flags (\seen))
|
||||
* 2 fetch (uid $uid4 flags (\seen))
|
||||
|
||||
# 2) test that session 2 can update flags while some messages are expunged
|
||||
1 ok store 2 +flags \deleted
|
||||
1 ok expunge
|
||||
|
||||
2 ok store 1 flags \answered
|
||||
* 1 fetch (flags (\answered))
|
||||
1 ok check
|
||||
* 1 fetch (flags (\answered))
|
||||
2 ok noop
|
||||
* 2 expunge
|
||||
|
||||
# 3) check notices flag changes correctly with expunges
|
||||
1 ok store 1,3 +flags \deleted
|
||||
1 ok store 2,4 flags \flagged
|
||||
1 ok expunge
|
||||
2 ok check
|
||||
* $1 expunge
|
||||
* $2 fetch (flags (\flagged))
|
||||
* $3 expunge
|
||||
* $4 fetch (flags (\flagged))
|
||||
|
||||
# 4) expunging while message is already expunged
|
||||
1 ok store 1 +flags \deleted
|
||||
2 ok store 1 +flags \deleted
|
||||
1 ok expunge
|
||||
* 1 expunge
|
||||
2 ok expunge
|
||||
* 1 expunge
|
||||
@@ -0,0 +1,44 @@
|
||||
connections: 2
|
||||
messages: 6
|
||||
|
||||
1 ok fetch 2,4 uid
|
||||
* 2 fetch (uid $uid2)
|
||||
* 4 fetch (uid $uid4)
|
||||
|
||||
# UID FETCH
|
||||
1 ok store 1,3 +flags \deleted
|
||||
1 ok expunge
|
||||
* $1 expunge
|
||||
* $3 expunge
|
||||
|
||||
2 ok uid fetch $uid2,$uid4 uid
|
||||
* $2 fetch (uid $uid2)
|
||||
* $4 fetch (uid $uid4)
|
||||
2 ok noop
|
||||
|
||||
# UID STORE
|
||||
1 ok store 1 +flags \deleted
|
||||
1 ok expunge
|
||||
* 1 expunge
|
||||
|
||||
2 ok uid store $uid4 flags \seen
|
||||
* $2 fetch (uid $uid4 flags (\seen))
|
||||
2 ok noop
|
||||
|
||||
# Make sure CHECK works just as well as NOOP
|
||||
1 ok store 1 +flags \deleted
|
||||
1 ok expunge
|
||||
* 1 expunge
|
||||
2 ok check
|
||||
* 1 expunge
|
||||
|
||||
# Make sure FETCH, STORE and SEARCH don't trigger EXPUNGE
|
||||
1 ok store 1 +flags \deleted
|
||||
1 ok expunge
|
||||
|
||||
2 ok fetch 2 flags
|
||||
! $1 expunge
|
||||
2 ok store 2 flags (\seen)
|
||||
! $1 expunge
|
||||
2 ok search all
|
||||
! $1 expunge
|
||||
@@ -0,0 +1,54 @@
|
||||
messages: 3
|
||||
|
||||
ok status $mailbox (uidnext)
|
||||
* status $mailbox (uidnext $uidnext)
|
||||
|
||||
ok fetch 1:3 uid
|
||||
* 1 fetch (uid $uid1)
|
||||
* 2 fetch (uid $uid2)
|
||||
* 3 fetch (uid $uid3)
|
||||
|
||||
ok fetch 3:1 uid
|
||||
* 1 fetch (uid $uid1)
|
||||
* 2 fetch (uid $uid2)
|
||||
* 3 fetch (uid $uid3)
|
||||
|
||||
ok fetch 1,* uid
|
||||
* 1 fetch (uid $uid1)
|
||||
* 3 fetch (uid $uid3)
|
||||
|
||||
ok fetch * uid
|
||||
* 3 fetch (uid $uid3)
|
||||
|
||||
ok fetch *:1 uid
|
||||
* 1 fetch (uid $uid1)
|
||||
* 2 fetch (uid $uid2)
|
||||
* 3 fetch (uid $uid3)
|
||||
|
||||
ok uid fetch $uidnext:* uid
|
||||
* 3 fetch (uid $uid3)
|
||||
|
||||
# break seq=uid map
|
||||
ok store 2 flags \deleted
|
||||
ok expunge
|
||||
* 2 expunge
|
||||
|
||||
ok uid fetch $uidnext:* uid
|
||||
* 2 fetch (uid $uid3)
|
||||
ok uid fetch 1:* uid
|
||||
* 1 fetch (uid $uid1)
|
||||
* 2 fetch (uid $uid3)
|
||||
ok uid fetch $uid2 uid
|
||||
! 1 fetch (uid $uid1)
|
||||
! 2 fetch (uid $uid3)
|
||||
ok uid fetch $uid1,* uid
|
||||
* 1 fetch (uid $uid1)
|
||||
* 2 fetch (uid $uid3)
|
||||
|
||||
# test macros
|
||||
ok fetch 1 full
|
||||
* 1 fetch (flags () internaldate $intdate1 rfc822.size $size1 envelope ($!unordered) body ($!unordered))
|
||||
ok fetch 1 all
|
||||
* 1 fetch (flags () internaldate $intdate1 rfc822.size $size1 envelope ($!unordered))
|
||||
ok fetch 1 fast
|
||||
* 1 fetch (flags () internaldate $intdate1 rfc822.size $size1)
|
||||
@@ -0,0 +1,104 @@
|
||||
capabilities: BINARY
|
||||
messages: all
|
||||
|
||||
# This is the fetch-body-mime test, except with body[] changed to binary[].
|
||||
# The idea is to verify that binary[] works correctly when it doesn't actually
|
||||
# have to convert anything.
|
||||
|
||||
ok fetch 1 (binary.peek[])
|
||||
* 1 fetch (binary[] {{{
|
||||
From: [email protected]
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Mime-Version: 1.0
|
||||
Content-Type: multipart/mixed; boundary="foo
|
||||
bar"
|
||||
|
||||
Root MIME prologue
|
||||
|
||||
--foo bar
|
||||
Content-Type: text/x-myown; charset=us-ascii
|
||||
|
||||
hello
|
||||
|
||||
--foo bar
|
||||
Content-Type: message/rfc822
|
||||
|
||||
From: [email protected]
|
||||
Date: Sun, 12 Aug 2012 12:34:56 +0300
|
||||
Subject: submsg
|
||||
Content-Type: multipart/alternative; boundary="sub1"
|
||||
|
||||
Sub MIME prologue
|
||||
--sub1
|
||||
Content-Type: text/html
|
||||
|
||||
<p>Hello world</p>
|
||||
|
||||
--sub1
|
||||
Content-Type: text/plain
|
||||
|
||||
Hello another world
|
||||
|
||||
--sub1--
|
||||
Sub MIME epilogue
|
||||
|
||||
--foo bar--
|
||||
Root MIME epilogue
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (binary.size[])
|
||||
* 1 fetch (binary.size[] 602)
|
||||
|
||||
ok fetch 1 (binary.size[1])
|
||||
* 1 fetch (binary.size[1] 7)
|
||||
|
||||
ok fetch 1 (binary.peek[1])
|
||||
* 1 fetch (binary[1] {{{
|
||||
hello
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (binary.peek[2])
|
||||
* 1 fetch (binary[2] {{{
|
||||
From: [email protected]
|
||||
Date: Sun, 12 Aug 2012 12:34:56 +0300
|
||||
Subject: submsg
|
||||
Content-Type: multipart/alternative; boundary="sub1"
|
||||
|
||||
Sub MIME prologue
|
||||
--sub1
|
||||
Content-Type: text/html
|
||||
|
||||
<p>Hello world</p>
|
||||
|
||||
--sub1
|
||||
Content-Type: text/plain
|
||||
|
||||
Hello another world
|
||||
|
||||
--sub1--
|
||||
Sub MIME epilogue
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (binary.size[2])
|
||||
* 1 fetch (binary.size[2] 298)
|
||||
|
||||
ok fetch 1 (binary.size[2.1])
|
||||
* 1 fetch (binary.size[2.1] 20)
|
||||
|
||||
ok fetch 1 (binary.peek[2.1])
|
||||
* 1 fetch (binary[2.1] {{{
|
||||
<p>Hello world</p>
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (binary.peek[2.2])
|
||||
* 1 fetch (binary[2.2] {{{
|
||||
Hello another world
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (binary.size[2.2])
|
||||
* 1 fetch (binary.size[2.2] 21)
|
||||
@@ -0,0 +1,67 @@
|
||||
capabilities: BINARY
|
||||
messages: all
|
||||
|
||||
ok fetch 1 (binary.size[1] binary.size[5])
|
||||
* 1 fetch (binary.size[1] 11 binary.size[5] 30)
|
||||
|
||||
ok fetch 1 (binary.peek[1] binary.peek[2] binary.peek[3] binary.peek[4] binary.peek[5])
|
||||
* 1 fetch (binary[1] {{{
|
||||
hello world
|
||||
}}} binary[2] {{{
|
||||
hello world
|
||||
}}} binary[3] {{{
|
||||
hello to you too
|
||||
}}} binary[4] {{{
|
||||
hello to everyone!
|
||||
}}} binary[5] ~{{{
|
||||
abcdefg␍hijkl
|
||||
mno
|
||||
pqrstuvqxyz
|
||||
}}})
|
||||
|
||||
ok fetch 1 (binary.size[1] binary.peek[1])
|
||||
* 1 fetch (binary.size[1] 11 binary[1] {{{
|
||||
hello world
|
||||
}}})
|
||||
|
||||
ok fetch 1 (binary.size[3] binary.peek[2])
|
||||
* 1 fetch (binary.size[3] 16 binary[2] {{{
|
||||
hello world
|
||||
}}})
|
||||
|
||||
ok fetch 1 (binary.size[2] binary.size[3] binary.size[4])
|
||||
* 1 fetch (binary.size[2] 11 binary.size[3] 16 binary.size[4] 18)
|
||||
|
||||
ok fetch 1 (binary.peek[5]<0.7>)
|
||||
* 1 fetch (binary[5]<0> ~{{{
|
||||
abcdefg
|
||||
}}})
|
||||
|
||||
ok fetch 1 (binary.peek[5]<0.8>)
|
||||
* 1 fetch (binary[5]<0> ~{{{
|
||||
abcdefg
|
||||
}}})
|
||||
|
||||
ok fetch 1 (binary.peek[5]<0.10>)
|
||||
* 1 fetch (binary[5]<0> ~{{{
|
||||
abcdefg␍hi
|
||||
}}})
|
||||
|
||||
ok fetch 1 (binary.peek[5]<10.10>)
|
||||
* 1 fetch (binary[5]<10> ~{{{
|
||||
jkl
|
||||
mno
|
||||
p
|
||||
}}})
|
||||
|
||||
ok fetch 1 (binary.peek[5]<5.10>)
|
||||
* 1 fetch (binary[5]<5> ~{{{
|
||||
fg␍hijkl
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (binary.peek[5]<15.100>)
|
||||
* 1 fetch (binary[5]<15> ~{{{
|
||||
mno
|
||||
pqrstuvqxyz
|
||||
}}})
|
||||
@@ -0,0 +1,49 @@
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
From: [email protected]
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Mime-Version: 1.0
|
||||
Content-Type: multipart/mixed; boundary="foo
|
||||
bar"
|
||||
|
||||
Root MIME prologue
|
||||
|
||||
--foo bar
|
||||
Content-Type: text/x-myown; charset=us-ascii
|
||||
Content-Transfer-Encoding: base64
|
||||
|
||||
|
||||
aGVs
|
||||
bG8gd29y
|
||||
bGQ=
|
||||
|
||||
--foo bar
|
||||
Content-Type: text/x-myown; charset=us-ascii
|
||||
Content-Transfer-Encoding: base64
|
||||
|
||||
aGVs
|
||||
bG8g
|
||||
d29y
|
||||
bGQ=
|
||||
|
||||
|
||||
--foo bar
|
||||
Content-Type: text/x-myown; charset=us-ascii
|
||||
Content-Transfer-Encoding: base64
|
||||
|
||||
aGVsbG8g
|
||||
dG8geW91IHRv
|
||||
bw==
|
||||
|
||||
--foo bar
|
||||
Content-Type: text/x-myown; charset=us-ascii
|
||||
Content-Transfer-Encoding: base64
|
||||
|
||||
aGVsbG8gdG8gZXZlcnlvbmUh
|
||||
--foo bar
|
||||
Content-Type: text/x-myown; charset=us-ascii
|
||||
Content-Transfer-Encoding: base64
|
||||
|
||||
YWJjZGVmZw1oaWprbA0KbW5vCnBxcnN0dXZxeHl6
|
||||
|
||||
--foo bar--
|
||||
Root MIME epilogue
|
||||
@@ -0,0 +1,54 @@
|
||||
capabilities: BINARY
|
||||
messages: all
|
||||
|
||||
ok fetch 1 (binary.size[1])
|
||||
* 1 fetch (binary.size[1] 65)
|
||||
|
||||
ok fetch 1 (binary.peek[1])
|
||||
* 1 fetch (binary[1] {{{
|
||||
hello
|
||||
bar
|
||||
foo bar
|
||||
foo b
|
||||
foo bar
|
||||
foo b
|
||||
foo
|
||||
bar
|
||||
foo_bar
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (binary.peek[1]<0.10>)
|
||||
* 1 fetch (binary[1]<0> {{{
|
||||
hello
|
||||
bar
|
||||
}}})
|
||||
|
||||
ok fetch 1 (binary.peek[1]<10.10>)
|
||||
* 1 fetch (binary[1]<10> ~{{{
|
||||
|
||||
foo bar
|
||||
}}})
|
||||
|
||||
ok fetch 1 (binary.peek[1]<20.10>)
|
||||
* 1 fetch (binary[1]<20> ~{{{
|
||||
|
||||
foo b
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (binary.peek[1]<15.10>)
|
||||
* 1 fetch (binary[1]<15> ~{{{
|
||||
bar
|
||||
foo
|
||||
}}})
|
||||
|
||||
ok fetch 1 (binary.peek[1]<40.100>)
|
||||
* 1 fetch (binary[1]<40> {{{
|
||||
oo b
|
||||
foo
|
||||
bar
|
||||
foo_bar
|
||||
|
||||
}}})
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
From: [email protected]
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Mime-Version: 1.0
|
||||
Content-Type: multipart/mixed; boundary="foo
|
||||
bar"
|
||||
|
||||
Root MIME prologue
|
||||
|
||||
--foo bar
|
||||
Content-Type: text/x-myown; charset=us-ascii
|
||||
Content-Transfer-Encoding: quoted-printable
|
||||
|
||||
hello
|
||||
bar=
|
||||
|
||||
foo =
|
||||
bar
|
||||
foo =
|
||||
=62
|
||||
foo =
|
||||
bar
|
||||
foo =
|
||||
=62
|
||||
foo
|
||||
bar=
|
||||
|
||||
foo_bar
|
||||
|
||||
--foo bar--
|
||||
Root MIME epilogue
|
||||
@@ -0,0 +1,38 @@
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
From: [email protected]
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Mime-Version: 1.0
|
||||
Content-Type: multipart/mixed; boundary="foo
|
||||
bar"
|
||||
|
||||
Root MIME prologue
|
||||
|
||||
--foo bar
|
||||
Content-Type: text/x-myown; charset=us-ascii
|
||||
|
||||
hello
|
||||
|
||||
--foo bar
|
||||
Content-Type: message/rfc822
|
||||
|
||||
From: [email protected]
|
||||
Date: Sun, 12 Aug 2012 12:34:56 +0300
|
||||
Subject: submsg
|
||||
Content-Type: multipart/alternative; boundary="sub1"
|
||||
|
||||
Sub MIME prologue
|
||||
--sub1
|
||||
Content-Type: text/html
|
||||
|
||||
<p>Hello world</p>
|
||||
|
||||
--sub1
|
||||
Content-Type: text/plain
|
||||
|
||||
Hello another world
|
||||
|
||||
--sub1--
|
||||
Sub MIME epilogue
|
||||
|
||||
--foo bar--
|
||||
Root MIME epilogue
|
||||
@@ -0,0 +1,122 @@
|
||||
messages: all
|
||||
|
||||
# header and body fetches
|
||||
ok fetch 1 rfc822.header
|
||||
* 1 fetch (rfc822.header $hdr1)
|
||||
ok fetch 1 body.peek[header]
|
||||
* 1 fetch (body[header] $hdr1)
|
||||
|
||||
ok fetch 1 (flags body.peek[text])
|
||||
* 1 fetch (flags () body[text] {{{
|
||||
body1
|
||||
|
||||
|
||||
}}})
|
||||
ok fetch 1 rfc822.text
|
||||
* 1 fetch (rfc822.text {{{
|
||||
body1
|
||||
|
||||
|
||||
}}})
|
||||
* 1 fetch (flags (\seen))
|
||||
|
||||
ok fetch 2 (flags body.peek[])
|
||||
* 2 fetch (flags () body[] $full2)
|
||||
ok fetch 2 rfc822
|
||||
* 2 fetch (rfc822 $full2)
|
||||
* 2 fetch (flags (\seen))
|
||||
|
||||
ok fetch 3 (body[])
|
||||
* 3 fetch (body[] $full3)
|
||||
* 3 fetch (flags (\seen))
|
||||
ok fetch 4 (body[header])
|
||||
* 4 fetch (body[header] $hdr4)
|
||||
* 4 fetch (flags (\seen))
|
||||
|
||||
# partial fetches
|
||||
ok fetch 2 body.peek[text]<0.3>
|
||||
* 2 fetch (body[text]<0> "bod")
|
||||
ok fetch 2 body.peek[text]<3.3>
|
||||
* 2 fetch (body[text]<3> "y22")
|
||||
|
||||
ok fetch 3 body.peek[text]<0.1>
|
||||
* 3 fetch (body[text]<0> "b")
|
||||
ok fetch 3 body.peek[text]<5.1>
|
||||
* 3 fetch (body[text]<5> "3")
|
||||
ok fetch 3 body.peek[text]<5.2>
|
||||
* 3 fetch (body[text]<5> ~{{{
|
||||
3
|
||||
}}})
|
||||
ok fetch 3 body.peek[text]<5.3>
|
||||
* 3 fetch (body[text]<5> ~{{{
|
||||
3
|
||||
|
||||
}}})
|
||||
ok fetch 3 body.peek[text]<6.1>
|
||||
* 3 fetch (body[text]<6> ~{{{
|
||||
|
||||
}}})
|
||||
ok fetch 3 body.peek[text]<6.2>
|
||||
* 3 fetch (body[text]<6> ~{{{
|
||||
|
||||
|
||||
}}})
|
||||
ok fetch 3 body.peek[text]<7.1>
|
||||
* 3 fetch (body[text]<7> ~{{{
|
||||
|
||||
|
||||
}}})
|
||||
|
||||
# header fields
|
||||
ok fetch 1 body.peek[header.fields (from)]
|
||||
* 1 fetch (body[header.fields (from)] {{{
|
||||
From: User1 <[email protected]>
|
||||
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[header.fields (from)])
|
||||
* 1 fetch (body[header.fields (from)] {{{
|
||||
From: User1 <[email protected]>
|
||||
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[header.fields (from from)])
|
||||
* 1 fetch (body[header.fields (from from)] {{{
|
||||
From: User1 <[email protected]>
|
||||
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 body.peek[header.fields (from subject)]
|
||||
* 1 fetch (body[header.fields (from subject)] {{{
|
||||
From: User1 <[email protected]>
|
||||
Subject: s1
|
||||
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 body.peek[header.fields.not (date)]
|
||||
! 1 fetch (body[header.fields.not (date)] {{{
|
||||
From: User1 <[email protected]>
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Subject: s1
|
||||
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 body.peek[header.fields.not (date date)]
|
||||
! 1 fetch (body[header.fields.not (date date)] {{{
|
||||
From: User1 <[email protected]>
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Subject: s1
|
||||
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 body.peek[header.fields (xyz)]
|
||||
* 1 fetch (body[header.fields (xyz)] {{{
|
||||
|
||||
|
||||
}}})
|
||||
@@ -0,0 +1,73 @@
|
||||
messages: all
|
||||
|
||||
ok fetch 1 (body.peek[])
|
||||
* 1 fetch (body[] {{{
|
||||
From: [email protected]
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Mime-Version: 1.0
|
||||
Content-Type: message/rfc822
|
||||
|
||||
From: [email protected]
|
||||
Date: Sun, 12 Aug 2012 12:34:56 +0300
|
||||
Subject: submsg
|
||||
|
||||
Hello world
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[text])
|
||||
* 1 fetch (body[text] {{{
|
||||
From: [email protected]
|
||||
Date: Sun, 12 Aug 2012 12:34:56 +0300
|
||||
Subject: submsg
|
||||
|
||||
Hello world
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[1])
|
||||
* 1 fetch (body[1] {{{
|
||||
From: [email protected]
|
||||
Date: Sun, 12 Aug 2012 12:34:56 +0300
|
||||
Subject: submsg
|
||||
|
||||
Hello world
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[1.1])
|
||||
* 1 fetch (body[1.1] {{{
|
||||
Hello world
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[1.header])
|
||||
* 1 fetch (body[1.header] {{{
|
||||
From: [email protected]
|
||||
Date: Sun, 12 Aug 2012 12:34:56 +0300
|
||||
Subject: submsg
|
||||
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[1.header.fields (from subject X-foo)])
|
||||
* 1 fetch (body[1.header.fields (from subject X-foo)] {{{
|
||||
From: [email protected]
|
||||
Subject: submsg
|
||||
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[1.header.fields.not (from subject X-foo)])
|
||||
* 1 fetch (body[1.header.fields.not (from subject X-foo)] {{{
|
||||
Date: Sun, 12 Aug 2012 12:34:56 +0300
|
||||
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[1.text])
|
||||
* 1 fetch (body[1.text] {{{
|
||||
Hello world
|
||||
|
||||
}}})
|
||||
|
||||
@@ -0,0 +1,185 @@
|
||||
messages: all
|
||||
|
||||
ok fetch 1 (body.peek[])
|
||||
* 1 fetch (body[] {{{
|
||||
From: [email protected]
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Mime-Version: 1.0
|
||||
Content-Type: message/rfc822
|
||||
|
||||
From: [email protected]
|
||||
Date: Sun, 12 Aug 2012 12:34:56 +0300
|
||||
Subject: submsg
|
||||
Content-Type: multipart/digest; boundary="foo"
|
||||
|
||||
prologue
|
||||
|
||||
--foo
|
||||
|
||||
From: [email protected]
|
||||
Subject: m1
|
||||
|
||||
m1 body
|
||||
|
||||
--foo
|
||||
Content-Custom: m2 header
|
||||
|
||||
From: [email protected]
|
||||
Subject: m2
|
||||
|
||||
m2 body
|
||||
|
||||
--foo--
|
||||
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[text])
|
||||
* 1 fetch (body[text] {{{
|
||||
From: [email protected]
|
||||
Date: Sun, 12 Aug 2012 12:34:56 +0300
|
||||
Subject: submsg
|
||||
Content-Type: multipart/digest; boundary="foo"
|
||||
|
||||
prologue
|
||||
|
||||
--foo
|
||||
|
||||
From: [email protected]
|
||||
Subject: m1
|
||||
|
||||
m1 body
|
||||
|
||||
--foo
|
||||
Content-Custom: m2 header
|
||||
|
||||
From: [email protected]
|
||||
Subject: m2
|
||||
|
||||
m2 body
|
||||
|
||||
--foo--
|
||||
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[1])
|
||||
* 1 fetch (body[1] {{{
|
||||
From: [email protected]
|
||||
Date: Sun, 12 Aug 2012 12:34:56 +0300
|
||||
Subject: submsg
|
||||
Content-Type: multipart/digest; boundary="foo"
|
||||
|
||||
prologue
|
||||
|
||||
--foo
|
||||
|
||||
From: [email protected]
|
||||
Subject: m1
|
||||
|
||||
m1 body
|
||||
|
||||
--foo
|
||||
Content-Custom: m2 header
|
||||
|
||||
From: [email protected]
|
||||
Subject: m2
|
||||
|
||||
m2 body
|
||||
|
||||
--foo--
|
||||
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[1.header])
|
||||
* 1 fetch (body[1.header] {{{
|
||||
From: [email protected]
|
||||
Date: Sun, 12 Aug 2012 12:34:56 +0300
|
||||
Subject: submsg
|
||||
Content-Type: multipart/digest; boundary="foo"
|
||||
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[1.text])
|
||||
* 1 fetch (body[1.text] {{{
|
||||
prologue
|
||||
|
||||
--foo
|
||||
|
||||
From: [email protected]
|
||||
Subject: m1
|
||||
|
||||
m1 body
|
||||
|
||||
--foo
|
||||
Content-Custom: m2 header
|
||||
|
||||
From: [email protected]
|
||||
Subject: m2
|
||||
|
||||
m2 body
|
||||
|
||||
--foo--
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[1.1])
|
||||
* 1 fetch (body[1.1] {{{
|
||||
From: [email protected]
|
||||
Subject: m1
|
||||
|
||||
m1 body
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[1.1.MIME])
|
||||
* 1 fetch (body[1.1.MIME] {{{
|
||||
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[1.1.HEADER])
|
||||
* 1 fetch (body[1.1.HEADER] {{{
|
||||
From: [email protected]
|
||||
Subject: m1
|
||||
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[1.1.TEXT])
|
||||
* 1 fetch (body[1.1.TEXT] {{{
|
||||
m1 body
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[1.2])
|
||||
* 1 fetch (body[1.2] {{{
|
||||
From: [email protected]
|
||||
Subject: m2
|
||||
|
||||
m2 body
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[1.2.MIME])
|
||||
* 1 fetch (body[1.2.MIME] {{{
|
||||
Content-Custom: m2 header
|
||||
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[1.2.HEADER])
|
||||
* 1 fetch (body[1.2.HEADER] {{{
|
||||
From: [email protected]
|
||||
Subject: m2
|
||||
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[1.2.TEXT])
|
||||
* 1 fetch (body[1.2.TEXT] {{{
|
||||
m2 body
|
||||
|
||||
}}})
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
From: [email protected]
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Mime-Version: 1.0
|
||||
Content-Type: message/rfc822
|
||||
|
||||
From: [email protected]
|
||||
Date: Sun, 12 Aug 2012 12:34:56 +0300
|
||||
Subject: submsg
|
||||
Content-Type: multipart/digest; boundary="foo"
|
||||
|
||||
prologue
|
||||
|
||||
--foo
|
||||
|
||||
From: [email protected]
|
||||
Subject: m1
|
||||
|
||||
m1 body
|
||||
|
||||
--foo
|
||||
Content-Custom: m2 header
|
||||
|
||||
From: [email protected]
|
||||
Subject: m2
|
||||
|
||||
m2 body
|
||||
|
||||
--foo--
|
||||
|
||||
@@ -0,0 +1,103 @@
|
||||
messages: all
|
||||
|
||||
ok fetch 1 (body.peek[])
|
||||
* 1 fetch (body[] {{{
|
||||
From: [email protected]
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Mime-Version: 1.0
|
||||
Content-Type: message/rfc822
|
||||
|
||||
From: [email protected]
|
||||
Date: Fri, 23 Mar 2007 11:22:33 +0200
|
||||
Mime-Version: 1.0
|
||||
Content-Type: message/rfc822
|
||||
|
||||
From: [email protected]
|
||||
Date: Sun, 12 Aug 2012 12:34:56 +0300
|
||||
Subject: submsg
|
||||
|
||||
Hello world
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[text])
|
||||
* 1 fetch (body[text] {{{
|
||||
From: [email protected]
|
||||
Date: Fri, 23 Mar 2007 11:22:33 +0200
|
||||
Mime-Version: 1.0
|
||||
Content-Type: message/rfc822
|
||||
|
||||
From: [email protected]
|
||||
Date: Sun, 12 Aug 2012 12:34:56 +0300
|
||||
Subject: submsg
|
||||
|
||||
Hello world
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[1])
|
||||
* 1 fetch (body[1] {{{
|
||||
From: [email protected]
|
||||
Date: Fri, 23 Mar 2007 11:22:33 +0200
|
||||
Mime-Version: 1.0
|
||||
Content-Type: message/rfc822
|
||||
|
||||
From: [email protected]
|
||||
Date: Sun, 12 Aug 2012 12:34:56 +0300
|
||||
Subject: submsg
|
||||
|
||||
Hello world
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[1.1])
|
||||
* 1 fetch (body[1.1] {{{
|
||||
From: [email protected]
|
||||
Date: Sun, 12 Aug 2012 12:34:56 +0300
|
||||
Subject: submsg
|
||||
|
||||
Hello world
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[1.header])
|
||||
* 1 fetch (body[1.header] {{{
|
||||
From: [email protected]
|
||||
Date: Fri, 23 Mar 2007 11:22:33 +0200
|
||||
Mime-Version: 1.0
|
||||
Content-Type: message/rfc822
|
||||
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[1.text])
|
||||
* 1 fetch (body[1.text] {{{
|
||||
From: [email protected]
|
||||
Date: Sun, 12 Aug 2012 12:34:56 +0300
|
||||
Subject: submsg
|
||||
|
||||
Hello world
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[1.1.1])
|
||||
* 1 fetch (body[1.1.1] {{{
|
||||
Hello world
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[1.1.header])
|
||||
* 1 fetch (body[1.1.header] {{{
|
||||
From: [email protected]
|
||||
Date: Sun, 12 Aug 2012 12:34:56 +0300
|
||||
Subject: submsg
|
||||
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[1.1.text])
|
||||
* 1 fetch (body[1.1.text] {{{
|
||||
Hello world
|
||||
|
||||
}}})
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
From: [email protected]
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Mime-Version: 1.0
|
||||
Content-Type: message/rfc822
|
||||
|
||||
From: [email protected]
|
||||
Date: Fri, 23 Mar 2007 11:22:33 +0200
|
||||
Mime-Version: 1.0
|
||||
Content-Type: message/rfc822
|
||||
|
||||
From: [email protected]
|
||||
Date: Sun, 12 Aug 2012 12:34:56 +0300
|
||||
Subject: submsg
|
||||
|
||||
Hello world
|
||||
@@ -0,0 +1,11 @@
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
From: [email protected]
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Mime-Version: 1.0
|
||||
Content-Type: message/rfc822
|
||||
|
||||
From: [email protected]
|
||||
Date: Sun, 12 Aug 2012 12:34:56 +0300
|
||||
Subject: submsg
|
||||
|
||||
Hello world
|
||||
@@ -0,0 +1,193 @@
|
||||
messages: all
|
||||
|
||||
ok fetch 1 (body.peek[])
|
||||
* 1 fetch (body[] {{{
|
||||
From: [email protected]
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Mime-Version: 1.0
|
||||
Content-Type: multipart/mixed; boundary="foo
|
||||
bar"
|
||||
|
||||
Root MIME prologue
|
||||
|
||||
--foo bar
|
||||
Content-Type: text/x-myown; charset=us-ascii
|
||||
|
||||
hello
|
||||
|
||||
--foo bar
|
||||
Content-Type: message/rfc822
|
||||
|
||||
From: [email protected]
|
||||
Date: Sun, 12 Aug 2012 12:34:56 +0300
|
||||
Subject: submsg
|
||||
Content-Type: multipart/alternative; boundary="sub1"
|
||||
|
||||
Sub MIME prologue
|
||||
--sub1
|
||||
Content-Type: text/html
|
||||
|
||||
<p>Hello world</p>
|
||||
|
||||
--sub1
|
||||
Content-Type: text/plain
|
||||
|
||||
Hello another world
|
||||
|
||||
--sub1--
|
||||
Sub MIME epilogue
|
||||
|
||||
--foo bar--
|
||||
Root MIME epilogue
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[text])
|
||||
* 1 fetch (body[text] {{{
|
||||
Root MIME prologue
|
||||
|
||||
--foo bar
|
||||
Content-Type: text/x-myown; charset=us-ascii
|
||||
|
||||
hello
|
||||
|
||||
--foo bar
|
||||
Content-Type: message/rfc822
|
||||
|
||||
From: [email protected]
|
||||
Date: Sun, 12 Aug 2012 12:34:56 +0300
|
||||
Subject: submsg
|
||||
Content-Type: multipart/alternative; boundary="sub1"
|
||||
|
||||
Sub MIME prologue
|
||||
--sub1
|
||||
Content-Type: text/html
|
||||
|
||||
<p>Hello world</p>
|
||||
|
||||
--sub1
|
||||
Content-Type: text/plain
|
||||
|
||||
Hello another world
|
||||
|
||||
--sub1--
|
||||
Sub MIME epilogue
|
||||
|
||||
--foo bar--
|
||||
Root MIME epilogue
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[1])
|
||||
* 1 fetch (body[1] {{{
|
||||
hello
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[1.mime])
|
||||
* 1 fetch (body[1.mime] {{{
|
||||
Content-Type: text/x-myown; charset=us-ascii
|
||||
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[2])
|
||||
* 1 fetch (body[2] {{{
|
||||
From: [email protected]
|
||||
Date: Sun, 12 Aug 2012 12:34:56 +0300
|
||||
Subject: submsg
|
||||
Content-Type: multipart/alternative; boundary="sub1"
|
||||
|
||||
Sub MIME prologue
|
||||
--sub1
|
||||
Content-Type: text/html
|
||||
|
||||
<p>Hello world</p>
|
||||
|
||||
--sub1
|
||||
Content-Type: text/plain
|
||||
|
||||
Hello another world
|
||||
|
||||
--sub1--
|
||||
Sub MIME epilogue
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[2.mime])
|
||||
* 1 fetch (body[2.mime] {{{
|
||||
Content-Type: message/rfc822
|
||||
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[2.header])
|
||||
* 1 fetch (body[2.header] {{{
|
||||
From: [email protected]
|
||||
Date: Sun, 12 Aug 2012 12:34:56 +0300
|
||||
Subject: submsg
|
||||
Content-Type: multipart/alternative; boundary="sub1"
|
||||
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[2.header.fields (from subject X-foo)])
|
||||
* 1 fetch (body[2.header.fields (from subject X-foo)] {{{
|
||||
From: [email protected]
|
||||
Subject: submsg
|
||||
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[2.header.fields.not (from subject X-foo)])
|
||||
* 1 fetch (body[2.header.fields.not (from subject X-foo)] {{{
|
||||
Date: Sun, 12 Aug 2012 12:34:56 +0300
|
||||
Content-Type: multipart/alternative; boundary="sub1"
|
||||
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[2.text])
|
||||
* 1 fetch (body[2.text] {{{
|
||||
Sub MIME prologue
|
||||
--sub1
|
||||
Content-Type: text/html
|
||||
|
||||
<p>Hello world</p>
|
||||
|
||||
--sub1
|
||||
Content-Type: text/plain
|
||||
|
||||
Hello another world
|
||||
|
||||
--sub1--
|
||||
Sub MIME epilogue
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[2.1.mime])
|
||||
* 1 fetch (body[2.1.mime] {{{
|
||||
Content-Type: text/html
|
||||
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[2.1])
|
||||
* 1 fetch (body[2.1] {{{
|
||||
<p>Hello world</p>
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[2.2.mime])
|
||||
* 1 fetch (body[2.2.mime] {{{
|
||||
Content-Type: text/plain
|
||||
|
||||
|
||||
}}})
|
||||
|
||||
ok fetch 1 (body.peek[2.2])
|
||||
* 1 fetch (body[2.2] {{{
|
||||
Hello another world
|
||||
|
||||
}}})
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
From: [email protected]
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Mime-Version: 1.0
|
||||
Content-Type: multipart/mixed; boundary="foo
|
||||
bar"
|
||||
|
||||
Root MIME prologue
|
||||
|
||||
--foo bar
|
||||
Content-Type: text/x-myown; charset=us-ascii
|
||||
|
||||
hello
|
||||
|
||||
--foo bar
|
||||
Content-Type: message/rfc822
|
||||
|
||||
From: [email protected]
|
||||
Date: Sun, 12 Aug 2012 12:34:56 +0300
|
||||
Subject: submsg
|
||||
Content-Type: multipart/alternative; boundary="sub1"
|
||||
|
||||
Sub MIME prologue
|
||||
--sub1
|
||||
Content-Type: text/html
|
||||
|
||||
<p>Hello world</p>
|
||||
|
||||
--sub1
|
||||
Content-Type: text/plain
|
||||
|
||||
Hello another world
|
||||
|
||||
--sub1--
|
||||
Sub MIME epilogue
|
||||
|
||||
--foo bar--
|
||||
Root MIME epilogue
|
||||
@@ -0,0 +1,28 @@
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
From: User1 <[email protected]>
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Subject: s1
|
||||
|
||||
body1
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
From: User2 <[email protected]>
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Subject: s22
|
||||
|
||||
body22
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
From: User3 <[email protected]>
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Subject: s333
|
||||
|
||||
body33
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
From: User4 <[email protected]>
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Subject: s4444
|
||||
|
||||
body4444
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
messages: all
|
||||
|
||||
ok fetch 1:* body
|
||||
* 1 FETCH (BODY (("TEXT" "x-MYOWN" ("CHARSET" "us-ascii") NIL NIL "7BIT" 7 1) "MIXED"))
|
||||
@@ -0,0 +1,13 @@
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
From: [email protected]
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Mime-Version: 1.0
|
||||
Content-Type: multipart/mixed; boundary="foo
|
||||
bar"
|
||||
|
||||
--foo bar
|
||||
Content-Type: text/x-myown; charset=us-ascii
|
||||
|
||||
hello
|
||||
|
||||
--foo bar--
|
||||
@@ -0,0 +1,10 @@
|
||||
messages: all
|
||||
|
||||
# date, subject, from, sender, reply-to, to, cc, bcc, in-reply-to, message-id
|
||||
ok fetch 1:* envelope
|
||||
* 1 FETCH (ENVELOPE ("Thu, 15 Feb 2007 01:02:03 +0200" "subject header" (("From Real" NIL "fromuser" "fromdomain.org")) (("Sender Real" NIL "senderuser" "senderdomain.org")) (("ReplyTo Real" NIL "replytouser" "replytodomain.org")) (("To Real" NIL "touser" "todomain.org")) (("Cc Real" NIL "ccuser" "ccdomain.org")) (("Bcc Real" NIL "bccuser" "bccdomain.org")) "<[email protected]>" "<msg@id>"))
|
||||
* 2 FETCH (ENVELOPE ("Thu, 15 Feb 2007 01:02:03 +0200" NIL ((NIL NIL "user" "domain")) ((NIL NIL "user" "domain")) ((NIL NIL "user" "domain")) NIL NIL NIL NIL NIL))
|
||||
* 3 FETCH (ENVELOPE ("Thu, 15 Feb 2007 01:02:03 +0200" NIL ((NIL NIL "user" "domain")) ((NIL NIL "user" "domain")) ((NIL NIL "user" "domain")) NIL NIL NIL NIL NIL))
|
||||
* 4 FETCH (ENVELOPE ("Thu, 15 Feb 2007 01:02:03 +0200" NIL (("Real Name" NIL "user" "domain")) (("Real Name" NIL "user" "domain")) (("Real Name" NIL "user" "domain")) ((NIL NIL "group" NIL)(NIL NIL "g1" "d1.org")(NIL NIL "g2" "d2.org")(NIL NIL NIL NIL)(NIL NIL "group2" NIL)(NIL NIL "g3" "d3.org")(NIL NIL NIL NIL)) ((NIL NIL "group" NIL)(NIL NIL NIL NIL)(NIL NIL "group2" NIL)(NIL NIL NIL NIL)) NIL NIL NIL))
|
||||
* 5 FETCH (ENVELOPE ("Thu, 15 Feb 2007 01:02:03 +0200" NIL (("Real Name" NIL "user" "domain")) (("Real Name" NIL "user" "domain")) (("Real Name" NIL "user" "domain")) NIL NIL NIL NIL NIL))
|
||||
* 6 FETCH (ENVELOPE ("Thu, 15 Feb 2007 01:02:03 +0200" NIL ((NIL "@route" "user" "domain")) ((NIL "@route" "user" "domain")) ((NIL "@route" "user" "domain")) NIL NIL NIL NIL NIL))
|
||||
@@ -0,0 +1,47 @@
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
Message-ID: <msg@id>
|
||||
In-Reply-To: <[email protected]>
|
||||
Date: Thu, 15 Feb 2007 01:02:03 +0200
|
||||
Subject: subject header
|
||||
From: From Real <[email protected]>
|
||||
To: To Real <[email protected]>
|
||||
Cc: Cc Real <[email protected]>
|
||||
Bcc: Bcc Real <[email protected]>
|
||||
Sender: Sender Real <[email protected]>
|
||||
Reply-To: ReplyTo Real <[email protected]>
|
||||
|
||||
body
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
Date: Thu, 15 Feb 2007 01:02:03 +0200
|
||||
From: user@domain
|
||||
|
||||
body
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
Date: Thu, 15 Feb 2007 01:02:03 +0200
|
||||
From: user@domain
|
||||
|
||||
body
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
Date: Thu, 15 Feb 2007 01:02:03 +0200
|
||||
From: user@domain (Real Name)
|
||||
To: group: [email protected], [email protected];, group2: [email protected];
|
||||
Cc: group:;, group2: (foo) ;
|
||||
|
||||
body
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
Date: Thu, 15 Feb 2007 01:02:03 +0200
|
||||
From: user@domain (Real Name)
|
||||
Sender:
|
||||
Reply-To:
|
||||
|
||||
body
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
Date: Thu, 15 Feb 2007 01:02:03 +0200
|
||||
From: <@route:user@domain>
|
||||
|
||||
body
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,79 @@
|
||||
connections: 3
|
||||
state: auth
|
||||
|
||||
# get the separator
|
||||
1 ok list "" ""
|
||||
* list () $sep $root
|
||||
# it should be \noselect, but don't fail everything if it doesn't exist
|
||||
* list (\noselect) $sep $root
|
||||
|
||||
1 ok create $mailbox${sep}
|
||||
1 ok create $mailbox${sep}test
|
||||
2 ok list "" $mailbox${sep}%
|
||||
* list () $sep $mailbox${sep}test
|
||||
|
||||
2 ok create $mailbox${sep}test2
|
||||
1 ok list "" $mailbox${sep}%
|
||||
* list () $sep $mailbox${sep}test
|
||||
* list () $sep $mailbox${sep}test2
|
||||
|
||||
3 ok create $mailbox${sep}test3${sep}
|
||||
2 ok create $mailbox${sep}test3${sep}test4${sep}
|
||||
2 ok create $mailbox${sep}test3${sep}test4${sep}test5
|
||||
2 ok list "" $mailbox${sep}%
|
||||
* list () $sep $mailbox${sep}test
|
||||
* list () $sep $mailbox${sep}test2
|
||||
* list () $sep $mailbox${sep}test3
|
||||
! list () $sep $mailbox${sep}test3${sep}test4
|
||||
! list () $sep $mailbox${sep}test3${sep}test4${sep}test5
|
||||
|
||||
3 ok list "" $mailbox${sep}%
|
||||
* list () $sep $mailbox${sep}test
|
||||
* list () $sep $mailbox${sep}test2
|
||||
* list () $sep $mailbox${sep}test3
|
||||
|
||||
2 ok list "" $mailbox${sep}%${sep}%
|
||||
! list () $sep $mailbox${sep}test
|
||||
! list () $sep $mailbox${sep}test2
|
||||
! list () $sep $mailbox${sep}test3
|
||||
* list () $sep $mailbox${sep}test3${sep}test4
|
||||
! list () $sep $mailbox${sep}test3${sep}test4${sep}test5
|
||||
|
||||
3 ok list "" $mailbox${sep}*
|
||||
* list () $sep $mailbox${sep}test
|
||||
* list () $sep $mailbox${sep}test2
|
||||
* list () $sep $mailbox${sep}test3
|
||||
* list () $sep $mailbox${sep}test3${sep}test4${sep}test5
|
||||
|
||||
3 ok list $mailbox${sep} *
|
||||
* list () $sep $mailbox${sep}test
|
||||
* list () $sep $mailbox${sep}test2
|
||||
* list () $sep $mailbox${sep}test3
|
||||
* list () $sep $mailbox${sep}test3${sep}test4${sep}test5
|
||||
|
||||
2 ok list "" $mailbox${sep}*test4
|
||||
! list () $sep $mailbox${sep}test
|
||||
! list () $sep $mailbox${sep}test2
|
||||
! list () $sep $mailbox${sep}test3
|
||||
* list () $sep $mailbox${sep}test3${sep}test4
|
||||
! list () $sep $mailbox${sep}test3${sep}test4${sep}test5
|
||||
|
||||
2 ok list "" $mailbox${sep}*test*
|
||||
* list () $sep $mailbox${sep}test
|
||||
* list () $sep $mailbox${sep}test2
|
||||
* list () $sep $mailbox${sep}test3
|
||||
* list () $sep $mailbox${sep}test3${sep}test4${sep}test5
|
||||
|
||||
2 ok list "" $mailbox${sep}%3${sep}%
|
||||
* list () $sep $mailbox${sep}test3${sep}test4
|
||||
2 ok list "" $mailbox${sep}%3${sep}%4
|
||||
* list () $sep $mailbox${sep}test3${sep}test4
|
||||
2 ok list "" $mailbox${sep}%t*4
|
||||
* list () $sep $mailbox${sep}test3${sep}test4
|
||||
|
||||
2 ok delete $mailbox${sep}test2
|
||||
1 ok list "" $mailbox${sep}*
|
||||
! list () $sep $mailbox${sep}test2
|
||||
|
||||
1 ok list "" INBOX
|
||||
* list () $inboxsep INBOX
|
||||
@@ -0,0 +1,95 @@
|
||||
state: auth
|
||||
capabilities: LIST-EXTENDED
|
||||
|
||||
# get the separator
|
||||
ok list "" ""
|
||||
* list () $sep ""
|
||||
|
||||
ok create $mailbox${sep}
|
||||
ok create $mailbox${sep}test1
|
||||
ok create $mailbox${sep}test2${sep}
|
||||
ok create $mailbox${sep}test2${sep}test1
|
||||
ok create $mailbox${sep}test3
|
||||
ok create $mailbox${sep}test4${sep}test5
|
||||
ok create $mailbox${sep}test4${sep}test52
|
||||
ok create $mailbox${sep}test6
|
||||
ok create $mailbox${sep}test7${sep}test7
|
||||
ok create $mailbox${sep}test8${sep}test8
|
||||
ok create $mailbox${sep}test8${sep}test9
|
||||
|
||||
ok subscribe $mailbox${sep}test1
|
||||
ok subscribe $mailbox${sep}test2${sep}test1
|
||||
ok subscribe $mailbox${sep}test6
|
||||
ok subscribe $mailbox${sep}test7${sep}test7
|
||||
ok subscribe $mailbox${sep}test8${sep}test8
|
||||
ok subscribe $mailbox${sep}test8${sep}test9
|
||||
|
||||
ok delete $mailbox${sep}test6
|
||||
|
||||
# "" isn't a special case with LIST-EXTENDED
|
||||
#ok list () "" ""
|
||||
#! list () $sep ""
|
||||
#ok list "" ("")
|
||||
#! list () $sep ""
|
||||
#ok list "" "" return ()
|
||||
#! list () $sep ""
|
||||
|
||||
# test multiple patterns
|
||||
ok list "" ($mailbox${sep}*2 $mailbox${sep}test3)
|
||||
! list () $sep $mailbox${sep}test1
|
||||
* list () $sep $mailbox${sep}test2
|
||||
! list () $sep $mailbox${sep}test2${sep}test1
|
||||
* list () $sep $mailbox${sep}test3
|
||||
! list () $sep $mailbox${sep}test4
|
||||
! list () $sep $mailbox${sep}test4${sep}test5
|
||||
* list () $sep $mailbox${sep}test4${sep}test52
|
||||
! list () $sep $mailbox${sep}test6
|
||||
|
||||
# test errors
|
||||
bad list (imaptest) "" ""
|
||||
bad list (recursivematch) "" ""
|
||||
bad list (recursivematch remote) "" ""
|
||||
bad list "" "" return (imaptest)
|
||||
|
||||
ok list (remote) "" %
|
||||
|
||||
ok list (subscribed) "" $mailbox${sep}*
|
||||
* list (\subscribed) $sep $mailbox${sep}test1
|
||||
* list (\subscribed) $sep $mailbox${sep}test2${sep}test1
|
||||
#* list ($!unordered $!ban=\noselect \subscribed \nonexistent) $sep $mailbox${sep}test6
|
||||
* list (\subscribed) $sep $mailbox${sep}test7${sep}test7
|
||||
* list (\subscribed) $sep $mailbox${sep}test8${sep}test9
|
||||
|
||||
ok list (subscribed recursivematch) "" $mailbox${sep}test2% return (children)
|
||||
* list (\haschildren) $sep $mailbox${sep}test2 (childinfo (subscribed))
|
||||
! list (\subscribed) $sep $mailbox${sep}test2
|
||||
! list (\subscribed) $sep $mailbox${sep}test2${sep}test1
|
||||
|
||||
# don't test for \hasnochildren, because it may be \noinferiors instead
|
||||
ok list "" $mailbox${sep}% return (children subscribed)
|
||||
* list ($!unordered $!ban=\haschildren \subscribed) $sep $mailbox${sep}test1
|
||||
* list ($!unordered $!ban=\subscribed \haschildren) $sep $mailbox${sep}test2
|
||||
* list ($!unordered $!ban=\subscribed $!ban=\haschildren) $sep $mailbox${sep}test3
|
||||
* list ($!unordered $!ban=\subscribed \haschildren) $sep $mailbox${sep}test4
|
||||
* list ($!unordered $!ban=\subscribed \haschildren) $sep $mailbox${sep}test7
|
||||
* list ($!unordered $!ban=\subscribed \haschildren) $sep $mailbox${sep}test8
|
||||
|
||||
ok list (subscribed recursivematch) "" $mailbox*test7
|
||||
! list () $sep $mailbox${sep}test7
|
||||
* list (\subscribed) $sep $mailbox${sep}test7${sep}test7
|
||||
|
||||
ok list (subscribed recursivematch) "" $mailbox*test8
|
||||
* list ($!unordered $!ban=\subscribed) $sep $mailbox${sep}test8 (childinfo ("subscribed"))
|
||||
* list (\subscribed) $sep $mailbox${sep}test8${sep}test8
|
||||
|
||||
ok list (subscribed recursivematch) "" ($mailbox${sep}test2)
|
||||
* list () $sep $mailbox${sep}test2 (childinfo ("subscribed"))
|
||||
! list () $sep $mailbox${sep}test2${sep}test1
|
||||
|
||||
ok list (subscribed recursivematch) "" ($mailbox${sep}test2 $mailbox${sep}test2${sep}test1)
|
||||
* list () $sep $mailbox${sep}test2 (childinfo ("subscribed"))
|
||||
* list (\subscribed) $sep $mailbox${sep}test2${sep}test1
|
||||
|
||||
ok list "" ($mailbox${sep}test7 $mailbox${sep}test7${sep}test7)
|
||||
#This isn't really an error, although it's non-optimal: ! list (\nonexistent) $sep $mailbox${sep}test7
|
||||
* list () $sep $mailbox${sep}test7${sep}test7
|
||||
@@ -0,0 +1,14 @@
|
||||
state: nonauth
|
||||
connections: 2
|
||||
|
||||
1 ok noop
|
||||
! bye
|
||||
2 ok noop
|
||||
! bye
|
||||
|
||||
1 ok logout
|
||||
* bye
|
||||
|
||||
2 ok noop
|
||||
2 ok logout
|
||||
* bye
|
||||
@@ -0,0 +1,47 @@
|
||||
capabilities: MOVE
|
||||
state: created
|
||||
|
||||
# - assumes COPYUID is sent untagged before expunges.
|
||||
# - assumes MOVE to mailbox itself changes message UID
|
||||
|
||||
ok append
|
||||
ok append
|
||||
ok append
|
||||
ok create ${mailbox}2
|
||||
|
||||
ok select ${mailbox}2
|
||||
* 0 exists
|
||||
* ok [uidvalidity $uidvalidity_dest]
|
||||
* ok [uidnext $uidnext_dest1]
|
||||
|
||||
# MOVE:
|
||||
ok select $mailbox
|
||||
|
||||
ok fetch 1:* uid
|
||||
* 1 fetch (uid $uid1)
|
||||
* 2 fetch (uid $uid2)
|
||||
* 3 fetch (uid $uid3)
|
||||
|
||||
ok move 1 ${mailbox}2
|
||||
* ok [copyuid $uidvalidity_dest $uid1 $uidnext_dest1]
|
||||
* 1 expunge
|
||||
|
||||
# UID MOVE:
|
||||
ok select ${mailbox}2
|
||||
* 1 exists
|
||||
* ok [uidvalidity $uidvalidity_dest]
|
||||
* ok [uidnext $uidnext_dest2]
|
||||
|
||||
ok select $mailbox
|
||||
* ok [uidvalidity $uidvalidity]
|
||||
* ok [uidnext $uidnext1]
|
||||
|
||||
ok uid move $uid2 ${mailbox}2
|
||||
* ok [copyuid $uidvalidity_dest $uid2 $uidnext_dest2]
|
||||
* 1 expunge
|
||||
|
||||
# MOVE to same mailbox:
|
||||
#ok move 1 $mailbox
|
||||
#* ok [copyuid $uidvalidity $uid3 $uidnext1]
|
||||
#* 1 expunge
|
||||
#* 1 exists
|
||||
@@ -0,0 +1,30 @@
|
||||
capabilities: MULTIAPPEND
|
||||
state: created
|
||||
|
||||
ok append $mailbox {{{
|
||||
From: [email protected]
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Subject: mail1
|
||||
|
||||
body1
|
||||
}}} {{{
|
||||
From: [email protected]
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Subject: mail2
|
||||
|
||||
body2
|
||||
}}}
|
||||
|
||||
ok select $mailbox
|
||||
|
||||
ok fetch 1:* body.peek[header.fields (subject)]
|
||||
* 1 fetch (body[header.fields (subject)] {{{
|
||||
Subject: mail1
|
||||
|
||||
|
||||
}}})
|
||||
* 2 fetch (body[header.fields (subject)] {{{
|
||||
Subject: mail2
|
||||
|
||||
|
||||
}}})
|
||||
@@ -0,0 +1,12 @@
|
||||
state: auth
|
||||
|
||||
# get the separator
|
||||
ok list "" ""
|
||||
* list () $sep $root
|
||||
|
||||
ok create "$mailbox${sep}p&AOQA5A-"
|
||||
ok list "" "$mailbox${sep}p&AOQA5A-"
|
||||
* list () $sep "$mailbox${sep}p&AOQA5A-"
|
||||
|
||||
ok status "$mailbox${sep}p&AOQA5A-" (messages)
|
||||
* status "$mailbox${sep}p&AOQA5A-" (messages 0)
|
||||
@@ -0,0 +1,13 @@
|
||||
messages: 1
|
||||
|
||||
ok search subject NIL
|
||||
* search 1
|
||||
|
||||
ok search body nil
|
||||
* search 1
|
||||
|
||||
ok list "" NIL
|
||||
|
||||
ok store 1 +flags NIL
|
||||
ok fetch 1 flags
|
||||
* 1 fetch (flags (NIL))
|
||||
@@ -0,0 +1,5 @@
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Subject: NiL
|
||||
|
||||
nil
|
||||
@@ -0,0 +1,20 @@
|
||||
capabilities: notify qresync
|
||||
|
||||
ok create ${mailbox}2
|
||||
ok append ${mailbox}2
|
||||
|
||||
#
|
||||
# Check that initial STATUS notifications are sent when needed
|
||||
#
|
||||
|
||||
ok notify set status (mailboxes ${mailbox}2 (MessageExpunge))
|
||||
* status ${mailbox}2 (messages 1)
|
||||
|
||||
ok notify set status (mailboxes ${mailbox}2 (MessageNew))
|
||||
* status ${mailbox}2 (messages 1 uidnext $uidnext uidvalidity $uidvalidity)
|
||||
|
||||
ok notify set status (mailboxes ${mailbox}2 (FlagChange))
|
||||
* status ${mailbox}2 (uidvalidity $uidvalidity highestmodseq $hmodseq)
|
||||
|
||||
ok notify set (mailboxes ${mailbox}2 (MessageNew MessageExpunge FlagChange))
|
||||
! status ${mailbox}2 ()
|
||||
@@ -0,0 +1,23 @@
|
||||
state: auth
|
||||
|
||||
tag1 create ${mailbox}
|
||||
tag2 create ${mailbox}2
|
||||
tag3 create ${mailbox}3
|
||||
tag4 create ${mailbox}4
|
||||
tag1 ok
|
||||
tag2 ok
|
||||
tag3 ok
|
||||
tag4 ok
|
||||
|
||||
tag1 status ${mailbox} (messages)
|
||||
tag2 status ${mailbox}2 (messages)
|
||||
tag3 status ${mailbox}3 (messages)
|
||||
tag4 status ${mailbox}4 (messages)
|
||||
* status ${mailbox} (messages 0)
|
||||
* status ${mailbox}2 (messages 0)
|
||||
* status ${mailbox}3 (messages 0)
|
||||
* status ${mailbox}4 (messages 0)
|
||||
tag1 ok
|
||||
tag2 ok
|
||||
tag3 ok
|
||||
tag4 ok
|
||||
@@ -0,0 +1,71 @@
|
||||
messages: all
|
||||
|
||||
# full address searching
|
||||
ok search from [email protected]
|
||||
* search 1 2 3 4 6 7
|
||||
ok search to [email protected]
|
||||
* search 1 2 3 4
|
||||
ok search cc [email protected]
|
||||
* search 1 2 3 4 5
|
||||
ok search bcc [email protected]
|
||||
* search 1 2 3 4
|
||||
|
||||
# realname searching
|
||||
ok search from realfrom
|
||||
* search 2 4 6 7
|
||||
ok search to realto
|
||||
* search 2 4
|
||||
ok search cc realcc
|
||||
* search 2 4
|
||||
ok search bcc realbcc
|
||||
* search 2 4
|
||||
|
||||
# existence searches
|
||||
ok search header from ""
|
||||
* search 1 2 3 4 5 6 7
|
||||
ok search header to ""
|
||||
* search 1 2 3 4 6 7
|
||||
ok search header cc ""
|
||||
* search 1 2 3 4 5
|
||||
ok search header bcc ""
|
||||
* search 1 2 3 4
|
||||
|
||||
# substring address searches
|
||||
#ok search from ser-fro
|
||||
#* search 1 2 3 4 5 6 7
|
||||
#ok search to ser-t
|
||||
#* search 1 2 3 4
|
||||
#ok search cc ser-c
|
||||
#* search 1 2 3 4 5
|
||||
#ok search bcc ser-bc
|
||||
#* search 1 2 3 4
|
||||
|
||||
# substring realname searches
|
||||
#ok search from ealfro
|
||||
#* search 2 4 6 7
|
||||
#ok search to ealt
|
||||
#* search 2 4
|
||||
#ok search cc ealc
|
||||
#* search 2 4
|
||||
#ok search bcc ealbc
|
||||
#* search 2 4
|
||||
|
||||
# multiple addresses
|
||||
ok search from user-from1
|
||||
* search 5
|
||||
ok search from user-from2
|
||||
* search 5
|
||||
|
||||
# groups
|
||||
ok search to groupname
|
||||
* search 6 7
|
||||
ok search to groupname2
|
||||
* search 6
|
||||
ok search to groupuser1
|
||||
* search 6
|
||||
ok search to groupuser2
|
||||
* search 6
|
||||
ok search to groupuser3
|
||||
* search 6
|
||||
ok search to groupuser4
|
||||
* search
|
||||
@@ -0,0 +1,50 @@
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
From: [email protected]
|
||||
To: [email protected]
|
||||
Cc: [email protected]
|
||||
Bcc: [email protected]
|
||||
|
||||
body
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
From: RealFrom <[email protected]>
|
||||
To: RealTo <[email protected]>
|
||||
Cc: RealCc <[email protected]>
|
||||
Bcc: RealBcc <[email protected]>
|
||||
|
||||
body2
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
From: <user-from (comment)@ (comment) domain.org>
|
||||
To: <[email protected]>
|
||||
Cc: <[email protected]>
|
||||
Bcc: <[email protected]>
|
||||
|
||||
body3
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
From: [email protected] (RealFrom)
|
||||
To: [email protected] (RealTo)
|
||||
Cc: [email protected] (RealCc)
|
||||
Bcc: [email protected] (RealBcc)
|
||||
|
||||
body4
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
From: [email protected], [email protected]
|
||||
Cc: [email protected]
|
||||
|
||||
body5
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
From: RealFrom <[email protected]>
|
||||
To: groupname: [email protected], [email protected];,
|
||||
groupname2: [email protected];
|
||||
|
||||
body6
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
From: RealFrom <[email protected]>
|
||||
To: groupname:;
|
||||
|
||||
body7
|
||||
@@ -0,0 +1,31 @@
|
||||
messages: all
|
||||
|
||||
# search full words first
|
||||
ok search text asdfghjkl
|
||||
* search 1 2
|
||||
ok search text zxcvbnm
|
||||
* search 1 3 4
|
||||
ok search text qwertyuiop
|
||||
* search 2 4
|
||||
|
||||
ok search body asdfghjkl
|
||||
* search 1 2
|
||||
ok search body zxcvbnm
|
||||
* search 1 3 4
|
||||
ok search body qwertyuiop
|
||||
* search 4
|
||||
|
||||
# search substrings
|
||||
#ok search text sdfghjk
|
||||
#* search 1 2
|
||||
#ok search text xcvbn
|
||||
#* search 1 3 4
|
||||
#ok search text wertyuio
|
||||
#* search 2 3 4
|
||||
|
||||
#ok search body sdfghjk
|
||||
#* search 1 2
|
||||
#ok search body xcvbn
|
||||
#* search 1 3 4
|
||||
#ok search body wertyuio
|
||||
#* search 4
|
||||
@@ -0,0 +1,21 @@
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
asdfghjkl zxcvbnm
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
Subject: qwertyuiop
|
||||
|
||||
asdfghjkl
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
X-Header: qwertyuiop
|
||||
|
||||
zxcvbnm
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
zxcvbnm qwertyuiop
|
||||
@@ -0,0 +1,35 @@
|
||||
capabilities: CONTEXT=SEARCH
|
||||
state: created
|
||||
|
||||
ok append
|
||||
ok append
|
||||
ok append
|
||||
ok append
|
||||
ok append
|
||||
|
||||
ok select $mailbox
|
||||
|
||||
ok search return (update) body body seen
|
||||
* esearch (tag $searchtag)
|
||||
|
||||
ok store 1,2,4 +flags \seen
|
||||
* esearch (tag $searchtag) addto ($pos 1:2,4)
|
||||
|
||||
ok store 1,2 -flags \seen
|
||||
* esearch (tag $searchtag) removefrom ($pos2 1:2)
|
||||
|
||||
ok store 3:5 +flags \deleted
|
||||
ok expunge
|
||||
* esearch (tag $searchtag) removefrom ($pos3 $4)
|
||||
* $3 expunge
|
||||
* $4 expunge
|
||||
* $5 expunge
|
||||
|
||||
ok append $mailbox (\seen)
|
||||
* 3 exists
|
||||
* esearch (tag $searchtag) addto ($pos4 3)
|
||||
|
||||
ok cancelupdate "$searchtag"
|
||||
|
||||
ok store 1 +flags \seen
|
||||
! esearch (tag $searchtag) addto ($pos5 1)
|
||||
@@ -0,0 +1,21 @@
|
||||
capabilities: CONTEXT=SEARCH
|
||||
messages: 5
|
||||
|
||||
ok store 1,2 +flags \seen
|
||||
|
||||
ok search return (update all) or seen subject s22
|
||||
* esearch (tag $searchtag) all 1:2
|
||||
|
||||
ok store 3:5 +flags \seen
|
||||
* esearch (tag $searchtag) addto ($pos 3:5)
|
||||
|
||||
ok store 1:5 -flags \seen
|
||||
* esearch (tag $searchtag) removefrom ($pos2 1,3:5)
|
||||
|
||||
ok store 3,4 +flags \seen
|
||||
* esearch (tag $searchtag) addto ($pos3 3:4)
|
||||
|
||||
ok store 3 +flags \deleted
|
||||
ok expunge
|
||||
* 3 expunge
|
||||
* esearch (tag $searchtag) removefrom ($pos4 3)
|
||||
@@ -0,0 +1,31 @@
|
||||
capabilities: CONTEXT=SEARCH
|
||||
messages: 6
|
||||
|
||||
ok store 1 +flags \deleted
|
||||
ok expunge
|
||||
|
||||
ok fetch 1:5 uid
|
||||
* 1 fetch (uid $uid1)
|
||||
* 2 fetch (uid $uid2)
|
||||
* 3 fetch (uid $uid3)
|
||||
* 4 fetch (uid $uid4)
|
||||
* 5 fetch (uid $uid5)
|
||||
|
||||
ok store 1,2 +flags \seen
|
||||
|
||||
ok uid search return (update all) or seen subject s33
|
||||
* esearch (tag $searchtag) uid all $uid1:$uid2
|
||||
|
||||
ok store 3:5 +flags \seen
|
||||
* esearch (tag $searchtag) uid addto ($pos $uid3:$uid5)
|
||||
|
||||
ok store 1:5 -flags \seen
|
||||
* esearch (tag $searchtag) uid removefrom ($pos2 $uid1,$uid3:$uid5)
|
||||
|
||||
ok uid store $uid3,$uid4 +flags \seen
|
||||
* esearch (tag $searchtag) uid addto ($pos3 $uid3:$uid4)
|
||||
|
||||
ok store 3 +flags \deleted
|
||||
ok expunge
|
||||
* 3 expunge
|
||||
* esearch (tag $searchtag) uid removefrom ($pos4 $uid3)
|
||||
@@ -0,0 +1,71 @@
|
||||
messages: all
|
||||
|
||||
# 1) Timezone changes from EET +0200 -> EEST +0300
|
||||
# 1a) SENTBEFORE
|
||||
ok search sentbefore 24-mar-2007
|
||||
* search
|
||||
ok search sentbefore 25-mar-2007
|
||||
* search 1
|
||||
ok search sentbefore 27-mar-2007
|
||||
* search 1 2 3 4 5 6 7
|
||||
|
||||
# 1b) SENTON
|
||||
ok search senton 23-mar-2007
|
||||
* search
|
||||
ok search senton 24-mar-2007
|
||||
* search 1
|
||||
ok search senton 25-mar-2007
|
||||
* search 2 3 4 5 6
|
||||
ok search senton 26-mar-2007
|
||||
* search 7
|
||||
|
||||
# 1c) SENTSINCE
|
||||
ok search 1:7 sentsince 24-mar-2007
|
||||
* search 1 2 3 4 5 6 7
|
||||
ok search 1:7 sentsince 25-mar-2007
|
||||
* search 2 3 4 5 6 7
|
||||
ok search 1:7 sentsince 26-mar-2007
|
||||
* search 7
|
||||
ok search 1:7 sentsince 27-mar-2007
|
||||
* search
|
||||
|
||||
# 2) Timezone changes from EEST +0300 -> EET +0200
|
||||
# 2a) SENTBEFORE
|
||||
ok search 8:* sentbefore 27-oct-2007
|
||||
* search
|
||||
ok search 8:* sentbefore 28-oct-2007
|
||||
* search 8
|
||||
ok search 8:* sentbefore 29-oct-2007
|
||||
* search 8 9 10 11 12 13 14 15
|
||||
ok search 8:* sentbefore 30-oct-2007
|
||||
* search 8 9 10 11 12 13 14 15 16
|
||||
|
||||
# 2b) SENTON
|
||||
ok search 8:* senton 26-oct-2007
|
||||
* search
|
||||
ok search 8:* senton 27-oct-2007
|
||||
* search 8
|
||||
ok search 8:* senton 28-oct-2007
|
||||
* search 9 10 11 12 13 14 15
|
||||
ok search 8:* senton 29-oct-2007
|
||||
* search 16
|
||||
|
||||
# 2c) SENTSINCE
|
||||
ok search 8:* sentsince 27-oct-2007
|
||||
* search 8 9 10 11 12 13 14 15 16
|
||||
ok search 8:* sentsince 28-oct-2007
|
||||
* search 9 10 11 12 13 14 15 16
|
||||
ok search 8:* sentsince 29-oct-2007
|
||||
* search 16
|
||||
ok search 8:* sentsince 30-oct-2007
|
||||
* search
|
||||
|
||||
# 3) Try a couple of NOTs
|
||||
ok search 1:7 not sentbefore 26-mar-2007
|
||||
* search 7
|
||||
ok search 1:7 not senton 25-mar-2007
|
||||
* search 1 7
|
||||
ok search 8:* not sentsince 28-oct-2007
|
||||
* search 8
|
||||
ok search 8:* not senton 28-oct-2007
|
||||
* search 8 16
|
||||
@@ -0,0 +1,80 @@
|
||||
From user@domain Sat Mar 24 23:00:00 2007 +0000
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0000
|
||||
|
||||
body
|
||||
|
||||
From user@domain Sat Mar 24 23:00:00 2007 +0000
|
||||
Date: Sun, 25 Mar 2007 00:00:00 +0000
|
||||
|
||||
body
|
||||
|
||||
From user@domain Sat Mar 24 23:00:00 2007 +0000
|
||||
Date: Sun, 25 Mar 2007 01:00:00 +0000
|
||||
|
||||
body
|
||||
|
||||
From user@domain Sat Mar 24 23:00:00 2007 +0000
|
||||
Date: Sun, 25 Mar 2007 02:00:00 +0000
|
||||
|
||||
body
|
||||
|
||||
From user@domain Sat Mar 24 23:00:00 2007 +0000
|
||||
Date: Sun, 25 Mar 2007 04:00:00 +0000
|
||||
|
||||
body
|
||||
|
||||
From user@domain Sat Mar 24 23:00:00 2007 +0000
|
||||
Date: Sun, 25 Mar 2007 23:00:00 +0000
|
||||
|
||||
body
|
||||
|
||||
From user@domain Sat Mar 24 23:00:00 2007 +0000
|
||||
Date: Mon, 26 Mar 2007 00:00:00 +0000
|
||||
|
||||
body
|
||||
|
||||
From user@domain Sat Mar 24 23:00:00 2007 +0000
|
||||
Date: Sat, 27 Oct 2007 03:00:00 +0000
|
||||
|
||||
body
|
||||
|
||||
From user@domain Sat Mar 24 23:00:00 2007 +0000
|
||||
Date: Sun, 28 Oct 2007 00:00:00 +0000
|
||||
|
||||
body
|
||||
|
||||
From user@domain Sat Mar 24 23:00:00 2007 +0000
|
||||
Date: Sun, 28 Oct 2007 01:00:00 +0000
|
||||
|
||||
body
|
||||
|
||||
From user@domain Sat Mar 24 23:00:00 2007 +0000
|
||||
Date: Sun, 28 Oct 2007 02:00:00 +0000
|
||||
|
||||
body
|
||||
|
||||
From user@domain Sat Mar 24 23:00:00 2007 +0000
|
||||
Date: Sun, 28 Oct 2007 03:00:00 +0000
|
||||
|
||||
body
|
||||
|
||||
From user@domain Sat Mar 24 23:00:00 2007 +0000
|
||||
Date: Sun, 28 Oct 2007 03:00:00 +0000
|
||||
|
||||
body
|
||||
|
||||
From user@domain Sat Mar 24 23:00:00 2007 +0000
|
||||
Date: Sun, 28 Oct 2007 04:00:00 +0000
|
||||
|
||||
body
|
||||
|
||||
From user@domain Sat Mar 24 23:00:00 2007 +0000
|
||||
Date: Sun, 28 Oct 2007 23:00:00 +0000
|
||||
|
||||
body
|
||||
|
||||
From user@domain Sat Mar 24 23:00:00 2007 +0000
|
||||
Date: Mon, 29 Oct 2007 00:00:00 +0000
|
||||
|
||||
body
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
messages: 5
|
||||
|
||||
ok store 1 flags ($$hello)
|
||||
ok store 2 flags (\seen \flagged)
|
||||
ok store 3 flags (\answered $$hello)
|
||||
ok store 4 flags (\flagged \draft)
|
||||
ok store 5 flags (\deleted \answered)
|
||||
|
||||
ok search answered
|
||||
* search 3 5
|
||||
ok search unanswered
|
||||
* search 1 2 4
|
||||
|
||||
ok search deleted
|
||||
* search 5
|
||||
ok search undeleted
|
||||
* search 1 2 3 4
|
||||
|
||||
ok search draft
|
||||
* search 4
|
||||
ok search undraft
|
||||
* search 1 2 3 5
|
||||
|
||||
ok search flagged
|
||||
* search 2 4
|
||||
ok search unflagged
|
||||
* search 1 3 5
|
||||
|
||||
ok search seen
|
||||
* search 2
|
||||
ok search unseen
|
||||
* search 1 3 4 5
|
||||
|
||||
ok search keyword $$hello
|
||||
* search 1 3
|
||||
ok search unkeyword $$hello
|
||||
* search 2 4 5
|
||||
|
||||
#ok search new
|
||||
#* search 1 3 4 5
|
||||
|
||||
#ok search old
|
||||
#* search
|
||||
|
||||
#ok search recent
|
||||
#* search 1 2 3 4 5
|
||||
|
||||
ok store 1:* flags (\seen)
|
||||
ok store 2 +flags (\flagged)
|
||||
ok search seen flagged
|
||||
* search 2
|
||||
ok search seen not flagged
|
||||
* search 1 3 4 5
|
||||
ok search not seen flagged
|
||||
* search
|
||||
ok search not seen not flagged
|
||||
* search
|
||||
|
||||
ok store 1:* flags (\deleted)
|
||||
ok store 2 +flags (\flagged)
|
||||
ok search deleted flagged
|
||||
* search 2
|
||||
ok search deleted not flagged
|
||||
* search 1 3 4 5
|
||||
ok search not deleted flagged
|
||||
* search
|
||||
ok search not deleted not flagged
|
||||
* search
|
||||
|
||||
ok store 1:* flags (\seen \deleted)
|
||||
ok store 2 +flags (\flagged)
|
||||
ok search seen flagged
|
||||
* search 2
|
||||
ok search seen not flagged
|
||||
* search 1 3 4 5
|
||||
ok search not seen flagged
|
||||
* search
|
||||
ok search not seen not flagged
|
||||
* search
|
||||
ok search seen deleted flagged
|
||||
* search 2
|
||||
ok search seen deleted not flagged
|
||||
* search 1 3 4 5
|
||||
ok search not seen deleted flagged
|
||||
* search
|
||||
ok search not seen deleted not flagged
|
||||
* search
|
||||
ok search seen not deleted flagged
|
||||
* search
|
||||
ok search seen not deleted not flagged
|
||||
* search
|
||||
ok search not seen not deleted flagged
|
||||
* search
|
||||
ok search not seen not deleted not flagged
|
||||
* search
|
||||
@@ -0,0 +1,37 @@
|
||||
messages: all
|
||||
|
||||
# just check that this returns ok. it's not really specified in RFC, so
|
||||
# don't verify the result.
|
||||
ok search subject ""
|
||||
|
||||
# subject
|
||||
ok search subject hello
|
||||
* search 1
|
||||
ok search subject beautiful
|
||||
* search 1
|
||||
ok search subject world
|
||||
* search 1
|
||||
ok search subject "hello beautiful"
|
||||
* search 1
|
||||
ok search subject "hello beautiful world"
|
||||
* search 1
|
||||
#ok search subject "eautiful worl"
|
||||
#* search 1
|
||||
|
||||
# header
|
||||
ok search header subject ""
|
||||
* search 1
|
||||
ok search not header subject ""
|
||||
* search 2
|
||||
#ok search header x-extra ""
|
||||
#* search 2
|
||||
#ok search not header x-extra ""
|
||||
#* search 1
|
||||
#ok search header x-extra hello
|
||||
#* search 2
|
||||
#ok search header x-extra "hello beautiful"
|
||||
#* search 2
|
||||
#ok search header x-extra "eautiful head"
|
||||
#* search 2
|
||||
#ok search header x-extra "another"
|
||||
#* search 2
|
||||
@@ -0,0 +1,10 @@
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
Subject: hello beautiful world
|
||||
|
||||
body
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
X-Extra: hello beautiful header
|
||||
X-Extra: another one
|
||||
|
||||
body
|
||||
@@ -0,0 +1,54 @@
|
||||
capabilities: CONTEXT=SEARCH
|
||||
messages: all
|
||||
|
||||
ok search return (partial 1:1) all
|
||||
* esearch (tag $tag) partial (1:1 1)
|
||||
ok search return (partial 2:4) all
|
||||
* esearch (tag $tag) partial (2:4 2:4)
|
||||
ok search return (partial 4:2) all
|
||||
* esearch (tag $tag) partial (2:4 2:4)
|
||||
ok search return (partial 1:6) all
|
||||
* esearch (tag $tag) partial (1:6 1:5)
|
||||
ok search return (partial 6:6) all
|
||||
* esearch (tag $tag) partial (6:6 nil)
|
||||
|
||||
ok search return (partial 1:3) 1:2,4:5
|
||||
* esearch (tag $tag) partial (1:3 1:2,4)
|
||||
ok search return (partial 2:3) 1:2,4:5
|
||||
* esearch (tag $tag) partial (2:3 2,4)
|
||||
ok search return (partial 2:4) 1:2,4:5
|
||||
* esearch (tag $tag) partial (2:4 2,4:5)
|
||||
ok search return (partial 2:10) 1:2,4:5
|
||||
* esearch (tag $tag) partial (2:10 2,4:5)
|
||||
|
||||
# UID partials
|
||||
|
||||
ok fetch 1 uid
|
||||
* 1 fetch (uid $uid1)
|
||||
ok fetch 2 uid
|
||||
* 2 fetch (uid $uid2)
|
||||
ok fetch 3 uid
|
||||
* 3 fetch (uid $uid3)
|
||||
ok fetch 5 uid
|
||||
* 5 fetch (uid $uid5)
|
||||
|
||||
ok uid search return (partial 1:1) all
|
||||
* esearch (tag $tag) uid partial (1:1 $uid1)
|
||||
|
||||
ok uid search return (partial 2:2) all
|
||||
* esearch (tag $tag) uid partial (2:2 $uid2)
|
||||
|
||||
ok store 2 +flags \deleted
|
||||
ok expunge
|
||||
|
||||
ok uid search return (partial 2:2) all
|
||||
* esearch (tag $tag) uid partial (2:2 $uid3)
|
||||
|
||||
ok uid search return (partial 5:10) all
|
||||
* esearch (tag $tag) uid partial (5:10 nil)
|
||||
|
||||
# broken results
|
||||
|
||||
bad search return (partial 1) all
|
||||
bad search return (partial 1:*) all
|
||||
bad search return (partial *:1) all
|
||||
@@ -0,0 +1,19 @@
|
||||
From user@domain Fri Feb 22 17:06:21 2008
|
||||
|
||||
1
|
||||
|
||||
From user@domain Fri Feb 22 17:06:22 2008
|
||||
|
||||
2
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
|
||||
3
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
|
||||
4
|
||||
|
||||
From user@domain Fri Feb 22 17:06:25 2008
|
||||
|
||||
5
|
||||
@@ -0,0 +1,62 @@
|
||||
messages: 6
|
||||
|
||||
ok uid search all
|
||||
* search $uid1 $uid2 $uid3 $uid4 $uid5 $uid6
|
||||
ok status $mailbox (uidnext)
|
||||
* status $mailbox (uidnext $uidnext)
|
||||
|
||||
# break seq=uid mapping
|
||||
ok store 2 +flags \deleted
|
||||
ok expunge
|
||||
* 2 expunge
|
||||
|
||||
ok search all
|
||||
* search 1 2 3 4 5
|
||||
ok uid search all
|
||||
* search $uid1 $uid3 $uid4 $uid5 $uid6
|
||||
|
||||
ok search 1:3,5
|
||||
* search 1 2 3 5
|
||||
ok search 4:2
|
||||
* search 2 3 4
|
||||
ok search uid $uid1:$uid3,$uid5
|
||||
* search 1 2 4
|
||||
ok search uid $uid4:$uid2
|
||||
* search 2 3
|
||||
|
||||
ok search 1:3 not uid $uid3
|
||||
* search 1 3
|
||||
ok search not 2,4
|
||||
* search 1 3 5
|
||||
ok search or 1 uid $uid3
|
||||
* search 1 2
|
||||
|
||||
ok search *
|
||||
* search 5
|
||||
ok search uid *
|
||||
* search 5
|
||||
ok search uid $uidnext:*
|
||||
* search 5
|
||||
ok search *:3
|
||||
* search 3 4 5
|
||||
ok search 1,4,*
|
||||
* search 1 4 5
|
||||
|
||||
# These are in a bit of a grey area. Most servers allow them, but it's not
|
||||
# explicitly defined in the RFC that they're legal:
|
||||
#ok search 6:*
|
||||
#* search 5
|
||||
#ok search *:6
|
||||
#* search 5
|
||||
|
||||
ok search (3) uid $uid4
|
||||
* search 3
|
||||
ok search (uid $uid4) 3
|
||||
* search 3
|
||||
ok search 3 (uid $uid4)
|
||||
* search 3
|
||||
|
||||
ok uid search uid 1:4294967295
|
||||
* search $uid1 $uid3 $uid4 $uid5 $uid6
|
||||
ok uid search uid $uidnext:4294967295
|
||||
* search
|
||||
@@ -0,0 +1,22 @@
|
||||
messages: all
|
||||
|
||||
# get the middle size. don't trust precalculated values in case server
|
||||
# modifies the message while APPENDing it. Messages 3 and 4 have different
|
||||
# RFC822.SIZE, but with servers that store linefeeds as LFs they have the
|
||||
# same file size. This test catches if they search using file size.
|
||||
ok fetch 1:4 rfc822.size
|
||||
* 3 fetch (rfc822.size $size)
|
||||
|
||||
ok search smaller $size
|
||||
* search 1 2
|
||||
ok search larger $size
|
||||
* search 4
|
||||
ok search not smaller $size
|
||||
* search 3 4
|
||||
ok search not larger $size
|
||||
* search 1 2 3
|
||||
|
||||
ok search not smaller $size not larger $size
|
||||
* search 3
|
||||
ok search or smaller $size larger $size
|
||||
* search 1 2 4
|
||||
@@ -0,0 +1,21 @@
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
1
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
22
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
333
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
4
|
||||
4
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
state: created
|
||||
|
||||
ok append
|
||||
ok append
|
||||
|
||||
# first open read-only so recent flags don't get lost
|
||||
examine $mailbox
|
||||
* 2 exists
|
||||
#* 2 recent
|
||||
#* ok [unseen 1]
|
||||
* ok [uidvalidity $uidvalidity]
|
||||
* ok [uidnext $uidnext]
|
||||
ok [read-only]
|
||||
|
||||
ok close
|
||||
|
||||
# check that STATUS replies with the same values
|
||||
ok status $mailbox (messages uidnext uidvalidity unseen)
|
||||
* status $mailbox (messages 2 uidnext $uidnext uidvalidity $uidvalidity unseen 2)
|
||||
|
||||
# then try read-write
|
||||
select $mailbox
|
||||
* 2 exists
|
||||
#* 2 recent
|
||||
#* ok [unseen 1]
|
||||
* ok [uidvalidity $uidvalidity]
|
||||
* ok [uidnext $uidnext]
|
||||
ok [read-write]
|
||||
|
||||
ok close
|
||||
|
||||
#ok status $mailbox (recent)
|
||||
#* status $mailbox (recent 0)
|
||||
@@ -0,0 +1,10 @@
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
body
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
body2
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
capabilities: SORT
|
||||
messages: all
|
||||
|
||||
ok sort (from) us-ascii all
|
||||
* sort 3 2 1
|
||||
ok sort (to) us-ascii all
|
||||
* sort 3 2 1
|
||||
ok sort (cc) us-ascii all
|
||||
* sort 2 1 3
|
||||
|
||||
ok sort (reverse from) us-ascii all
|
||||
* sort 1 2 3
|
||||
ok sort (reverse to) us-ascii all
|
||||
* sort 1 2 3
|
||||
ok sort (reverse cc) us-ascii all
|
||||
* sort 3 1 2
|
||||
|
||||
ok sort (from reverse arrival) us-ascii all
|
||||
* sort 3 2 1
|
||||
ok sort (to reverse arrival) us-ascii all
|
||||
* sort 3 2 1
|
||||
ok sort (cc reverse arrival) us-ascii all
|
||||
* sort 2 1 3
|
||||
@@ -0,0 +1,21 @@
|
||||
From user@domain Fri Feb 22 00:06:23 2008
|
||||
From: [email protected]
|
||||
To: [email protected]
|
||||
Cc: [email protected] (foo bar)
|
||||
|
||||
1
|
||||
|
||||
From user@domain Fri Feb 22 01:06:23 2008
|
||||
From: [email protected]
|
||||
To: [email protected]
|
||||
Cc: [email protected]
|
||||
|
||||
2
|
||||
|
||||
From user@domain Fri Feb 22 02:06:23 2008
|
||||
From: [email protected]
|
||||
To: [email protected]
|
||||
Cc: [email protected]
|
||||
|
||||
3
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
capabilities: SORT
|
||||
messages: all
|
||||
|
||||
ok sort (arrival) us-ascii all
|
||||
* sort 1 3 2 4 5
|
||||
|
||||
ok sort (reverse arrival) us-ascii all
|
||||
* sort 5 4 2 3 1
|
||||
|
||||
ok sort (arrival reverse size) us-ascii all
|
||||
* sort 1 3 5 4 2
|
||||
@@ -0,0 +1,20 @@
|
||||
From user@domain Fri Feb 22 00:00:00 2008
|
||||
|
||||
1
|
||||
|
||||
From user@domain Fri Feb 22 02:00:00 2008
|
||||
|
||||
2
|
||||
|
||||
From user@domain Fri Feb 22 01:00:00 2008
|
||||
|
||||
33
|
||||
|
||||
From user@domain Fri Feb 22 02:00:00 2008
|
||||
|
||||
44
|
||||
|
||||
From user@domain Fri Feb 22 02:00:00 2008
|
||||
|
||||
5555
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
capabilities: SORT
|
||||
messages: all
|
||||
|
||||
ok sort (date) us-ascii all
|
||||
* sort 1 3 7 5 2 4 6
|
||||
|
||||
ok sort (reverse date) us-ascii all
|
||||
* sort 6 4 2 5 7 3 1
|
||||
|
||||
ok sort (date reverse size) us-ascii all
|
||||
* sort 1 7 3 5 6 4 2
|
||||
@@ -0,0 +1,37 @@
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
Date: Fri, 22 Feb 2008 00:00:00 +0200
|
||||
|
||||
1
|
||||
|
||||
From user@domain Fri Feb 22 22:00:00 2008 +0200
|
||||
Date: Fri, 22 Feb 2008 02:00:00 +0200
|
||||
|
||||
2
|
||||
|
||||
From user@domain Fri Feb 22 21:00:00 2008 +0200
|
||||
Date: Fri, 22 Feb 2008 01:00:00 +0200
|
||||
|
||||
33
|
||||
|
||||
From user@domain Fri Feb 22 20:00:00 2008 +0200
|
||||
Date: Fri, 22 Feb 2008 02:00:00 +0200
|
||||
|
||||
44
|
||||
|
||||
From user@domain Fri Feb 22 01:30:23 2008 +0200
|
||||
Date: Fri, 22 Feb 2008 01:30:23 +0200
|
||||
Subject: foo
|
||||
|
||||
55555
|
||||
|
||||
From user@domain Fri Feb 22 18:00:00 2008 +0200
|
||||
Date: Fri, 22 Feb 2008 02:00:00 +0200
|
||||
|
||||
6666
|
||||
|
||||
From user@domain Fri Feb 22 01:00:00 2008 +0200
|
||||
Date: Fri, 22 Feb 2008 01:00:00 +0200
|
||||
Subject: foo bar foo bar foo bar fooo
|
||||
|
||||
777
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
capabilities: SORT=DISPLAY
|
||||
messages: all
|
||||
|
||||
ok sort (displayfrom) us-ascii all
|
||||
* sort 2 3 4 1 5
|
||||
|
||||
ok sort (reverse displayfrom) us-ascii all
|
||||
* sort 5 1 4 3 2
|
||||
@@ -0,0 +1,24 @@
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
From: foo bar <[email protected]>
|
||||
|
||||
1
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
From: [email protected]
|
||||
|
||||
2
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
From: d
|
||||
|
||||
3
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
From: =?iso-8859-1?q?foo_aar?= <[email protected]>
|
||||
|
||||
4
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
From: =?iso-8859-1?q?foo_car?= <[email protected]>
|
||||
|
||||
5
|
||||
@@ -0,0 +1,8 @@
|
||||
capabilities: SORT=DISPLAY
|
||||
messages: all
|
||||
|
||||
ok sort (displayto) us-ascii all
|
||||
* sort 8 7 2 3 4 1 5 6
|
||||
|
||||
ok sort (reverse displayto) us-ascii all
|
||||
* sort 6 5 1 4 3 2 7 8
|
||||
@@ -0,0 +1,39 @@
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
To: foo bar <[email protected]>
|
||||
|
||||
1
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
To: [email protected]
|
||||
|
||||
2
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
To: d
|
||||
|
||||
3
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
To: =?iso-8859-1?q?foo_aar?= <[email protected]>
|
||||
|
||||
4
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
To: =?iso-8859-1?q?foo_car?= <[email protected]>
|
||||
|
||||
5
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
To: a: [email protected], [email protected];
|
||||
|
||||
6
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
To: z: [email protected], [email protected];
|
||||
|
||||
7
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
To: empty:;
|
||||
|
||||
8
|
||||
@@ -0,0 +1,19 @@
|
||||
capabilities: CONTEXT=SORT
|
||||
messages: all
|
||||
|
||||
ok sort return (partial 1:1) (arrival) us-ascii all
|
||||
* esearch (tag $tag) partial (1:1 1)
|
||||
ok sort return (partial 2:4) (arrival) us-ascii all
|
||||
* esearch (tag $tag) partial (2:4 2:4)
|
||||
ok sort return (partial 4:2) (arrival) us-ascii all
|
||||
* esearch (tag $tag) partial (2:4 2:4)
|
||||
ok sort return (partial 2:4) (reverse arrival) us-ascii all
|
||||
* esearch (tag $tag) partial (2:4 3:4,2)
|
||||
ok sort return (partial 1:6) (arrival) us-ascii all
|
||||
* esearch (tag $tag) partial (1:6 1:5)
|
||||
ok sort return (partial 1:6) (reverse arrival) us-ascii all
|
||||
* esearch (tag $tag) partial (1:6 5,3:4,2,1)
|
||||
|
||||
bad sort return (partial 1) (arrival) us-ascii all
|
||||
bad sort return (partial 1:*) (arrival) us-ascii all
|
||||
bad sort return (partial *:1) (arrival) us-ascii all
|
||||
@@ -0,0 +1,19 @@
|
||||
From user@domain Fri Feb 22 17:06:21 2008
|
||||
|
||||
1
|
||||
|
||||
From user@domain Fri Feb 22 17:06:22 2008
|
||||
|
||||
2
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
|
||||
3
|
||||
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
|
||||
4
|
||||
|
||||
From user@domain Fri Feb 22 17:06:25 2008
|
||||
|
||||
5
|
||||
@@ -0,0 +1,11 @@
|
||||
capabilities: SORT
|
||||
messages: all
|
||||
|
||||
ok sort (size) us-ascii all
|
||||
* sort 1 8 2 6 3 5 4 7
|
||||
|
||||
ok sort (reverse size) us-ascii all
|
||||
* sort 7 4 5 3 6 2 8 1
|
||||
|
||||
ok sort (size reverse arrival) us-ascii all
|
||||
* sort 8 1 6 2 5 3 7 4
|
||||
@@ -0,0 +1,41 @@
|
||||
From user@domain Fri Feb 22 00:06:23 2008
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
1
|
||||
|
||||
From user@domain Fri Feb 22 01:06:23 2008
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
22
|
||||
|
||||
From user@domain Fri Feb 22 02:06:23 2008
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
333
|
||||
|
||||
From user@domain Fri Feb 22 03:06:23 2008
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
4
|
||||
4
|
||||
|
||||
From user@domain Fri Feb 22 04:06:23 2008
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
555
|
||||
|
||||
From user@domain Fri Feb 22 05:06:23 2008
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
66
|
||||
|
||||
From user@domain Fri Feb 22 06:06:23 2008
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
7777
|
||||
|
||||
From user@domain Fri Feb 22 07:06:23 2008
|
||||
Date: Sat, 24 Mar 2007 23:00:00 +0200
|
||||
|
||||
8
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
capabilities: SORT
|
||||
messages: all
|
||||
|
||||
ok sort (subject) us-ascii all
|
||||
* sort 9 10 14 2 12 15 8 4 1 3 5 11 6 7 13
|
||||
|
||||
ok sort (reverse subject) us-ascii all
|
||||
* sort 13 7 6 11 5 3 1 4 8 15 12 2 14 10 9
|
||||
|
||||
ok sort (subject reverse size) us-ascii all
|
||||
* sort 10 9 14 12 2 15 8 4 1 11 5 3 6 13 7
|
||||
@@ -0,0 +1,81 @@
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
Subject: a
|
||||
|
||||
1
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
Subject: C
|
||||
|
||||
2
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
Subject: b
|
||||
|
||||
3
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
Subject: _
|
||||
|
||||
4
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
Subject: [foo] Fwd: [bar] Re: fw: b (fWd) (fwd)
|
||||
|
||||
55
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
Subject: b (a)
|
||||
|
||||
66
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
Subject: Re: [FWD: c]
|
||||
|
||||
77
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
Subject: [xyz]
|
||||
|
||||
88
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
|
||||
9
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
Subject: =?iso-8859-1?q?_?=
|
||||
|
||||
10
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
Subject: Re: =?utf-8?q?b?=
|
||||
|
||||
11
|
||||
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
Subject: =?iso-8859-1?q?RE:_C?=
|
||||
|
||||
12
|
||||
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
Subject: =?us-ascii?b?UmU6IGM=?=
|
||||
|
||||
13
|
||||
|
||||
The subject is 'Re: c'.
|
||||
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
Subject: Ad: Re: Ad: Re: Ad: x
|
||||
|
||||
14
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
Subject: re: [fwd: [fwd: re: [fwd: babylon]]]
|
||||
|
||||
15
|
||||
@@ -0,0 +1,33 @@
|
||||
connections: 2
|
||||
messages: 4
|
||||
|
||||
# simple tests
|
||||
1 ok store 1:3 flags (\seen)
|
||||
* 1 fetch (flags (\seen))
|
||||
* 2 fetch (flags (\seen))
|
||||
* 3 fetch (flags (\seen))
|
||||
|
||||
2 ok check
|
||||
* 1 fetch (flags (\seen))
|
||||
* 2 fetch (flags (\seen))
|
||||
* 3 fetch (flags (\seen))
|
||||
|
||||
1 ok store 4 -flags \seen
|
||||
1 ok store 3 flags (\draft)
|
||||
* 3 fetch (flags (\draft))
|
||||
|
||||
# keywords
|
||||
1 ok store 2,4 +flags ($$hello $$world)
|
||||
* 2 fetch (flags (\seen $$hello $$world))
|
||||
* 4 fetch (flags ($$hello $$world))
|
||||
|
||||
# check that two sessions don't overwrite each others' changes
|
||||
1 ok store 1 +flags (\answered)
|
||||
2 ok store 1 -flags (\seen)
|
||||
1 ok check
|
||||
2 ok check
|
||||
|
||||
1 ok fetch 1 flags
|
||||
* 1 fetch (flags (\answered))
|
||||
2 ok fetch 1 flags
|
||||
* 1 fetch (flags (\answered))
|
||||
@@ -0,0 +1,49 @@
|
||||
connections: 2
|
||||
state: auth
|
||||
|
||||
# get the separator
|
||||
1 ok list "" ""
|
||||
* list () $sep $root
|
||||
|
||||
1 "" unsubscribe $mailbox${sep}test
|
||||
1 "" unsubscribe $mailbox${sep}test2
|
||||
1 "" unsubscribe $mailbox${sep}test2${sep}test
|
||||
1 "" unsubscribe $mailbox${sep}test3${sep}test3
|
||||
|
||||
1 ok create $mailbox${sep}
|
||||
1 ok create $mailbox${sep}test
|
||||
1 ok create $mailbox${sep}test2${sep}
|
||||
1 ok create $mailbox${sep}test3${sep}
|
||||
1 ok create $mailbox${sep}test2${sep}test
|
||||
1 ok create $mailbox${sep}test3${sep}test3
|
||||
# create the test2 mailbox only if server supports inferior mailboxes
|
||||
1 "" create $mailbox${sep}test2
|
||||
|
||||
1 ok subscribe $mailbox${sep}test
|
||||
1 ok subscribe $mailbox${sep}test2${sep}test
|
||||
1 ok subscribe $mailbox${sep}test3${sep}test3
|
||||
|
||||
2 ok lsub "" $mailbox${sep}%
|
||||
* lsub () $sep $mailbox${sep}test
|
||||
#* lsub (\noselect) $sep $mailbox${sep}test2
|
||||
#* lsub (\noselect) $sep $mailbox${sep}test3
|
||||
! lsub (\noselect) $sep $mailbox${sep}test2${sep}test
|
||||
! lsub (\noselect) $sep $mailbox${sep}test3${sep}test3
|
||||
|
||||
2 ok lsub "" *test
|
||||
* lsub () $sep $mailbox${sep}test
|
||||
* lsub () $sep $mailbox${sep}test2${sep}test
|
||||
! lsub () $sep $mailbox${sep}test3${sep}test3
|
||||
|
||||
1 ok unsubscribe $mailbox${sep}test
|
||||
2 ok lsub "" $mailbox${sep}%
|
||||
! lsub () $sep $mailbox${sep}test
|
||||
|
||||
1 ok unsubscribe $mailbox${sep}test2${sep}test
|
||||
2 ok lsub "" $mailbox${sep}*
|
||||
! lsub () $sep $mailbox${sep}test
|
||||
* lsub () $sep $mailbox${sep}test3${sep}test3
|
||||
|
||||
1 ok unsubscribe $mailbox${sep}test3${sep}test3
|
||||
2 ok lsub "" $mailbox${sep}%
|
||||
! lsub () $sep $mailbox${sep}test3
|
||||
@@ -0,0 +1,11 @@
|
||||
capabilities: THREAD=REFERENCES
|
||||
messages: all
|
||||
|
||||
ok thread references us-ascii all
|
||||
* thread (1 2 3)
|
||||
|
||||
ok store 1 +flags \deleted
|
||||
ok expunge
|
||||
|
||||
ok thread references us-ascii all
|
||||
* thread (1 2)
|
||||
@@ -0,0 +1,5 @@
|
||||
capabilities: THREAD=ORDEREDSUBJECT
|
||||
messages: all
|
||||
|
||||
ok thread orderedsubject us-ascii all
|
||||
* THREAD (1)(2 (7)(12)(13))(3 (5)(11))(4)(6)(8)(9 10)(14)(15)
|
||||
@@ -0,0 +1,81 @@
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
Subject: a
|
||||
|
||||
1
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
Subject: C
|
||||
|
||||
2
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
Subject: b
|
||||
|
||||
3
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
Subject: _
|
||||
|
||||
4
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
Subject: [foo] Fwd: [bar] Re: fw: b (fWd) (fwd)
|
||||
|
||||
55
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
Subject: b (a)
|
||||
|
||||
66
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
Subject: Re: [FWD: c]
|
||||
|
||||
77
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
Subject: [xyz]
|
||||
|
||||
88
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
|
||||
9
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
Subject: =?iso-8859-1?q?_?=
|
||||
|
||||
10
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
Subject: Re: =?utf-8?q?b?=
|
||||
|
||||
11
|
||||
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
Subject: =?iso-8859-1?q?RE:_C?=
|
||||
|
||||
12
|
||||
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
Subject: =?us-ascii?b?UmU6IGM=?=
|
||||
|
||||
13
|
||||
|
||||
The subject is 'Re: c'.
|
||||
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
Subject: Ad: Re: Ad: Re: Ad: x
|
||||
|
||||
14
|
||||
|
||||
From user@domain Fri Feb 22 23:00:00 2008 +0200
|
||||
Subject: re: [fwd: [fwd: re: [fwd: babylon]]]
|
||||
|
||||
15
|
||||
@@ -0,0 +1,5 @@
|
||||
capabilities: THREAD=ORDEREDSUBJECT
|
||||
messages: all
|
||||
|
||||
ok thread orderedsubject us-ascii all
|
||||
* THREAD (4 (2)(8)(6))(3 (1)(7)(5))
|
||||
@@ -0,0 +1,44 @@
|
||||
From user@domain Fri Feb 22 23:00:01 2008 +0200
|
||||
Subject: a
|
||||
Date: Fri, 22 Feb 2008 22:00:10 +0200
|
||||
|
||||
1
|
||||
|
||||
From user@domain Fri Feb 22 23:00:02 2008 +0200
|
||||
Date: Fri, 22 Feb 2008 22:00:09 +0200
|
||||
Subject: b
|
||||
|
||||
2
|
||||
|
||||
From user@domain Fri Feb 22 23:00:03 2008 +0200
|
||||
Date: Fri, 22 Feb 2008 22:00:08 +0200
|
||||
Subject: a
|
||||
|
||||
3
|
||||
|
||||
From user@domain Fri Feb 22 23:00:04 2008 +0200
|
||||
Date: Fri, 22 Feb 2008 22:00:07 +0200
|
||||
Subject: b
|
||||
|
||||
4
|
||||
|
||||
From user@domain Fri Feb 22 22:00:30 2008 +0200
|
||||
Subject: a
|
||||
|
||||
5
|
||||
|
||||
From user@domain Fri Feb 22 22:00:29 2008 +0200
|
||||
Subject: b
|
||||
|
||||
6
|
||||
|
||||
From user@domain Fri Feb 22 22:00:28 2008 +0200
|
||||
Subject: a
|
||||
|
||||
7
|
||||
|
||||
From user@domain Fri Feb 22 22:00:27 2008 +0200
|
||||
Subject: b
|
||||
|
||||
8
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
Message-ID: <a@b>
|
||||
|
||||
body
|
||||
|
||||
From user@domain Fri Feb 22 15:06:23 2008
|
||||
Message-Id: <b@b>
|
||||
References: <a@b> <c@b>
|
||||
|
||||
body
|
||||
|
||||
From user@domain Fri Feb 22 16:06:25 2008
|
||||
Message-Id: <c@b>
|
||||
References: <b@b>
|
||||
|
||||
body
|
||||
@@ -0,0 +1,5 @@
|
||||
capabilities: THREAD=REFERENCES
|
||||
messages: all
|
||||
|
||||
ok thread references us-ascii all
|
||||
* thread (1)(2)
|
||||
@@ -0,0 +1,9 @@
|
||||
From user@domain Fri Feb 22 15:06:23 2008
|
||||
Message-Id: <a@b>
|
||||
|
||||
body
|
||||
|
||||
From user@domain Fri Feb 22 15:06:23 2008
|
||||
Message-Id: <a@c>
|
||||
|
||||
body
|
||||
@@ -0,0 +1,5 @@
|
||||
capabilities: THREAD=REFERENCES
|
||||
messages: all
|
||||
|
||||
ok thread references us-ascii all
|
||||
* THREAD (1 2)
|
||||
@@ -0,0 +1,11 @@
|
||||
From user@domain Fri Feb 22 15:06:23 2008
|
||||
Message-Id: <a@b>
|
||||
Subject: foo
|
||||
|
||||
body
|
||||
|
||||
From user@domain Fri Feb 22 15:06:24 2008
|
||||
Message-Id: <a@b>
|
||||
Subject: Re: foo
|
||||
|
||||
body
|
||||
@@ -0,0 +1,5 @@
|
||||
capabilities: THREAD=REFERENCES
|
||||
messages: all
|
||||
|
||||
ok thread references us-ascii all
|
||||
* THREAD (1 2)
|
||||
@@ -0,0 +1,12 @@
|
||||
From user@domain Fri Feb 22 15:06:23 2008
|
||||
Message-Id: <a@b>
|
||||
Subject: foo
|
||||
|
||||
body
|
||||
|
||||
From user@domain Fri Feb 22 15:06:24 2008
|
||||
Message-Id: <b@b>
|
||||
References: <a@b>
|
||||
Subject: Re: foo
|
||||
|
||||
body
|
||||
@@ -0,0 +1,20 @@
|
||||
capabilities: THREAD=REFERENCES
|
||||
state: created
|
||||
|
||||
ok append
|
||||
ok append
|
||||
ok append
|
||||
ok append
|
||||
|
||||
ok select $mailbox
|
||||
ok thread references us-ascii all
|
||||
* THREAD (1 2 3 4)
|
||||
|
||||
ok store 1,2 +flags \deleted
|
||||
ok expunge
|
||||
ok thread references us-ascii all
|
||||
* THREAD (1 2)
|
||||
|
||||
ok append
|
||||
ok thread references us-ascii all
|
||||
* THREAD (1 2 3)
|
||||
@@ -0,0 +1,29 @@
|
||||
From user@domain Fri Feb 22 17:06:23 2008
|
||||
Message-ID: <1@b>
|
||||
|
||||
body
|
||||
|
||||
From user@domain Fri Feb 22 15:06:23 2008
|
||||
Message-Id: <2@b>
|
||||
In-Reply-To: <1@b>
|
||||
|
||||
body
|
||||
|
||||
From user@domain Fri Feb 22 15:06:23 2008
|
||||
Message-Id: <3@b>
|
||||
In-Reply-To: <1@b>
|
||||
|
||||
body
|
||||
|
||||
From user@domain Fri Feb 22 15:06:23 2008
|
||||
Message-Id: <4@b>
|
||||
In-Reply-To: <2@b>
|
||||
|
||||
body
|
||||
|
||||
From user@domain Fri Feb 22 15:06:23 2008
|
||||
Message-Id: <5@b>
|
||||
In-Reply-To: <2@b>
|
||||
|
||||
body
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
capabilities: THREAD=REFERENCES
|
||||
messages: all
|
||||
|
||||
ok thread references us-ascii all
|
||||
* THREAD (1 2)
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user