Feature: Address mode Background: Given there exists an account with username "user" and password "password" And the account "user" has additional address "alias@[domain]" And the account "user" has the following custom mailboxes: | name | type | | one | folder | | two | folder | And the address "user@[domain]" of account "user" has the following messages in "one": | from | to | subject | unread | | a@[domain] | a@[domain] | one | true | | b@[domain] | b@[domain] | two | false | And the address "alias@[domain]" of account "user" has the following messages in "two": | from | to | subject | unread | | c@[domain] | c@[domain] | three | true | | d@[domain] | d@[domain] | four | false | And bridge starts And the user logs in with username "user" and password "password" And user "user" finishes syncing Scenario: The user is in combined mode When user "user" connects and authenticates IMAP client "1" with address "user@[domain]" Then IMAP client "1" sees the following messages in "Folders/one": | from | to | subject | unread | | a@[domain] | a@[domain] | one | true | | b@[domain] | b@[domain] | two | false | And IMAP client "1" sees the following messages in "Folders/two": | from | to | subject | unread | | c@[domain] | c@[domain] | three | true | | d@[domain] | d@[domain] | four | false | And IMAP client "1" sees the following messages in "All Mail": | from | to | subject | unread | | a@[domain] | a@[domain] | one | true | | b@[domain] | b@[domain] | two | false | | c@[domain] | c@[domain] | three | true | | d@[domain] | d@[domain] | four | false | When user "user" connects and authenticates IMAP client "2" with address "alias@[domain]" Then IMAP client "2" sees the following messages in "Folders/one": | from | to | subject | unread | | a@[domain] | a@[domain] | one | true | | b@[domain] | b@[domain] | two | false | And IMAP client "2" sees the following messages in "Folders/two": | from | to | subject | unread | | c@[domain] | c@[domain] | three | true | | d@[domain] | d@[domain] | four | false | And IMAP client "2" sees the following messages in "All Mail": | from | to | subject | unread | | a@[domain] | a@[domain] | one | true | | b@[domain] | b@[domain] | two | false | | c@[domain] | c@[domain] | three | true | | d@[domain] | d@[domain] | four | false | Scenario: The user is in split mode Given the user sets the address mode of user "user" to "split" And user "user" finishes syncing When user "user" connects and authenticates IMAP client "1" with address "user@[domain]" Then IMAP client "1" sees the following messages in "Folders/one": | from | to | subject | unread | | a@[domain] | a@[domain] | one | true | | b@[domain] | b@[domain] | two | false | And IMAP client "1" sees 0 messages in "Folders/two" And IMAP client "1" sees the following messages in "All Mail": | from | to | subject | unread | | a@[domain] | a@[domain] | one | true | | b@[domain] | b@[domain] | two | false | When user "user" connects and authenticates IMAP client "2" with address "alias@[domain]" Then IMAP client "2" sees 0 messages in "Folders/one" And IMAP client "2" sees the following messages in "Folders/two": | from | to | subject | unread | | c@[domain] | c@[domain] | three | true | | d@[domain] | d@[domain] | four | false | And IMAP client "2" sees the following messages in "All Mail": | from | to | subject | unread | | c@[domain] | c@[domain] | three | true | | d@[domain] | d@[domain] | four | false | Scenario: The user switches from combined to split mode and back Given the user sets the address mode of user "user" to "split" And user "user" finishes syncing And the user sets the address mode of user "user" to "combined" And user "user" finishes syncing When user "user" connects and authenticates IMAP client "1" with address "user@[domain]" Then IMAP client "1" sees the following messages in "All Mail": | from | to | subject | unread | | a@[domain] | a@[domain] | one | true | | b@[domain] | b@[domain] | two | false | | c@[domain] | c@[domain] | three | true | | d@[domain] | d@[domain] | four | false | When user "user" connects and authenticates IMAP client "2" with address "alias@[domain]" Then IMAP client "2" sees the following messages in "All Mail": | from | to | subject | unread | | a@[domain] | a@[domain] | one | true | | b@[domain] | b@[domain] | two | false | | c@[domain] | c@[domain] | three | true | | d@[domain] | d@[domain] | four | false | Scenario: The user adds an address while in combined mode When user "user" connects and authenticates IMAP client "1" with address "user@[domain]" Then IMAP client "1" sees the following messages in "All Mail": | from | to | subject | unread | | a@[domain] | a@[domain] | one | true | | b@[domain] | b@[domain] | two | false | | c@[domain] | c@[domain] | three | true | | d@[domain] | d@[domain] | four | false | When user "user" connects and authenticates IMAP client "2" with address "alias@[domain]" Then IMAP client "2" sees the following messages in "All Mail": | from | to | subject | unread | | a@[domain] | a@[domain] | one | true | | b@[domain] | b@[domain] | two | false | | c@[domain] | c@[domain] | three | true | | d@[domain] | d@[domain] | four | false | Given the account "user" has additional address "other@[domain]" And bridge sends an address created event for user "user" When user "user" connects and authenticates IMAP client "3" with address "other@[domain]" Then IMAP client "3" sees the following messages in "All Mail": | from | to | subject | unread | | a@[domain] | a@[domain] | one | true | | b@[domain] | b@[domain] | two | false | | c@[domain] | c@[domain] | three | true | | d@[domain] | d@[domain] | four | false | Scenario: The user adds an address while in split mode Given the user sets the address mode of user "user" to "split" And user "user" finishes syncing When user "user" connects and authenticates IMAP client "1" with address "user@[domain]" And IMAP client "1" sees the following messages in "All Mail": | from | to | subject | unread | | a@[domain] | a@[domain] | one | true | | b@[domain] | b@[domain] | two | false | When user "user" connects and authenticates IMAP client "2" with address "alias@[domain]" And IMAP client "2" sees the following messages in "All Mail": | from | to | subject | unread | | c@[domain] | c@[domain] | three | true | | d@[domain] | d@[domain] | four | false | Given the account "user" has additional address "other@[domain]" And bridge sends an address created event for user "user" When user "user" connects and authenticates IMAP client "3" with address "other@[domain]" Then IMAP client "3" eventually sees 0 messages in "All Mail" Scenario: The user deletes an address while in combined mode When user "user" connects and authenticates IMAP client "1" with address "user@[domain]" Then IMAP client "1" sees the following messages in "All Mail": | from | to | subject | unread | | a@[domain] | a@[domain] | one | true | | b@[domain] | b@[domain] | two | false | | c@[domain] | c@[domain] | three | true | | d@[domain] | d@[domain] | four | false | When user "user" connects and authenticates IMAP client "2" with address "alias@[domain]" Then IMAP client "2" sees the following messages in "All Mail": | from | to | subject | unread | | a@[domain] | a@[domain] | one | true | | b@[domain] | b@[domain] | two | false | | c@[domain] | c@[domain] | three | true | | d@[domain] | d@[domain] | four | false | Given the account "user" no longer has additional address "alias@[domain]" And bridge sends an address deleted event for user "user" When user "user" connects IMAP client "3" Then IMAP client "3" cannot authenticate with address "alias@[domain]" Scenario: The user deletes an address while in split mode Given the user sets the address mode of user "user" to "split" And user "user" finishes syncing When user "user" connects and authenticates IMAP client "1" with address "user@[domain]" And IMAP client "1" sees the following messages in "All Mail": | from | to | subject | unread | | a@[domain] | a@[domain] | one | true | | b@[domain] | b@[domain] | two | false | When user "user" connects and authenticates IMAP client "2" with address "alias@[domain]" And IMAP client "2" sees the following messages in "All Mail": | from | to | subject | unread | | c@[domain] | c@[domain] | three | true | | d@[domain] | d@[domain] | four | false | Given the account "user" no longer has additional address "alias@[domain]" And bridge sends an address deleted event for user "user" When user "user" connects IMAP client "3" Then IMAP client "3" cannot authenticate with address "alias@[domain]" Scenario: The user makes an alias the primary address while in combined mode Scenario: The user makes an alias the primary address while in split mode