mirror of
https://github.com/ProtonMail/proton-bridge.git
synced 2025-12-15 14:56:42 +00:00
Other: Implement subfolder support
This commit is contained in:
@ -50,4 +50,136 @@ Feature: IMAP create mailbox
|
||||
| Labels |
|
||||
| Labels/l1 |
|
||||
| Labels/l2 |
|
||||
| Labels/l3 |
|
||||
| Labels/l3 |
|
||||
|
||||
Scenario: Creating subfolders is possible and they persist after resync
|
||||
When IMAP client "1" creates "Folders/f1/f11"
|
||||
Then it succeeds
|
||||
When IMAP client "1" creates "Folders/f1/f12"
|
||||
Then it succeeds
|
||||
When IMAP client "1" creates "Folders/f2/f21"
|
||||
Then it succeeds
|
||||
When IMAP client "1" creates "Folders/f2/f22"
|
||||
Then it succeeds
|
||||
Then IMAP client "1" sees the following mailbox info:
|
||||
| name |
|
||||
| INBOX |
|
||||
| Drafts |
|
||||
| Sent |
|
||||
| Starred |
|
||||
| Archive |
|
||||
| Spam |
|
||||
| Trash |
|
||||
| All Mail |
|
||||
| Folders |
|
||||
| Folders/f1 |
|
||||
| Folders/f1/f11 |
|
||||
| Folders/f1/f12 |
|
||||
| Folders/f2 |
|
||||
| Folders/f2/f21 |
|
||||
| Folders/f2/f22 |
|
||||
| Labels |
|
||||
| Labels/l1 |
|
||||
| Labels/l2 |
|
||||
When user "user@pm.me" is deleted
|
||||
And the user logs in with username "user@pm.me" and password "password"
|
||||
And user "user@pm.me" finishes syncing
|
||||
And user "user@pm.me" connects and authenticates IMAP client "2"
|
||||
Then IMAP client "2" sees the following mailbox info:
|
||||
| name |
|
||||
| INBOX |
|
||||
| Drafts |
|
||||
| Sent |
|
||||
| Starred |
|
||||
| Archive |
|
||||
| Spam |
|
||||
| Trash |
|
||||
| All Mail |
|
||||
| Folders |
|
||||
| Folders/f1 |
|
||||
| Folders/f1/f11 |
|
||||
| Folders/f1/f12 |
|
||||
| Folders/f2 |
|
||||
| Folders/f2/f21 |
|
||||
| Folders/f2/f22 |
|
||||
| Labels |
|
||||
| Labels/l1 |
|
||||
| Labels/l2 |
|
||||
|
||||
Scenario: Changing folder parent is possible and it persists after resync
|
||||
When IMAP client "1" creates "Folders/f1/f11"
|
||||
Then it succeeds
|
||||
When IMAP client "1" creates "Folders/f1/f12"
|
||||
Then it succeeds
|
||||
When IMAP client "1" creates "Folders/f2/f21"
|
||||
Then it succeeds
|
||||
When IMAP client "1" creates "Folders/f2/f22"
|
||||
Then it succeeds
|
||||
Then IMAP client "1" sees the following mailbox info:
|
||||
| name |
|
||||
| INBOX |
|
||||
| Drafts |
|
||||
| Sent |
|
||||
| Starred |
|
||||
| Archive |
|
||||
| Spam |
|
||||
| Trash |
|
||||
| All Mail |
|
||||
| Folders |
|
||||
| Folders/f1 |
|
||||
| Folders/f1/f11 |
|
||||
| Folders/f1/f12 |
|
||||
| Folders/f2 |
|
||||
| Folders/f2/f21 |
|
||||
| Folders/f2/f22 |
|
||||
| Labels |
|
||||
| Labels/l1 |
|
||||
| Labels/l2 |
|
||||
When IMAP client "1" renames "Folders/f1/f11" to "Folders/f2/f11"
|
||||
Then it succeeds
|
||||
When IMAP client "1" renames "Folders/f1/f12" to "Folders/f2/f12"
|
||||
Then it succeeds
|
||||
Then IMAP client "1" sees the following mailbox info:
|
||||
| name |
|
||||
| INBOX |
|
||||
| Drafts |
|
||||
| Sent |
|
||||
| Starred |
|
||||
| Archive |
|
||||
| Spam |
|
||||
| Trash |
|
||||
| All Mail |
|
||||
| Folders |
|
||||
| Folders/f1 |
|
||||
| Folders/f2 |
|
||||
| Folders/f2/f11 |
|
||||
| Folders/f2/f12 |
|
||||
| Folders/f2/f21 |
|
||||
| Folders/f2/f22 |
|
||||
| Labels |
|
||||
| Labels/l1 |
|
||||
| Labels/l2 |
|
||||
When user "user@pm.me" is deleted
|
||||
And the user logs in with username "user@pm.me" and password "password"
|
||||
And user "user@pm.me" finishes syncing
|
||||
And user "user@pm.me" connects and authenticates IMAP client "2"
|
||||
Then IMAP client "2" sees the following mailbox info:
|
||||
| name |
|
||||
| INBOX |
|
||||
| Drafts |
|
||||
| Sent |
|
||||
| Starred |
|
||||
| Archive |
|
||||
| Spam |
|
||||
| Trash |
|
||||
| All Mail |
|
||||
| Folders |
|
||||
| Folders/f1 |
|
||||
| Folders/f2 |
|
||||
| Folders/f2/f11 |
|
||||
| Folders/f2/f12 |
|
||||
| Folders/f2/f21 |
|
||||
| Folders/f2/f22 |
|
||||
| Labels |
|
||||
| Labels/l1 |
|
||||
| Labels/l2 |
|
||||
@ -160,7 +160,7 @@ func matchMailboxes(have, want []Mailbox) error {
|
||||
})
|
||||
|
||||
if !IsSub(want, have) {
|
||||
return fmt.Errorf("missing messages: %v", want)
|
||||
return fmt.Errorf("missing mailboxes: %v", want)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user