package imapserver import ( "testing" "github.com/mjl-/mox/imapclient" ) func TestQuota1(t *testing.T) { tc := start(t) defer tc.close() tc.client.Login("mjl@mox.example", password0) // We don't implement setquota. tc.transactf("bad", `setquota "" (STORAGE 123)`) tc.transactf("bad", "getquotaroot") // Missing param. tc.transactf("bad", "getquotaroot inbox bogus") // Too many params. tc.transactf("bad", "getquota") // Missing param. tc.transactf("bad", "getquota a b") // Too many params. // tc does not have a limit. tc.transactf("ok", "getquotaroot inbox") tc.xuntagged(imapclient.UntaggedQuotaroot([]string{""})) tc.transactf("no", "getquota bogusroot") tc.transactf("ok", `getquota ""`) tc.xuntagged() // Check that we get a DELETED-STORAGE status attribute with value 0, also if // messages are marked deleted. We don't go through the trouble. tc.transactf("ok", "status inbox (DELETED-STORAGE)") tc.xuntagged(imapclient.UntaggedStatus{Mailbox: "Inbox", Attrs: map[imapclient.StatusAttr]int64{imapclient.StatusDeletedStorage: 0}}) // tclimit does have a limit. tclimit := startArgs(t, false, false, true, true, "limit") defer tclimit.close() tclimit.client.Login("limit@mox.example", password0) tclimit.transactf("ok", "getquotaroot inbox") tclimit.xuntagged( imapclient.UntaggedQuotaroot([]string{""}), imapclient.UntaggedQuota{Root: "", Resources: []imapclient.QuotaResource{{Name: imapclient.QuotaResourceStorage, Usage: 0, Limit: 1}}}, ) tclimit.transactf("ok", `getquota ""`) tclimit.xuntagged(imapclient.UntaggedQuota{Root: "", Resources: []imapclient.QuotaResource{{Name: imapclient.QuotaResourceStorage, Usage: 0, Limit: 1}}}) tclimit.transactf("ok", "status inbox (DELETED-STORAGE)") tclimit.xuntagged(imapclient.UntaggedStatus{Mailbox: "Inbox", Attrs: map[imapclient.StatusAttr]int64{imapclient.StatusDeletedStorage: 0}}) }