GODT-963 STORE removing junk or adding nojunk should move message to inbox

This commit is contained in:
Xavier Michelon
2021-09-24 15:45:22 +02:00
committed by Jakub Cuth
parent 8d6e55ba54
commit 1250621a4d
3 changed files with 59 additions and 3 deletions

View File

@ -19,3 +19,22 @@ Feature: IMAP update messages in Spam folder
| from | to | subject |
| john.doe@mail.com | user@pm.me | foo |
| jane.doe@mail.com | name@pm.me | bar |
Scenario Outline: Removing flag "junk" or adding flags "nojunk" moves message to INBOX
When IMAP client <operation> flags "<flag>" <suffix> message seq "1"
Then IMAP response is "OK"
And mailbox "INBOX" for "user" has 1 messages
And mailbox "INBOX" for "user" has messages
| from | to | subject |
| john.doe@mail.com | user@pm.me | foo |
And mailbox "Spam" for "user" has 1 messages
And mailbox "Spam" for "user" has messages
| from | to | subject |
| jane.doe@mail.com | name@pm.me | bar |
Examples:
| operation | suffix | flag |
| adds | to | nojunk |
| adds | to | NoJunk |
| removes | from | junk |
| removes | from | Junk |
| removes | from | $Junk |

View File

@ -48,6 +48,10 @@ func IMAPActionsMessagesFeatureContext(s *godog.ScenarioContext) {
s.Step(`^IMAP client creates message "([^"]*)" from address "([^"]*)" of "([^"]*)" to "([^"]*)" with body "([^"]*)" in "([^"]*)"$`, imapClientCreatesMessageFromAddressOfUserToWithBody)
s.Step(`^IMAP client marks message seq "([^"]*)" with "([^"]*)"$`, imapClientMarksMessageSeqWithFlags)
s.Step(`^IMAP client "([^"]*)" marks message seq "([^"]*)" with "([^"]*)"$`, imapClientNamedMarksMessageSeqWithFlags)
s.Step(`^IMAP client adds flags "([^"]*)" to message seq "([^"]*)"$`, imapClientAddsFlagsToMessageSeq)
s.Step(`^IMAP client "([^"]*)" adds flags "([^"]*)" to message seq "([^"]*)"$`, imapClientNamedAddsFlagsToMessageSeq)
s.Step(`^IMAP client removes flags "([^"]*)" from message seq "([^"]*)"$`, imapClientRemovesFlagsFromMessageSeq)
s.Step(`^IMAP client "([^"]*)" removes flags "([^"]*)" from message seq "([^"]*)"$`, imapClientNamedRemovesFlagsFromMessageSeq)
s.Step(`^IMAP client marks message seq "([^"]*)" as read$`, imapClientMarksMessageSeqAsRead)
s.Step(`^IMAP client "([^"]*)" marks message seq "([^"]*)" as read$`, imapClientNamedMarksMessageSeqAsRead)
s.Step(`^IMAP client marks message seq "([^"]*)" as unread$`, imapClientMarksMessageSeqAsUnread)
@ -266,6 +270,26 @@ func imapClientNamedMarksMessageSeqWithFlags(imapClient, messageSeq, flags strin
return nil
}
func imapClientAddsFlagsToMessageSeq(flags, messageSeq string) error {
return imapClientNamedAddsFlagsToMessageSeq("imap", flags, messageSeq)
}
func imapClientNamedAddsFlagsToMessageSeq(imapClient, flags, messageSeq string) error {
res := ctx.GetIMAPClient(imapClient).AddFlags(messageSeq, flags)
ctx.SetIMAPLastResponse(imapClient, res)
return nil
}
func imapClientRemovesFlagsFromMessageSeq(flags, messageSeq string) error {
return imapClientNamedRemovesFlagsFromMessageSeq("imap", flags, messageSeq)
}
func imapClientNamedRemovesFlagsFromMessageSeq(imapClient, flags, messageSeq string) error {
res := ctx.GetIMAPClient(imapClient).RemoveFlags(messageSeq, flags)
ctx.SetIMAPLastResponse(imapClient, res)
return nil
}
func imapClientMarksMessageSeqAsRead(messageSeq string) error {
return imapClientNamedMarksMessageSeqAsRead("imap", messageSeq)
}