1package imapserver
2
3import (
4 "testing"
5
6 "github.com/mjl-/mox/imapclient"
7)
8
9func TestUnselect(t *testing.T) {
10 testUnselect(t, false)
11}
12
13func TestUnselectUIDOnly(t *testing.T) {
14 testUnselect(t, true)
15}
16
17func testUnselect(t *testing.T, uidonly bool) {
18 tc := start(t, uidonly)
19 defer tc.close()
20
21 tc.login("mjl@mox.example", password0)
22 tc.client.Select("inbox")
23
24 tc.transactf("bad", "unselect bogus") // Leftover data.
25 tc.transactf("ok", "unselect")
26 tc.transactf("no", "fetch 1 all") // Invalid when not selected.
27
28 tc.client.Select("inbox")
29 tc.client.Append("inbox", makeAppend(exampleMsg))
30 tc.client.UIDStoreFlagsAdd("1", true, `\Deleted`)
31 tc.transactf("ok", "unselect")
32 tc.transactf("ok", "status inbox (messages)")
33 tc.xuntagged(imapclient.UntaggedStatus{Mailbox: "Inbox", Attrs: map[imapclient.StatusAttr]int64{imapclient.StatusMessages: 1}}) // Message not removed.
34}
35