6 "github.com/mjl-/mox/imapclient"
9func TestStatus(t *testing.T) {
13func TestStatusUIDOnly(t *testing.T) {
17func testStatus(t *testing.T, uidonly bool) {
18 defer mockUIDValidity()()
19 tc := start(t, uidonly)
22 tc.login("mjl@mox.example", password0)
24 tc.transactf("bad", "status") // Missing param.
25 tc.transactf("bad", "status inbox") // Missing param.
26 tc.transactf("bad", "status inbox ()") // At least one attribute required.
27 tc.transactf("bad", "status inbox (uidvalidity) ") // Leftover data.
28 tc.transactf("bad", "status inbox (unknown)") // Unknown attribute.
30 tc.transactf("no", "status expungebox (messages)") // No longer exists.
32 tc.transactf("ok", "status inbox (messages uidnext uidvalidity unseen deleted size recent appendlimit)")
33 tc.xuntagged(imapclient.UntaggedStatus{
35 Attrs: map[imapclient.StatusAttr]int64{imapclient.StatusMessages: 0,
36 imapclient.StatusUIDValidity: 1,
37 imapclient.StatusUIDNext: 1,
38 imapclient.StatusUnseen: 0,
39 imapclient.StatusDeleted: 0,
40 imapclient.StatusSize: 0,
41 imapclient.StatusRecent: 0,
42 imapclient.StatusAppendLimit: 0,
46 // Again, now with a message in the mailbox.
47 tc.transactf("ok", "append inbox {4+}\r\ntest")
48 tc.transactf("ok", "status inbox (messages uidnext uidvalidity unseen deleted size recent appendlimit)")
50 tc.xuntagged(imapclient.UntaggedStatus{
52 Attrs: map[imapclient.StatusAttr]int64{imapclient.StatusMessages: 1,
53 imapclient.StatusUIDValidity: 1,
54 imapclient.StatusUIDNext: 2,
55 imapclient.StatusUnseen: 1,
56 imapclient.StatusDeleted: 0,
57 imapclient.StatusSize: 4,
58 imapclient.StatusRecent: 0,
59 imapclient.StatusAppendLimit: 0,
63 tc.client.Select("inbox")
64 tc.client.UIDStoreFlagsSet("1", true, `\Deleted`)
65 tc.transactf("ok", "status inbox (messages uidnext uidvalidity unseen deleted size recent appendlimit)")
66 tc.xuntagged(imapclient.UntaggedStatus{
68 Attrs: map[imapclient.StatusAttr]int64{imapclient.StatusMessages: 1,
69 imapclient.StatusUIDValidity: 1,
70 imapclient.StatusUIDNext: 2,
71 imapclient.StatusUnseen: 1,
72 imapclient.StatusDeleted: 1,
73 imapclient.StatusSize: 4,
74 imapclient.StatusRecent: 0,
75 imapclient.StatusAppendLimit: 0,