Files
proton-bridge/tests/features/imap/mailbox/create.feature
2022-12-13 10:28:59 +01:00

190 lines
5.8 KiB
Gherkin

Feature: IMAP create mailbox
Background:
Given there exists an account with username "[user:user]" and password "password"
And the account "[user:user]" has the following custom mailboxes:
| name | type |
| f1 | folder |
| f2 | folder |
| l1 | label |
| l2 | label |
And bridge starts
And the user logs in with username "[user:user]" and password "password"
And user "[user:user]" finishes syncing
And user "[user:user]" connects and authenticates IMAP client "1"
Scenario: Create folder
When IMAP client "1" creates "Folders/mbox"
Then IMAP client "1" sees "Folders/mbox"
Scenario: Create label
When IMAP client "1" creates "Labels/mbox"
Then IMAP client "1" sees "Labels/mbox"
Scenario: Creating folder or label with existing name is not possible
When IMAP client "1" creates "Folders/f1"
Then it fails
And bridge reports a message with "Failed to create mailbox"
When IMAP client "1" creates "Folders/f2"
Then it fails
And bridge reports a message with "Failed to create mailbox"
When IMAP client "1" creates "Labels/l1"
Then it fails
And bridge reports a message with "Failed to create mailbox"
When IMAP client "1" creates "Labels/l2"
Then it fails
And bridge reports a message with "Failed to create mailbox"
When IMAP client "1" creates "Folders/f3"
Then it succeeds
When IMAP client "1" creates "Labels/l3"
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/f3 |
| Labels |
| Labels/l1 |
| Labels/l2 |
| 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:user]" is deleted
And the user logs in with username "[user:user]" and password "password"
And user "[user:user]" finishes syncing
And user "[user:user]" 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:user]" is deleted
And the user logs in with username "[user:user]" and password "password"
And user "[user:user]" finishes syncing
And user "[user:user]" 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 |