1
0
mirror of https://blitiri.com.ar/repos/chasquid synced 2026-01-08 17:51:57 +00:00

test: Add a new local end-to-end test

This patch introduces a new directory, test/, which contains a simple local
end-to-end test which runs a chasquid binary and uses msmtp to send an email,
which is delivered locally.

As it's the first one, it adds a bunch of common infrastructure to simplify
writing these kinds of tests.

More end-to-end tests will follow, and it's expected that the common
infrastructure will also change significantly to accomodate their needs.
This commit is contained in:
Alberto Bertogli
2016-07-22 01:52:27 +01:00
parent 92d16a0ca9
commit 92a88bd06f
10 changed files with 343 additions and 0 deletions

View File

@@ -0,0 +1,5 @@
address: ":1025"
monitoring_address: ":1099"
mail_delivery_agent_bin: "test-mda"
mail_delivery_agent_args: "%user%@%domain%"

View File

@@ -0,0 +1,2 @@
#chasquid-userdb-v1
user SCRYPT@n:14,r:8,p:1,l:32,r00XqNmRkV505R2X6KT8+Q== aAiBBIVNNzmDXwxLLdJezFuxGtc2/wcHsy3FiOMAH4c=

View File

@@ -0,0 +1,4 @@
Subject: Prueba desde el test
Crece desde el test el futuro
Crece desde el test

View File

@@ -0,0 +1 @@
testserver localhost

View File

@@ -0,0 +1,21 @@
account default
host testserver
port 1025
tls on
tls_trust_file config/domains/testserver/cert.pem
from user@testserver
auth on
user user@testserver
password secretpassword
account baduser : default
user unknownuser@testserver
password secretpassword
account badpasswd : default
user user@testserver
password badsecretpassword

29
test/t-simple_local/run.sh Executable file
View File

@@ -0,0 +1,29 @@
#!/bin/bash
set -e
. $(dirname ${0})/../util/lib.sh
init
generate_certs_for testserver
chasquid -v=2 --log_dir=.logs --config_dir=config &
wait_until_ready 1025
run_msmtp someone@testserver < content
wait_for_file .mail/someone@testserver
mail_diff content .mail/someone@testserver
if run_msmtp -a baduser someone@testserver < content 2> /dev/null; then
echo "ERROR: successfully sent an email with a bad password"
exit 1
fi
if run_msmtp -a badpasswd someone@testserver < content 2> /dev/null; then
echo "ERROR: successfully sent an email with a bad password"
exit 1
fi
success