forked from Silverfish/proton-bridge
feat(GODT-2569): Add functional test to validate community PR.
This commit is contained in:
committed by
Romain Le Jeune
parent
7002806999
commit
fbbd0245de
@ -327,14 +327,10 @@ func getParentID(
|
|||||||
default:
|
default:
|
||||||
// found multiple parents, search through metadata to try to find a singular parent that
|
// found multiple parents, search through metadata to try to find a singular parent that
|
||||||
// was sent by this account.
|
// was sent by this account.
|
||||||
found_sent_by_us := false
|
|
||||||
for _, metadata := range metadata {
|
for _, metadata := range metadata {
|
||||||
if metadata.Flags.Has(proton.MessageFlagSent) {
|
if metadata.Flags.Has(proton.MessageFlagSent) {
|
||||||
if found_sent_by_us == true {
|
|
||||||
parentID = ""
|
|
||||||
}
|
|
||||||
parentID = metadata.ID
|
parentID = metadata.ID
|
||||||
found_sent_by_us = true
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -150,4 +150,129 @@ Feature: SMTP send reply
|
|||||||
# User1 receive the reply.|
|
# User1 receive the reply.|
|
||||||
And IMAP client "1" eventually sees the following messages in "INBOX":
|
And IMAP client "1" eventually sees the following messages in "INBOX":
|
||||||
| from | subject | body | in-reply-to | references | reply-to |
|
| from | subject | body | in-reply-to | references | reply-to |
|
||||||
| [user:user2]@[domain] | FW - Please Reply | Heya | <something@protonmail.ch> | <something@protonmail.ch> | [user:user2]@[domain] |
|
| [user:user2]@[domain] | FW - Please Reply | Heya | <something@protonmail.ch> | <something@protonmail.ch> | [user:user2]@[domain] |
|
||||||
|
|
||||||
|
|
||||||
|
@long-black
|
||||||
|
Scenario: Reply with In-Reply-To matching several received ExternalID
|
||||||
|
# User1 send the initial message.
|
||||||
|
When SMTP client "1" sends the following message from "[user:user1]@[domain]" to "[user:user2]@[domain]":
|
||||||
|
"""
|
||||||
|
From: Bridge Test <[user:user1]@[domain]>
|
||||||
|
To: Internal Bridge <[user:user2]@[domain]>
|
||||||
|
Subject: Please Reply
|
||||||
|
Message-ID: <something@external.com>
|
||||||
|
|
||||||
|
hello
|
||||||
|
|
||||||
|
"""
|
||||||
|
Then it succeeds
|
||||||
|
When SMTP client "1" sends the following message from "[user:user1]@[domain]" to "[user:user2]@[domain]":
|
||||||
|
"""
|
||||||
|
From: Bridge Test <[user:user1]@[domain]>
|
||||||
|
To: Internal Bridge <[user:user2]@[domain]>
|
||||||
|
Subject: Please Reply Again
|
||||||
|
Message-ID: <something@external.com>
|
||||||
|
|
||||||
|
hello
|
||||||
|
|
||||||
|
"""
|
||||||
|
Then it succeeds
|
||||||
|
Then IMAP client "1" eventually sees the following messages in "Sent":
|
||||||
|
| from | to | subject | message-id |
|
||||||
|
| [user:user1]@[domain] | [user:user2]@[domain] | Please Reply | <something@external.com> |
|
||||||
|
| [user:user1]@[domain] | [user:user2]@[domain] | Please Reply Again | <something@external.com> |
|
||||||
|
# login user2.
|
||||||
|
And the user logs in with username "[user:user2]" and password "password"
|
||||||
|
And user "[user:user2]" connects and authenticates IMAP client "2"
|
||||||
|
And user "[user:user2]" connects and authenticates SMTP client "2"
|
||||||
|
And user "[user:user2]" finishes syncing
|
||||||
|
# User2 receive the message.
|
||||||
|
Then IMAP client "2" eventually sees the following messages in "INBOX":
|
||||||
|
| from | subject | message-id | reply-to |
|
||||||
|
| [user:user1]@[domain] | Please Reply | <something@external.com> | [user:user1]@[domain] |
|
||||||
|
| [user:user1]@[domain] | Please Reply Again | <something@external.com> | [user:user1]@[domain] |
|
||||||
|
# User2 reply to it.
|
||||||
|
When SMTP client "2" sends the following message from "[user:user2]@[domain]" to "[user:user1]@[domain]":
|
||||||
|
"""
|
||||||
|
From: Internal Bridge <[user:user2]@[domain]>
|
||||||
|
To: Bridge Test <[user:user1]@[domain]>
|
||||||
|
Content-Type: text/plain
|
||||||
|
Subject: FW - Please Reply
|
||||||
|
In-Reply-To: <something@external.com>
|
||||||
|
|
||||||
|
Heya
|
||||||
|
|
||||||
|
"""
|
||||||
|
Then it succeeds
|
||||||
|
Then IMAP client "2" eventually sees the following messages in "Sent":
|
||||||
|
| from | to | subject | in-reply-to | references |
|
||||||
|
| [user:user2]@[domain] | [user:user1]@[domain] | FW - Please Reply | | |
|
||||||
|
# User1 receive the reply.|
|
||||||
|
And IMAP client "1" eventually sees the following messages in "INBOX":
|
||||||
|
| from | subject | body | in-reply-to | references |
|
||||||
|
| [user:user2]@[domain] | FW - Please Reply | Heya | | |
|
||||||
|
|
||||||
|
|
||||||
|
@long-black
|
||||||
|
Scenario: Reply with In-Reply-To matching several ExternalID but one sent by us
|
||||||
|
# User1 send the initial message.
|
||||||
|
When SMTP client "1" sends the following message from "[user:user1]@[domain]" to "[user:user2]@[domain]":
|
||||||
|
"""
|
||||||
|
From: Bridge Test <[user:user1]@[domain]>
|
||||||
|
To: Internal Bridge <[user:user2]@[domain]>
|
||||||
|
Subject: Please Reply
|
||||||
|
Message-ID: <something@external.com>
|
||||||
|
|
||||||
|
hello
|
||||||
|
|
||||||
|
"""
|
||||||
|
Then it succeeds
|
||||||
|
Then IMAP client "1" eventually sees the following messages in "Sent":
|
||||||
|
| from | to | subject | message-id |
|
||||||
|
| [user:user1]@[domain] | [user:user2]@[domain] | Please Reply | <something@external.com> |
|
||||||
|
# login user2.
|
||||||
|
And the user logs in with username "[user:user2]" and password "password"
|
||||||
|
And user "[user:user2]" connects and authenticates IMAP client "2"
|
||||||
|
And user "[user:user2]" connects and authenticates SMTP client "2"
|
||||||
|
And user "[user:user2]" finishes syncing
|
||||||
|
# User2 receive the message.
|
||||||
|
Then IMAP client "2" eventually sees the following messages in "INBOX":
|
||||||
|
| from | subject | message-id | reply-to |
|
||||||
|
| [user:user1]@[domain] | Please Reply | <something@external.com> | [user:user1]@[domain] |
|
||||||
|
# User2 reply to it.
|
||||||
|
When SMTP client "2" sends the following message from "[user:user2]@[domain]" to "[user:user1]@[domain]":
|
||||||
|
"""
|
||||||
|
From: Internal Bridge <[user:user2]@[domain]>
|
||||||
|
To: Bridge Test <[user:user1]@[domain]>
|
||||||
|
Content-Type: text/plain
|
||||||
|
Subject: FW - Please Reply
|
||||||
|
In-Reply-To: <something@external.com>
|
||||||
|
Message-ID: <something@external.com>
|
||||||
|
|
||||||
|
Heya
|
||||||
|
|
||||||
|
"""
|
||||||
|
Then it succeeds
|
||||||
|
When SMTP client "2" sends the following message from "[user:user2]@[domain]" to "[user:user1]@[domain]":
|
||||||
|
"""
|
||||||
|
From: Internal Bridge <[user:user2]@[domain]>
|
||||||
|
To: Bridge Test <[user:user1]@[domain]>
|
||||||
|
Content-Type: text/plain
|
||||||
|
Subject: FW - Please Reply Again
|
||||||
|
In-Reply-To: <something@external.com>
|
||||||
|
Message-ID: <something@external.com>
|
||||||
|
|
||||||
|
Heya
|
||||||
|
|
||||||
|
"""
|
||||||
|
Then it succeeds
|
||||||
|
Then IMAP client "2" eventually sees the following messages in "Sent":
|
||||||
|
| from | to | subject | in-reply-to | references |
|
||||||
|
| [user:user2]@[domain] | [user:user1]@[domain] | FW - Please Reply | <something@external.com> | <something@external.com> |
|
||||||
|
| [user:user2]@[domain] | [user:user1]@[domain] | FW - Please Reply Again | <something@external.com> | <something@external.com> |
|
||||||
|
# User1 receive the reply.|
|
||||||
|
And IMAP client "1" eventually sees the following messages in "INBOX":
|
||||||
|
| from | subject | in-reply-to | references |
|
||||||
|
| [user:user2]@[domain] | FW - Please Reply | <something@external.com> | <something@external.com> |
|
||||||
|
| [user:user2]@[domain] | FW - Please Reply Again | <something@external.com> | <something@external.com> |
|
||||||
Reference in New Issue
Block a user