diff --git a/tests/_features/imap/message/delete.feature b/tests/_features/imap/message/delete.feature deleted file mode 100644 index 1567163b..00000000 --- a/tests/_features/imap/message/delete.feature +++ /dev/null @@ -1,127 +0,0 @@ -Feature: IMAP remove messages from mailbox - Background: - Given there is connected user "user" - And there is "user" with mailbox "Folders/mbox" - And there is "user" with mailbox "Labels/label" - - Scenario Outline: Mark message as deleted and EXPUNGE - Given there are 10 messages in mailbox "" for "user" - And there is IMAP client logged in as "user" - And there is IMAP client selected in "" - When IMAP client marks message seq "2" as deleted - Then IMAP response is "OK" - And mailbox "" for "user" has 10 messages - And message "2" in "" for "user" is marked as deleted - And IMAP response contains "\* 2 FETCH[ (]*FLAGS \([^)]*\\Deleted" - When IMAP client sends expunge - Then IMAP response is "OK" - And IMAP response contains "\* 2 EXPUNGE" - And mailbox "" for "user" has 9 messages - - Examples: - | mailbox | - | INBOX | - | Folders/mbox | - | Labels/label | - | Spam | - | Trash | - - Scenario Outline: Mark all messages as deleted and EXPUNGE - Given there are 5 messages in mailbox "" for "user" - And there is IMAP client logged in as "user" - And there is IMAP client selected in "" - When IMAP client marks message seq "1:*" as deleted - Then IMAP response is "OK" - # Use UID version to not be sensitive about the order from API. Event loop - # could return it in different order and delete first message with seq 1, - # which would produce EXPUNGE sequence as 1 4 3 2 1, for example. - When IMAP client sends expunge by UID "1:5" - Then IMAP response is "OK" - And IMAP response contains "\* 1 EXPUNGE" - And IMAP response contains "\* 2 EXPUNGE" - And IMAP response contains "\* 3 EXPUNGE" - And IMAP response contains "\* 4 EXPUNGE" - And IMAP response contains "\* 5 EXPUNGE" - And mailbox "" for "user" has 0 messages - - Examples: - | mailbox | - | INBOX | - | Folders/mbox | - | Labels/label | - | Spam | - | Trash | - - Scenario Outline: Mark messages as undeleted and EXPUNGE - Given there are 5 messages in mailbox "" for "user" - And there is IMAP client logged in as "user" - And there is IMAP client selected in "" - When IMAP client marks message seq "1:*" as deleted - Then IMAP response is "OK" - When IMAP client marks message seq "1:3" as undeleted - Then IMAP response is "OK" - When IMAP client sends expunge - Then IMAP response is "OK" - And IMAP response contains "\* 4 EXPUNGE" - And IMAP response contains "\* 5 EXPUNGE" - And mailbox "" for "user" has 3 messages - - Examples: - | mailbox | - | INBOX | - | Folders/mbox | - | Labels/label | - | Spam | - | Trash | - - Scenario Outline: Mark message as deleted and leave mailbox - Given there are 10 messages in mailbox "INBOX" for "user" - And there is IMAP client logged in as "user" - And there is IMAP client selected in "INBOX" - When IMAP client marks message seq "2" as deleted - Then IMAP response is "OK" - And mailbox "INBOX" for "user" has 10 messages - And message "2" in "INBOX" for "user" is marked as deleted - When IMAP client sends command "" - Then IMAP response is "OK" - And mailbox "INBOX" for "user" has messages - - Examples: - | leave | n | - | CLOSE | 9 | - | SELECT INBOX | 9 | - | SELECT Trash | 9 | - | EXAMINE INBOX | 9 | - | EXAMINE Trash | 9 | - | LOGOUT | 9 | - | UNSELECT | 10 | - - Scenario: Not possible to delete from All Mail and expunge does nothing - Given there are messages in mailbox "INBOX" for "user" - | id | from | to | subject | body | - | 1 | john.doe@mail.com | user@pm.me | subj1 | body1 | - And there is IMAP client logged in as "user" - And there is IMAP client selected in "All Mail" - When IMAP client marks message seq "1" as deleted - Then IMAP response is "IMAP error: NO operation not allowed for 'All Mail' folder" - And mailbox "All Mail" for "user" has messages - | from | to | subject | - | john.doe@mail.com | user@pm.me | subj1 | - When IMAP client sends expunge - Then IMAP response is "OK" - And mailbox "All Mail" for "user" has messages - | from | to | subject | - | john.doe@mail.com | user@pm.me | subj1 | - - Scenario: Expunge specific message only - Given there are 5 messages in mailbox "INBOX" for "user" - And there is IMAP client logged in as "user" - And there is IMAP client selected in "INBOX" - When IMAP client marks message seq "1" as deleted - Then IMAP response is "OK" - When IMAP client marks message seq "2" as deleted - Then IMAP response is "OK" - When IMAP client sends command "UID EXPUNGE 1" - Then IMAP response is "OK" - And mailbox "INBOX" for "user" has 4 messages - And message "2" in "INBOX" for "user" is marked as deleted diff --git a/tests/_features/imap/message/delete_from_trash.feature b/tests/_features/imap/message/delete_from_trash.feature deleted file mode 100644 index 276c327e..00000000 --- a/tests/_features/imap/message/delete_from_trash.feature +++ /dev/null @@ -1,51 +0,0 @@ -Feature: IMAP remove messages from Trash - Background: - Given there is connected user "user" - And there is "user" with mailbox "Folders/mbox" - And there is "user" with mailbox "Labels/label" - - Scenario Outline: Message in Trash/Spam and some other label is not permanently deleted - Given there are messages in mailbox "" for "user" - | id | from | to | subject | body | - | 1 | john.doe@mail.com | user@pm.me | foo | hello | - | 2 | jane.doe@mail.com | name@pm.me | bar | world | - And there is IMAP client logged in as "user" - And there is IMAP client selected in "" - When IMAP client copies message seq "2" to "Labels/label" - Then IMAP response is "OK" - When IMAP client marks message seq "2" as deleted - Then IMAP response is "OK" - And mailbox "" for "user" has 2 messages - And mailbox "All Mail" for "user" has 2 messages - And mailbox "Labels/label" for "user" has 1 messages - When IMAP client sends expunge - Then IMAP response is "OK" - And mailbox "" for "user" has 1 messages - And mailbox "All Mail" for "user" has 2 messages - And mailbox "Labels/label" for "user" has 1 messages - - Examples: - | mailbox | - | Spam | - | Trash | - - Scenario Outline: Message in Trash/Spam only is permanently deleted - Given there are messages in mailbox "" for "user" - | id | from | to | subject | body | - | 1 | john.doe@mail.com | user@pm.me | foo | hello | - | 2 | jane.doe@mail.com | name@pm.me | bar | world | - And there is IMAP client logged in as "user" - And there is IMAP client selected in "" - When IMAP client marks message seq "2" as deleted - Then IMAP response is "OK" - And mailbox "" for "user" has 2 messages - And mailbox "All Mail" for "user" has 2 messages - When IMAP client sends expunge - Then IMAP response is "OK" - And mailbox "" for "user" has 1 messages - And mailbox "All Mail" for "user" has 1 messages - - Examples: - | mailbox | - | Spam | - | Trash | diff --git a/tests/_features/imap/message/drafts.feature b/tests/_features/imap/message/drafts.feature deleted file mode 100644 index 79113b9a..00000000 --- a/tests/_features/imap/message/drafts.feature +++ /dev/null @@ -1,47 +0,0 @@ -Feature: IMAP operations with Drafts - Background: - Given there is connected user "user" - And there are messages in mailbox "Drafts" for "user" - | id | from | subject | body | - | msg1 | Lionel Richie | RE: Hello, is it me you looking for? | Nope | - And there is IMAP client logged in as "user" - And there is IMAP client selected in "Drafts" - - - Scenario: Draft subject updated locally - - Scenario: Draft recipient updated locally - - Scenario: Draft body updated locally - - @ignore-live - Scenario: Draft subject updated on server side - - @ignore-live - Scenario: Draft recipient updated on server side - - @ignore-live - Scenario: Draft body and size updated on server side - When IMAP client fetches body of UID "1" - Then IMAP response is "OK" - Then IMAP response contains "Nope" - When IMAP client sends command "UID FETCH 1 RFC822.SIZE" - Then IMAP response is "OK" - Then IMAP response contains "538" - When IMAP client sends command "UID FETCH 1 BODYSTRUCTURE" - Then IMAP response is "OK" - Then IMAP response contains "4 14" - Given the body of draft "msg1" for "user" has changed to "Yes I am" - And the event loop of "user" loops once - And mailbox "Drafts" for "user" has 1 messages - When IMAP client fetches body of UID "2" - Then IMAP response is "OK" - Then IMAP response contains "Yes I am" - Then IMAP response does not contain "Nope" - When IMAP client sends command "UID FETCH 2 RFC822.SIZE" - Then IMAP response is "OK" - Then IMAP response contains "542" - When IMAP client sends command "UID FETCH 2 BODYSTRUCTURE" - Then IMAP response is "OK" - Then IMAP response contains "8 14" -