GODT-1650: sending with multiple addresses

This commit is contained in:
James Houlahan
2022-10-05 10:17:09 +02:00
parent 0badd69409
commit df7479f506
5 changed files with 86 additions and 16 deletions

View File

@ -24,13 +24,24 @@ import (
"testing"
"time"
"github.com/ProtonMail/proton-bridge/v2/internal/certs"
"github.com/ProtonMail/proton-bridge/v2/internal/user"
"github.com/cucumber/godog"
"github.com/stretchr/testify/require"
"gitlab.protontech.ch/go/liteapi/server/account"
)
func init() {
// Use the fast key generation for tests.
account.GenerateKey = FastGenerateKey
// Use the fast cert generation for tests.
certs.GenerateCert = FastGenerateCert
// Set the event period to 100 milliseconds for more responsive tests.
user.DefaultEventPeriod = 100 * time.Millisecond
// Don't use jitter during tests.
user.DefaultEventJitter = 0
}

View File

@ -2,7 +2,6 @@ Feature: SMTP sending of plain messages
Background:
Given there exists an account with username "user@pm.me" and password "password"
And there exists an account with username "bridgetest@protonmail.com" and password "password"
And there exists an account with username "bridgetest2@protonmail.com" and password "password"
And bridge starts
And the user logs in with username "user@pm.me" and password "password"
And user "user@pm.me" connects and authenticates SMTP client "1"

View File

@ -2,7 +2,6 @@ Feature: SMTP sending of plain messages
Background:
Given there exists an account with username "user@pm.me" and password "password"
And there exists an account with username "bridgetest@protonmail.com" and password "password"
And there exists an account with username "bridgetest2@protonmail.com" and password "password"
And bridge starts
And the user logs in with username "user@pm.me" and password "password"
And user "user@pm.me" connects and authenticates SMTP client "1"

View File

@ -0,0 +1,75 @@
Feature: SMTP sending two messages
Background:
Given there exists an account with username "user@pm.me" and password "password"
And there exists an account with username "user-multi@pm.me" and password "password"
And the account "user-multi@pm.me" has additional address "user-multi-alias@pm.me"
And there exists an account with username "bridgetest@protonmail.com" and password "password"
And bridge starts
And the user logs in with username "user@pm.me" and password "password"
And the user logs in with username "user-multi@pm.me" and password "password"
And the user sets the address mode of "user-multi@pm.me" to "split"
Scenario: Send two messages in one connection
When user "user@pm.me" connects and authenticates SMTP client "1"
And SMTP client "1" sends the following message from "user@pm.me" to "bridgetest@protonmail.com":
"""
From: Bridge Test <user@pm.me>
To: Internal Bridge <bridgetest@protonmail.com>
hello
"""
Then it succeeds
When SMTP client "1" sends the following message from "user@pm.me" to "bridgetest@protonmail.com":
"""
From: Bridge Test <user@pm.me>
To: Internal Bridge <bridgetest@protonmail.com>
world
"""
Then it succeeds
Scenario: Send with two addresses of the same user in split mode
When user "user-multi@pm.me" connects and authenticates SMTP client "1" with address "user-multi@pm.me"
And user "user-multi@pm.me" connects and authenticates SMTP client "2" with address "user-multi-alias@pm.me"
And SMTP client "1" sends the following message from "user-multi@pm.me" to "bridgetest@protonmail.com>":
"""
From: Bridge Test <user-multi@pm.me>
To: Internal Bridge <bridgetest@protonmail.com>
hello
"""
Then it succeeds
When SMTP client "2" sends the following message from "user-multi@pm.me" to "bridgetest@protonmail.com>":
"""
From: Bridge Test <user-multi@pm.me>
To: Internal Bridge <bridgetest@protonmail.com>
world
"""
Then it succeeds
Scenario: Send with two separate users
When user "user@pm.me" connects and authenticates SMTP client "1"
And user "user-multi@pm.me" connects and authenticates SMTP client "2"
When SMTP client "1" sends the following message from "user@pm.me" to "bridgetest@protonmail.com>":
"""
From: Bridge Test <user@pm.me>
To: Internal Bridge <bridgetest@protonmail.com>
hello
"""
Then it succeeds
When SMTP client "2" sends the following message from "user-multi@pm.me" to "bridgetest@protonmail.com>":
"""
From: Bridge Test <user-multi@pm.me>
To: Internal Bridge <bridgetest@protonmail.com>
world
"""
Then it succeeds

View File

@ -1,14 +0,0 @@
package tests
import (
"github.com/ProtonMail/proton-bridge/v2/internal/certs"
"gitlab.protontech.ch/go/liteapi/server/account"
)
func init() {
// Use the fast key generation for tests.
account.GenerateKey = FastGenerateKey
// Use the fast cert generation for tests.
certs.GenerateCert = FastGenerateCert
}