diff --git a/tests/features/imap/message/store.feature b/tests/features/imap/message/store.feature index bcc159b3..24444d90 100644 --- a/tests/features/imap/message/store.feature +++ b/tests/features/imap/message/store.feature @@ -30,3 +30,22 @@ Feature: IMAP marks messages as forwarded And it succeeds Then IMAP client "1" eventually sees that message at row 1 does not have the flag "forwarded" And it succeeds + + Scenario: Mark message as replied + When IMAP client "1" selects "Folders/mbox" + And IMAP client "1" marks message 1 as "replied" + And it succeeds + Then IMAP client "1" eventually sees that message at row 1 has the flag "\Answered" + And it succeeds + + @regression + Scenario: Mark message as replied and then revert + When IMAP client "1" selects "Folders/mbox" + And IMAP client "1" marks message 1 as "replied" + And it succeeds + Then IMAP client "1" eventually sees that message at row 1 has the flag "\Answered" + And it succeeds + And IMAP client "1" marks message 1 as "unreplied" + And it succeeds + Then IMAP client "1" eventually sees that message at row 1 does not have the flag "\Answered" + And it succeeds \ No newline at end of file diff --git a/tests/imap_test.go b/tests/imap_test.go index 63f9fa55..c77d9d68 100644 --- a/tests/imap_test.go +++ b/tests/imap_test.go @@ -938,6 +938,18 @@ func clientChangeMessageState(client *client.Client, seq int, messageState strin if err != nil { return err } + + case messageState == "replied": + _, err := clientStore(client, seq, seq, isUID, imap.FormatFlagsOp(imap.AddFlags, true), imap.AnsweredFlag) + if err != nil { + return err + } + + case messageState == "unreplied": + _, err := clientStore(client, seq, seq, isUID, imap.FormatFlagsOp(imap.RemoveFlags, true), imap.AnsweredFlag) + if err != nil { + return err + } } return nil