mirror of
https://github.com/wneessen/go-mail.git
synced 2024-12-18 17:00:38 +01:00
Refactor SCRAM tests to include SHA-256-PLUS
Updated `TestClient_AuthSCRAMSHA1PLUS_tlsexporter` and `TestClient_AuthSCRAMSHA1PLUS_tlsunique` to test both SCRAM-SHA-1-PLUS and SCRAM-SHA-256-PLUS authentication types. Implemented table-driven tests to improve readability and maintainability.
This commit is contained in:
parent
bcf7084982
commit
324be9d032
1 changed files with 52 additions and 26 deletions
|
@ -1836,7 +1836,7 @@ func TestClient_DialSendConcurrent_local(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClient_AuthSCRAMSHA1PLUS_tlsexporter(t *testing.T) {
|
func TestClient_AuthSCRAMSHAXPLUS_tlsexporter(t *testing.T) {
|
||||||
if os.Getenv("TEST_ONLINE_SCRAM") == "" {
|
if os.Getenv("TEST_ONLINE_SCRAM") == "" {
|
||||||
t.Skipf("TEST_ONLINE_SCRAM is not set. Skipping online SCRAM tests")
|
t.Skipf("TEST_ONLINE_SCRAM is not set. Skipping online SCRAM tests")
|
||||||
}
|
}
|
||||||
|
@ -1844,45 +1844,71 @@ func TestClient_AuthSCRAMSHA1PLUS_tlsexporter(t *testing.T) {
|
||||||
username := os.Getenv("TEST_USER_SCRAM")
|
username := os.Getenv("TEST_USER_SCRAM")
|
||||||
password := os.Getenv("TEST_PASS_SCRAM")
|
password := os.Getenv("TEST_PASS_SCRAM")
|
||||||
|
|
||||||
client, err := NewClient(hostname, WithTLSPortPolicy(TLSMandatory),
|
tests := []struct {
|
||||||
WithSMTPAuth(SMTPAuthSCRAMSHA1PLUS),
|
name string
|
||||||
WithUsername(username), WithPassword(password))
|
authtype SMTPAuthType
|
||||||
if err != nil {
|
}{
|
||||||
t.Errorf("unable to create new client: %s", err)
|
{"SCRAM-SHA-1-PLUS", SMTPAuthSCRAMSHA1PLUS},
|
||||||
return
|
{"SCRAM-SHA-256-PLUS", SMTPAuthSCRAMSHA256PLUS},
|
||||||
}
|
}
|
||||||
if err = client.DialWithContext(context.Background()); err != nil {
|
|
||||||
t.Errorf("failed to dial to test server: %s", err)
|
for _, tt := range tests {
|
||||||
}
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
if err = client.Close(); err != nil {
|
client, err := NewClient(hostname,
|
||||||
t.Errorf("failed to close server connection: %s", err)
|
WithTLSPortPolicy(TLSMandatory),
|
||||||
|
WithSMTPAuth(tt.authtype),
|
||||||
|
WithUsername(username), WithPassword(password))
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("unable to create new client: %s", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if err = client.DialWithContext(context.Background()); err != nil {
|
||||||
|
t.Errorf("failed to dial to test server: %s", err)
|
||||||
|
}
|
||||||
|
if err = client.Close(); err != nil {
|
||||||
|
t.Errorf("failed to close server connection: %s", err)
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClient_AuthSCRAMSHA1PLUS_tlsunique(t *testing.T) {
|
func TestClient_AuthSCRAMSHAXPLUS_tlsunique(t *testing.T) {
|
||||||
if os.Getenv("TEST_ONLINE_SCRAM") == "" {
|
if os.Getenv("TEST_ONLINE_SCRAM") == "" {
|
||||||
t.Skipf("TEST_ONLINE_SCRAM is not set. Skipping online SCRAM tests")
|
t.Skipf("TEST_ONLINE_SCRAM is not set. Skipping online SCRAM tests")
|
||||||
}
|
}
|
||||||
hostname := os.Getenv("TEST_HOST_SCRAM")
|
hostname := os.Getenv("TEST_HOST_SCRAM")
|
||||||
username := os.Getenv("TEST_USER_SCRAM")
|
username := os.Getenv("TEST_USER_SCRAM")
|
||||||
password := os.Getenv("TEST_PASS_SCRAM")
|
password := os.Getenv("TEST_PASS_SCRAM")
|
||||||
|
|
||||||
tlsConfig := &tls.Config{}
|
tlsConfig := &tls.Config{}
|
||||||
tlsConfig.MaxVersion = tls.VersionTLS12
|
tlsConfig.MaxVersion = tls.VersionTLS12
|
||||||
tlsConfig.ServerName = hostname
|
tlsConfig.ServerName = hostname
|
||||||
client, err := NewClient(hostname, WithTLSPortPolicy(TLSMandatory),
|
|
||||||
WithTLSConfig(tlsConfig),
|
tests := []struct {
|
||||||
WithSMTPAuth(SMTPAuthSCRAMSHA1PLUS),
|
name string
|
||||||
WithUsername(username), WithPassword(password))
|
authtype SMTPAuthType
|
||||||
if err != nil {
|
}{
|
||||||
t.Errorf("unable to create new client: %s", err)
|
{"SCRAM-SHA-1-PLUS", SMTPAuthSCRAMSHA1PLUS},
|
||||||
return
|
{"SCRAM-SHA-256-PLUS", SMTPAuthSCRAMSHA256PLUS},
|
||||||
}
|
}
|
||||||
if err = client.DialWithContext(context.Background()); err != nil {
|
|
||||||
t.Errorf("failed to dial to test server: %s", err)
|
for _, tt := range tests {
|
||||||
}
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
if err = client.Close(); err != nil {
|
client, err := NewClient(hostname,
|
||||||
t.Errorf("failed to close server connection: %s", err)
|
WithTLSPortPolicy(TLSMandatory),
|
||||||
|
WithTLSConfig(tlsConfig),
|
||||||
|
WithSMTPAuth(tt.authtype),
|
||||||
|
WithUsername(username), WithPassword(password))
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("unable to create new client: %s", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if err = client.DialWithContext(context.Background()); err != nil {
|
||||||
|
t.Errorf("failed to dial to test server: %s", err)
|
||||||
|
}
|
||||||
|
if err = client.Close(); err != nil {
|
||||||
|
t.Errorf("failed to close server connection: %s", err)
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue