mirror of
https://github.com/docker-mailserver/docker-mailserver.git
synced 2024-01-19 02:48:50 +00:00
Added tests and simplified some of them
This commit is contained in:
parent
1c3b86dc41
commit
97a495ae1d
11
Makefile
11
Makefile
|
@ -1,7 +1,8 @@
|
|||
NAME = tvial/docker-mailserver
|
||||
VERSION = $(TRAVIS_BUILD_ID)
|
||||
|
||||
all: build run prepare fixtures tests
|
||||
all: build run fixtures tests clean
|
||||
all-no-build: run fixtures tests clean
|
||||
|
||||
build:
|
||||
docker build --no-cache -t $(NAME):$(VERSION) .
|
||||
|
@ -13,12 +14,7 @@ run:
|
|||
# Run containers
|
||||
docker run -d --name mail -v "`pwd`/postfix":/tmp/postfix -v "`pwd`/spamassassin":/tmp/spamassassin -v "`pwd`/test":/tmp/test -h mail.my-domain.com -t $(NAME):$(VERSION)
|
||||
docker run -d --name mail_pop3 -v "`pwd`/postfix":/tmp/postfix -v "`pwd`/spamassassin":/tmp/spamassassin -v "`pwd`/test":/tmp/test -e ENABLE_POP3=1 -h mail.my-domain.com -t $(NAME):$(VERSION)
|
||||
sleep 25
|
||||
|
||||
prepare:
|
||||
# Reinitialize logs
|
||||
docker exec mail /bin/sh -c 'echo "" > /var/log/mail.log'
|
||||
docker exec mail_pop3 /bin/sh -c 'echo "" > /var/log/mail.log'
|
||||
sleep 60
|
||||
|
||||
fixtures:
|
||||
# Sending test mails
|
||||
|
@ -38,3 +34,4 @@ tests:
|
|||
clean:
|
||||
# Get default files back
|
||||
git checkout postfix/accounts.cf postfix/virtual
|
||||
docker rm -f mail mail_pop3
|
|
@ -88,6 +88,8 @@ Example:
|
|||
* *empty* (default) => POP3 service disabled
|
||||
* 1 => Enables POP3 service
|
||||
|
||||
Please read [how the container starts](https://github.com/tomav/docker-mailserver/blob/master/start-mailserver.sh) to understand what's expected.
|
||||
|
||||
## SSL
|
||||
|
||||
Please read [SSL.md](SSL.md) for more information.
|
||||
|
|
15
test/test.sh
15
test/test.sh
|
@ -8,8 +8,9 @@ assert_raises "docker exec mail ps aux --forest | grep '/usr/lib/postfix/master'
|
|||
assert_raises "docker exec mail ps aux --forest | grep '/usr/sbin/saslauthd'" 0
|
||||
assert_raises "docker exec mail ps aux --forest | grep '/usr/sbin/clamd'" 0
|
||||
assert_raises "docker exec mail ps aux --forest | grep '/usr/sbin/amavisd-new'" 0
|
||||
assert_raises "docker exec mail ps aux --forest | grep '/usr/lib/courier/courier/courierpop3d'" 1
|
||||
assert_raises "docker exec mail ps aux --forest | grep '/usr/sbin/opendkim'" 0
|
||||
assert_raises "docker exec mail ps aux --forest | grep '/usr/sbin/opendmarc'" 0
|
||||
assert_raises "docker exec mail ps aux --forest | grep '/usr/lib/courier/courier/courierpop3d'" 1
|
||||
|
||||
# Testing services of pop3 container
|
||||
assert_raises "docker exec mail_pop3 ps aux --forest | grep '/usr/lib/courier/courier/courierpop3d'" 0
|
||||
|
@ -38,7 +39,7 @@ assert "docker exec mail cat /etc/postfix/vhost" "localhost.localdomain\notherdo
|
|||
|
||||
# Testing that mail is received for existing user
|
||||
assert_raises "docker exec mail grep 'status=sent (delivered to maildir)' /var/log/mail.log" 0
|
||||
assert "docker exec mail ls -A /var/mail/localhost.localdomain/user1/new | wc -l | sed -e 's/^[ \t]*//'" "2"
|
||||
assert "docker exec mail ls -A /var/mail/localhost.localdomain/user1/new | wc -l" "2"
|
||||
|
||||
# Testing that mail is rejected for non existing user
|
||||
assert_raises "docker exec mail grep '<nouser@localhost.localdomain>: Recipient address rejected: User unknown in virtual mailbox table' /var/log/mail.log" 0
|
||||
|
@ -50,10 +51,10 @@ assert_raises "docker exec mail grep 'to=<user1@localhost.localdomain>, orig_to=
|
|||
assert_raises "docker exec mail grep -- '-> <external1@otherdomain.tld>' /var/log/mail.log" 0
|
||||
|
||||
# Testing that a SPAM is rejected
|
||||
assert_raises "docker exec mail grep 'Blocked SPAM' /var/log/mail.log | grep spam@external.tld"
|
||||
assert_raises "docker exec mail grep 'Blocked SPAM' /var/log/mail.log | grep spam@external.tld" 0
|
||||
|
||||
# Testing that a Virus is rejected
|
||||
assert_raises "docker exec mail grep 'Blocked INFECTED' /var/log/mail.log | grep virus@external.tld"
|
||||
assert_raises "docker exec mail grep 'Blocked INFECTED' /var/log/mail.log | grep virus@external.tld" 0
|
||||
|
||||
# Testing presence of freshclam CRON
|
||||
assert "docker exec mail crontab -l" "0 1 * * * /usr/bin/freshclam --quiet"
|
||||
|
@ -67,11 +68,15 @@ assert_raises "docker exec mail_pop3 grep 'non-null host address bits in' /var/l
|
|||
assert_raises "docker exec mail_pop3 grep ': error:' /var/log/mail.log" 1
|
||||
|
||||
# Testing OpenDKIM
|
||||
assert "docker exec mail cat /etc/opendkim/KeyTable | wc -l | sed -e 's/^[ \t]*//'" "2"
|
||||
assert "docker exec mail cat /etc/opendkim/KeyTable | wc -l" "2"
|
||||
assert "docker exec mail ls -l /etc/opendkim/keys/ | grep '^d' | wc -l" "2"
|
||||
|
||||
# Testing OpenDMARC
|
||||
assert "docker exec mail cat /etc/opendmarc.conf | grep ^AuthservID | wc -l" "1"
|
||||
assert "docker exec mail cat /etc/opendmarc.conf | grep ^TrustedAuthservID | wc -l" "1"
|
||||
|
||||
# Testing hostname config
|
||||
assert "docker exec mail cat /etc/mailname" "my-domain.com"
|
||||
|
||||
# Ending tests
|
||||
assert_end
|
||||
|
|
Loading…
Reference in a new issue