mirror of
https://github.com/docker-mailserver/docker-mailserver.git
synced 2024-01-19 02:48:50 +00:00
Tests: extract mail_pop3 into own .bats file
This commit is contained in:
parent
81fd83525c
commit
533ac7ed29
9
Makefile
9
Makefile
|
@ -65,15 +65,6 @@ run:
|
||||||
-e DMS_DEBUG=0 \
|
-e DMS_DEBUG=0 \
|
||||||
-h mail.my-domain.com -t $(NAME)
|
-h mail.my-domain.com -t $(NAME)
|
||||||
sleep 15
|
sleep 15
|
||||||
docker run --rm -d --name mail_pop3 \
|
|
||||||
-v "`pwd`/test/config":/tmp/docker-mailserver \
|
|
||||||
-v "`pwd`/test/test-files":/tmp/docker-mailserver-test:ro \
|
|
||||||
-v "`pwd`/test/config/letsencrypt":/etc/letsencrypt/live \
|
|
||||||
-e ENABLE_POP3=1 \
|
|
||||||
-e DMS_DEBUG=0 \
|
|
||||||
-e SSL_TYPE=letsencrypt \
|
|
||||||
-h mail.my-domain.com -t $(NAME)
|
|
||||||
sleep 15
|
|
||||||
docker run --rm -d --name mail_smtponly_without_config \
|
docker run --rm -d --name mail_smtponly_without_config \
|
||||||
-e SMTP_ONLY=1 \
|
-e SMTP_ONLY=1 \
|
||||||
-e ENABLE_LDAP=1 \
|
-e ENABLE_LDAP=1 \
|
||||||
|
|
115
test/mail_pop3.bats
Normal file
115
test/mail_pop3.bats
Normal file
|
@ -0,0 +1,115 @@
|
||||||
|
load 'test_helper/common'
|
||||||
|
|
||||||
|
function setup() {
|
||||||
|
run_setup_file_if_necessary
|
||||||
|
}
|
||||||
|
|
||||||
|
function teardown() {
|
||||||
|
run_teardown_file_if_necessary
|
||||||
|
}
|
||||||
|
|
||||||
|
function setup_file() {
|
||||||
|
docker run -d --name mail_pop3 \
|
||||||
|
-v "`pwd`/test/config":/tmp/docker-mailserver \
|
||||||
|
-v "`pwd`/test/test-files":/tmp/docker-mailserver-test:ro \
|
||||||
|
-v "`pwd`/test/config/letsencrypt":/etc/letsencrypt/live \
|
||||||
|
-e ENABLE_POP3=1 \
|
||||||
|
-e DMS_DEBUG=0 \
|
||||||
|
-e SSL_TYPE=letsencrypt \
|
||||||
|
-h mail.my-domain.com -t ${NAME}
|
||||||
|
|
||||||
|
wait_for_finished_setup_in_container mail_pop3
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function teardown_file() {
|
||||||
|
docker rm -f mail_pop3
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "first" {
|
||||||
|
skip 'this test must come first to reliably identify when to run setup_file'
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# pop
|
||||||
|
#
|
||||||
|
|
||||||
|
@test "checking pop: server is ready" {
|
||||||
|
run docker exec mail_pop3 /bin/bash -c "nc -w 1 0.0.0.0 110 | grep '+OK'"
|
||||||
|
assert_success
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "checking pop: authentication works" {
|
||||||
|
run docker exec mail_pop3 /bin/sh -c "nc -w 1 0.0.0.0 110 < /tmp/docker-mailserver-test/auth/pop3-auth.txt"
|
||||||
|
assert_success
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "checking pop: added user authentication works" {
|
||||||
|
run docker exec mail_pop3 /bin/sh -c "nc -w 1 0.0.0.0 110 < /tmp/docker-mailserver-test/auth/added-pop3-auth.txt"
|
||||||
|
assert_success
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# spamassassin
|
||||||
|
#
|
||||||
|
|
||||||
|
@test "checking spamassassin: docker env variables are set correctly (default)" {
|
||||||
|
run docker exec mail_pop3 /bin/sh -c "grep '\$sa_tag_level_deflt' /etc/amavis/conf.d/20-debian_defaults | grep '= 2.0'"
|
||||||
|
assert_success
|
||||||
|
run docker exec mail_pop3 /bin/sh -c "grep '\$sa_tag2_level_deflt' /etc/amavis/conf.d/20-debian_defaults | grep '= 6.31'"
|
||||||
|
assert_success
|
||||||
|
run docker exec mail_pop3 /bin/sh -c "grep '\$sa_kill_level_deflt' /etc/amavis/conf.d/20-debian_defaults | grep '= 6.31'"
|
||||||
|
assert_success
|
||||||
|
run docker exec mail_pop3 /bin/sh -c "grep '\$sa_spam_subject_tag' /etc/amavis/conf.d/20-debian_defaults | grep '= .\*\*\*SPAM\*\*\* .'"
|
||||||
|
assert_success
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# ssl
|
||||||
|
#
|
||||||
|
|
||||||
|
@test "checking ssl: letsencrypt configuration is correct" {
|
||||||
|
run docker exec mail_pop3 /bin/sh -c 'grep -ir "/etc/letsencrypt/live/mail.my-domain.com/" /etc/postfix/main.cf | wc -l'
|
||||||
|
assert_success
|
||||||
|
assert_output 2
|
||||||
|
run docker exec mail_pop3 /bin/sh -c 'grep -ir "/etc/letsencrypt/live/mail.my-domain.com/" /etc/dovecot/conf.d/10-ssl.conf | wc -l'
|
||||||
|
assert_success
|
||||||
|
assert_output 2
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "checking ssl: letsencrypt cert works correctly" {
|
||||||
|
run docker exec mail_pop3 /bin/sh -c "timeout 1 openssl s_client -connect 0.0.0.0:587 -starttls smtp -CApath /etc/ssl/certs/ | grep 'Verify return code: 10 (certificate has expired)'"
|
||||||
|
assert_success
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# system
|
||||||
|
#
|
||||||
|
|
||||||
|
@test "checking system: /var/log/mail/mail.log is error free" {
|
||||||
|
run docker exec mail_pop3 grep 'non-null host address bits in' /var/log/mail/mail.log
|
||||||
|
assert_failure
|
||||||
|
run docker exec mail_pop3 grep ': error:' /var/log/mail/mail.log
|
||||||
|
assert_failure
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# sieve
|
||||||
|
#
|
||||||
|
|
||||||
|
@test "checking manage sieve: disabled per default" {
|
||||||
|
run docker exec mail_pop3 /bin/bash -c "nc -z 0.0.0.0 4190"
|
||||||
|
assert_failure
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# PERMIT_DOCKER mynetworks
|
||||||
|
#
|
||||||
|
@test "checking PERMIT_DOCKER: my network value" {
|
||||||
|
run docker exec mail_pop3 /bin/sh -c "postconf | grep '^mynetworks =' | egrep '[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}/32'"
|
||||||
|
assert_success
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "last" {
|
||||||
|
skip 'this test is only there to reliably mark the end for the teardown_file'
|
||||||
|
}
|
|
@ -138,25 +138,6 @@ function count_processed_changes() {
|
||||||
assert_success
|
assert_success
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
|
||||||
# pop
|
|
||||||
#
|
|
||||||
|
|
||||||
@test "checking pop: server is ready" {
|
|
||||||
run docker exec mail_pop3 /bin/bash -c "nc -w 1 0.0.0.0 110 | grep '+OK'"
|
|
||||||
assert_success
|
|
||||||
}
|
|
||||||
|
|
||||||
@test "checking pop: authentication works" {
|
|
||||||
run docker exec mail_pop3 /bin/sh -c "nc -w 1 0.0.0.0 110 < /tmp/docker-mailserver-test/auth/pop3-auth.txt"
|
|
||||||
assert_success
|
|
||||||
}
|
|
||||||
|
|
||||||
@test "checking pop: added user authentication works" {
|
|
||||||
run docker exec mail_pop3 /bin/sh -c "nc -w 1 0.0.0.0 110 < /tmp/docker-mailserver-test/auth/added-pop3-auth.txt"
|
|
||||||
assert_success
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# sasl
|
# sasl
|
||||||
#
|
#
|
||||||
|
@ -386,17 +367,6 @@ function count_processed_changes() {
|
||||||
assert_success
|
assert_success
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "checking spamassassin: docker env variables are set correctly (default)" {
|
|
||||||
run docker exec mail_pop3 /bin/sh -c "grep '\$sa_tag_level_deflt' /etc/amavis/conf.d/20-debian_defaults | grep '= 2.0'"
|
|
||||||
assert_success
|
|
||||||
run docker exec mail_pop3 /bin/sh -c "grep '\$sa_tag2_level_deflt' /etc/amavis/conf.d/20-debian_defaults | grep '= 6.31'"
|
|
||||||
assert_success
|
|
||||||
run docker exec mail_pop3 /bin/sh -c "grep '\$sa_kill_level_deflt' /etc/amavis/conf.d/20-debian_defaults | grep '= 6.31'"
|
|
||||||
assert_success
|
|
||||||
run docker exec mail_pop3 /bin/sh -c "grep '\$sa_spam_subject_tag' /etc/amavis/conf.d/20-debian_defaults | grep '= .\*\*\*SPAM\*\*\* .'"
|
|
||||||
assert_success
|
|
||||||
}
|
|
||||||
|
|
||||||
@test "checking spamassassin: all registered domains should see spam headers" {
|
@test "checking spamassassin: all registered domains should see spam headers" {
|
||||||
run docker exec mail /bin/sh -c "grep -ir 'X-Spam-' /var/mail/localhost.localdomain/user1/new"
|
run docker exec mail /bin/sh -c "grep -ir 'X-Spam-' /var/mail/localhost.localdomain/user1/new"
|
||||||
assert_success
|
assert_success
|
||||||
|
@ -675,20 +645,6 @@ function count_processed_changes() {
|
||||||
assert_success
|
assert_success
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "checking ssl: letsencrypt configuration is correct" {
|
|
||||||
run docker exec mail_pop3 /bin/sh -c 'grep -ir "/etc/letsencrypt/live/mail.my-domain.com/" /etc/postfix/main.cf | wc -l'
|
|
||||||
assert_success
|
|
||||||
assert_output 2
|
|
||||||
run docker exec mail_pop3 /bin/sh -c 'grep -ir "/etc/letsencrypt/live/mail.my-domain.com/" /etc/dovecot/conf.d/10-ssl.conf | wc -l'
|
|
||||||
assert_success
|
|
||||||
assert_output 2
|
|
||||||
}
|
|
||||||
|
|
||||||
@test "checking ssl: letsencrypt cert works correctly" {
|
|
||||||
run docker exec mail_pop3 /bin/sh -c "timeout 1 openssl s_client -connect 0.0.0.0:587 -starttls smtp -CApath /etc/ssl/certs/ | grep 'Verify return code: 10 (certificate has expired)'"
|
|
||||||
assert_success
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# postsrsd
|
# postsrsd
|
||||||
#
|
#
|
||||||
|
@ -780,10 +736,6 @@ function count_processed_changes() {
|
||||||
assert_failure
|
assert_failure
|
||||||
run docker exec mail grep -i 'connect to 127.0.0.1:10023: Connection refused' /var/log/mail/mail.log
|
run docker exec mail grep -i 'connect to 127.0.0.1:10023: Connection refused' /var/log/mail/mail.log
|
||||||
assert_failure
|
assert_failure
|
||||||
run docker exec mail_pop3 grep 'non-null host address bits in' /var/log/mail/mail.log
|
|
||||||
assert_failure
|
|
||||||
run docker exec mail_pop3 grep ': error:' /var/log/mail/mail.log
|
|
||||||
assert_failure
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "checking system: /var/log/auth.log is error free" {
|
@test "checking system: /var/log/auth.log is error free" {
|
||||||
|
@ -830,11 +782,6 @@ function count_processed_changes() {
|
||||||
assert_success
|
assert_success
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "checking manage sieve: disabled per default" {
|
|
||||||
run docker exec mail_pop3 /bin/bash -c "nc -z 0.0.0.0 4190"
|
|
||||||
assert_failure
|
|
||||||
}
|
|
||||||
|
|
||||||
@test "checking sieve: user2 should have piped 1 email to /tmp/" {
|
@test "checking sieve: user2 should have piped 1 email to /tmp/" {
|
||||||
run docker exec mail /bin/sh -c "ls -A /tmp/pipe-test.out | wc -l"
|
run docker exec mail /bin/sh -c "ls -A /tmp/pipe-test.out | wc -l"
|
||||||
assert_success
|
assert_success
|
||||||
|
@ -949,8 +896,6 @@ function count_processed_changes() {
|
||||||
@test "checking PERMIT_DOCKER: my network value" {
|
@test "checking PERMIT_DOCKER: my network value" {
|
||||||
run docker exec mail /bin/sh -c "postconf | grep '^mynetworks =' | egrep '[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.0\.0/16'"
|
run docker exec mail /bin/sh -c "postconf | grep '^mynetworks =' | egrep '[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.0\.0/16'"
|
||||||
assert_success
|
assert_success
|
||||||
run docker exec mail_pop3 /bin/sh -c "postconf | grep '^mynetworks =' | egrep '[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}/32'"
|
|
||||||
assert_success
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
Loading…
Reference in a new issue