diff --git a/Makefile b/Makefile index 00122325..5620291e 100644 --- a/Makefile +++ b/Makefile @@ -232,18 +232,6 @@ run: -e SA_SPAM_SUBJECT="undef" \ -h mail.my-domain.com -t $(NAME) sleep 15 - docker run -d --name mail_with_relays \ - -v "`pwd`/test/config/relay-hosts":/tmp/docker-mailserver \ - -v "`pwd`/test/test-files":/tmp/docker-mailserver-test:ro \ - -e RELAY_HOST=default.relay.com \ - -e RELAY_PORT=2525 \ - -e RELAY_USER=smtp_user \ - -e RELAY_PASSWORD=smtp_password \ - --cap-add=SYS_PTRACE \ - -e PERMIT_DOCKER=host \ - -e DMS_DEBUG=0 \ - -h mail.my-domain.com -t $(NAME) - sleep 15 generate-accounts-after-run: docker run --rm -e MAIL_USER=added@localhost.localdomain -e MAIL_PASS=mypassword -t $(NAME) /bin/sh -c 'echo "$$MAIL_USER|$$(doveadm pw -s SHA512-CRYPT -u $$MAIL_USER -p $$MAIL_PASS)"' >> test/config/postfix-accounts.cf @@ -318,8 +306,7 @@ clean: mail_postscreen \ mail_override_hostname \ mail_domainname \ - mail_srs_domainname \ - mail_with_relays + mail_srs_domainname @if [ -d config.bak ]; then\ rm -rf config ;\ diff --git a/test/mail_with_relays.bats b/test/mail_with_relays.bats new file mode 100644 index 00000000..027a207e --- /dev/null +++ b/test/mail_with_relays.bats @@ -0,0 +1,49 @@ +load 'test_helper/common' + +function setup() { + if [ "$BATS_TEST_NUMBER" -eq 1 ]; then + docker run -d --name mail_with_relays \ + -v "`pwd`/test/config/relay-hosts":/tmp/docker-mailserver \ + -v "`pwd`/test/test-files":/tmp/docker-mailserver-test:ro \ + -e RELAY_HOST=default.relay.com \ + -e RELAY_PORT=2525 \ + -e RELAY_USER=smtp_user \ + -e RELAY_PASSWORD=smtp_password \ + --cap-add=SYS_PTRACE \ + -e PERMIT_DOCKER=host \ + -e DMS_DEBUG=0 \ + -h mail.my-domain.com -t ${NAME} + wait_for_finished_setup_in_container mail_with_relays + fi +} + +function teardown() { + if [ "$BATS_TEST_NUMBER" -eq ${#BATS_TEST_NAMES[@]} ]; then + docker rm -f mail_with_relays + fi +} + +@test "checking relay hosts: default mapping is added from env vars" { + run docker exec mail_with_relays /bin/sh -c 'cat /etc/postfix/relayhost_map | grep -e "^@domainone.tld\s\+\[default.relay.com\]:2525" | wc -l | grep 1' + assert_success +} + +@test "checking relay hosts: custom mapping is added from file" { + run docker exec mail_with_relays /bin/sh -c 'cat /etc/postfix/relayhost_map | grep -e "^@domaintwo.tld\s\+\[other.relay.com\]:587" | wc -l | grep 1' + assert_success +} + +@test "checking relay hosts: ignored domain is not added" { + run docker exec mail_with_relays /bin/sh -c 'cat /etc/postfix/relayhost_map | grep -e "^@domainthree.tld\s\+\[any.relay.com\]:25" | wc -l | grep 0' + assert_success +} + +@test "checking relay hosts: auth entry is added" { + run docker exec mail_with_relays /bin/sh -c 'cat /etc/postfix/sasl_passwd | grep -e "^@domaintwo.tld\s\+smtp_user_2:smtp_password_2" | wc -l | grep 1' + assert_success +} + +@test "checking relay hosts: default auth entry is added" { + run docker exec mail_with_relays /bin/sh -c 'cat /etc/postfix/sasl_passwd | grep -e "^\[default.relay.com\]:2525\s\+smtp_user:smtp_password" | wc -l | grep 1' + assert_success +} \ No newline at end of file diff --git a/test/tests.bats b/test/tests.bats index 3d6629ed..265bd10b 100644 --- a/test/tests.bats +++ b/test/tests.bats @@ -1,4 +1,5 @@ - +load 'test_helper/bats-support/load' +load 'test_helper/bats-assert/load' # @@ -1815,37 +1816,6 @@ function count_processed_changes() { assert_success } - - -# -# relay hosts -# - -@test "checking relay hosts: default mapping is added from env vars" { - run docker exec mail_with_relays /bin/sh -c 'cat /etc/postfix/relayhost_map | grep -e "^@domainone.tld\s\+\[default.relay.com\]:2525" | wc -l | grep 1' - assert_success -} - -@test "checking relay hosts: custom mapping is added from file" { - run docker exec mail_with_relays /bin/sh -c 'cat /etc/postfix/relayhost_map | grep -e "^@domaintwo.tld\s\+\[other.relay.com\]:587" | wc -l | grep 1' - assert_success -} - -@test "checking relay hosts: ignored domain is not added" { - run docker exec mail_with_relays /bin/sh -c 'cat /etc/postfix/relayhost_map | grep -e "^@domainthree.tld\s\+\[any.relay.com\]:25" | wc -l | grep 0' - assert_success -} - -@test "checking relay hosts: auth entry is added" { - run docker exec mail_with_relays /bin/sh -c 'cat /etc/postfix/sasl_passwd | grep -e "^@domaintwo.tld\s\+smtp_user_2:smtp_password_2" | wc -l | grep 1' - assert_success -} - -@test "checking relay hosts: default auth entry is added" { - run docker exec mail_with_relays /bin/sh -c 'cat /etc/postfix/sasl_passwd | grep -e "^\[default.relay.com\]:2525\s\+smtp_user:smtp_password" | wc -l | grep 1' - assert_success -} - # # root mail delivery #