diff --git a/assert.sh b/assert.sh
deleted file mode 100644
index ffd2b955..00000000
--- a/assert.sh
+++ /dev/null
@@ -1,186 +0,0 @@
-#!/bin/bash
-# assert.sh 1.1 - bash unit testing framework
-# Copyright (C) 2009-2015 Robert Lehmann
-#
-# http://github.com/lehmannro/assert.sh
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License as published
-# by the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public License
-# along with this program. If not, see .
-
-export DISCOVERONLY=${DISCOVERONLY:-}
-export DEBUG=${DEBUG:-}
-export STOP=${STOP:-}
-export INVARIANT=${INVARIANT:-}
-export CONTINUE=${CONTINUE:-}
-
-args="$(getopt -n "$0" -l \
- verbose,help,stop,discover,invariant,continue vhxdic $*)" \
-|| exit -1
-for arg in $args; do
- case "$arg" in
- -h)
- echo "$0 [-vxidc]" \
- "[--verbose] [--stop] [--invariant] [--discover] [--continue]"
- echo "`sed 's/./ /g' <<< "$0"` [-h] [--help]"
- exit 0;;
- --help)
- cat < [stdin]
- (( tests_ran++ )) || :
- [[ -z "$DISCOVERONLY" ]] || return
- expected=$(echo -ne "${2:-}")
- result="$(eval 2>/dev/null $1 <<< ${3:-})" || true
- if [[ "$result" == "$expected" ]]; then
- [[ -z "$DEBUG" ]] || echo -n .
- return
- fi
- result="$(sed -e :a -e '$!N;s/\n/\\n/;ta' <<< "$result")"
- [[ -z "$result" ]] && result="nothing" || result="\"$result\""
- [[ -z "$2" ]] && expected="nothing" || expected="\"$2\""
- _assert_fail "expected $expected${_indent}got $result" "$1" "$3"
-}
-
-assert_raises() {
- # assert_raises [stdin]
- (( tests_ran++ )) || :
- [[ -z "$DISCOVERONLY" ]] || return
- status=0
- (eval $1 <<< ${3:-}) > /dev/null 2>&1 || status=$?
- expected=${2:-0}
- if [[ "$status" -eq "$expected" ]]; then
- [[ -z "$DEBUG" ]] || echo -n .
- return
- fi
- _assert_fail "program terminated with code $status instead of $expected" "$1" "$3"
-}
-
-_assert_fail() {
- # _assert_fail
- [[ -n "$DEBUG" ]] && echo -n X
- report="test #$tests_ran \"$2${3:+ <<< $3}\" failed:${_indent}$1"
- if [[ -n "$STOP" ]]; then
- [[ -n "$DEBUG" ]] && echo
- echo "$report"
- exit 1
- fi
- tests_errors[$tests_failed]="$report"
- (( tests_failed++ )) || :
-}
-
-skip_if() {
- # skip_if
- (eval $@) > /dev/null 2>&1 && status=0 || status=$?
- [[ "$status" -eq 0 ]] || return
- skip
-}
-
-skip() {
- # skip (no arguments)
- shopt -q extdebug && tests_extdebug=0 || tests_extdebug=1
- shopt -q -o errexit && tests_errexit=0 || tests_errexit=1
- # enable extdebug so returning 1 in a DEBUG trap handler skips next command
- shopt -s extdebug
- # disable errexit (set -e) so we can safely return 1 without causing exit
- set +o errexit
- tests_trapped=0
- trap _skip DEBUG
-}
-_skip() {
- if [[ $tests_trapped -eq 0 ]]; then
- # DEBUG trap for command we want to skip. Do not remove the handler
- # yet because *after* the command we need to reset extdebug/errexit (in
- # another DEBUG trap.)
- tests_trapped=1
- [[ -z "$DEBUG" ]] || echo -n s
- return 1
- else
- trap - DEBUG
- [[ $tests_extdebug -eq 0 ]] || shopt -u extdebug
- [[ $tests_errexit -eq 1 ]] || set -o errexit
- return 0
- fi
-}
-
-
-_assert_reset
-: ${tests_suite_status:=0} # remember if any of the tests failed so far
-_assert_cleanup() {
- local status=$?
- # modify exit code if it's not already non-zero
- [[ $status -eq 0 && -z $CONTINUE ]] && exit $tests_suite_status
-}
-trap _assert_cleanup EXIT
diff --git a/test/test.sh b/test/test.sh
deleted file mode 100644
index b6530b9d..00000000
--- a/test/test.sh
+++ /dev/null
@@ -1,116 +0,0 @@
-#!/bin/bash
-
-# Set up test framework
-source assert.sh
-
-# Testing that services are running and pop3 is disabled
-assert_raises "docker exec mail ps aux --forest | grep -v grep | grep '/usr/lib/postfix/master'" 0
-assert_raises "docker exec mail ps aux --forest | grep -v grep | grep '/usr/sbin/saslauthd'" 0
-assert_raises "docker exec mail ps aux --forest | grep -v grep | grep '/usr/sbin/clamd'" 0
-assert_raises "docker exec mail ps aux --forest | grep -v grep | grep '/usr/sbin/amavisd-new'" 0
-assert_raises "docker exec mail ps aux --forest | grep -v grep | grep '/usr/sbin/opendkim'" 0
-assert_raises "docker exec mail ps aux --forest | grep -v grep | grep '/usr/sbin/opendmarc'" 0
-assert_raises "docker exec mail ps aux --forest | grep -v grep | grep '/usr/lib/courier/courier/courierpop3d'" 1
-assert_raises "docker exec mail ps aux --forest | grep -v grep | grep '/usr/bin/python /usr/bin/fail2ban-server'" 0
-
-# Testing services of pop3 container
-assert_raises "docker exec mail_pop3 ps aux --forest | grep -v grep | grep '/usr/lib/courier/courier/courierpop3d'" 0
-
-# Testing IMAP server
-assert_raises "docker exec mail nc -w 1 0.0.0.0 143 | grep '* OK' | grep 'STARTTLS' | grep 'Courier-IMAP ready'" 0
-assert_raises "docker exec mail /bin/sh -c 'nc -w 1 0.0.0.0 143 < /tmp/test/auth/imap-auth.txt'" 0
-
-# Testing POP3 server on pop3 container
-assert_raises "docker exec mail_pop3 nc -w 1 0.0.0.0 110 | grep '+OK'" 0
-assert_raises "docker exec mail_pop3 /bin/sh -c 'nc -w 1 0.0.0.0 110 < /tmp/test/auth/pop3-auth.txt'" 0
-
-# Testing SASL
-assert_raises "docker exec mail testsaslauthd -u user2 -r otherdomain.tld -p mypassword | grep 'OK \"Success.\"'" 0
-assert_raises "docker exec mail testsaslauthd -u user2 -r otherdomain.tld -p BADPASSWORD | grep 'NO \"authentication failed\"'" 0
-assert_raises "docker exec mail /bin/sh -c 'nc -w 1 0.0.0.0 25 < /tmp/test/auth/smtp-auth-plain.txt' | grep 'Authentication successful'"
-assert_raises "docker exec mail /bin/sh -c 'nc -w 1 0.0.0.0 25 < /tmp/test/auth/smtp-auth-login.txt' | grep 'Authentication successful'"
-
-# Testing user creation
-assert "docker exec mail sasldblistusers2" "user1@localhost.localdomain: userPassword\nuser2@otherdomain.tld: userPassword"
-assert "docker exec mail ls -A /var/mail/localhost.localdomain/user1" ".Drafts\n.Sent\n.Trash\ncourierimapsubscribed\ncur\nnew\ntmp"
-assert "docker exec mail ls -A /var/mail/otherdomain.tld/user2" ".Drafts\n.Sent\n.Trash\ncourierimapsubscribed\ncur\nnew\ntmp"
-
-# Testing `vhost` creation
-assert "docker exec mail cat /etc/postfix/vhost" "localhost.localdomain\notherdomain.tld"
-
-# 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" "2"
-
-# Testing that mail is rejected for non existing user
-assert_raises "docker exec mail grep ': Recipient address rejected: User unknown in virtual mailbox table' /var/log/mail.log" 0
-
-# Testing that mail is received for existing alias
-assert_raises "docker exec mail grep 'to=, orig_to=' /var/log/mail.log | grep 'status=sent'" 0
-
-# Testing that mail is redirected for external alias
-assert_raises "docker exec mail grep -- '-> ' /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" 0
-
-# Testing that a Virus is rejected
-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"
-
-# Testing that log don't display errors
-assert_raises "docker exec mail grep 'non-null host address bits in' /var/log/mail.log" 1
-assert_raises "docker exec mail grep ': error:' /var/log/mail.log" 1
-
-# Testing that pop3 container log don't display errors
-assert_raises "docker exec mail_pop3 grep 'non-null host address bits in' /var/log/mail.log" 1
-assert_raises "docker exec mail_pop3 grep ': error:' /var/log/mail.log" 1
-
-# Testing Spamssassin config in Amavis
-assert_raises "docker exec mail_pop3 grep '\$sa_tag_level_deflt' /etc/amavis/conf.d/20-debian_defaults | grep '= 2.0'" 0
-assert_raises "docker exec mail_pop3 grep '\$sa_tag2_level_deflt' /etc/amavis/conf.d/20-debian_defaults | grep '= 6.31'" 0
-assert_raises "docker exec mail_pop3 grep '\$sa_kill_level_deflt' /etc/amavis/conf.d/20-debian_defaults | grep '= 6.31'" 0
-assert_raises "docker exec mail grep '\$sa_tag_level_deflt' /etc/amavis/conf.d/20-debian_defaults | grep '= 1.0'" 0
-assert_raises "docker exec mail grep '\$sa_tag2_level_deflt' /etc/amavis/conf.d/20-debian_defaults | grep '= 2.0'" 0
-assert_raises "docker exec mail grep '\$sa_kill_level_deflt' /etc/amavis/conf.d/20-debian_defaults | grep '= 3.0'" 0
-
-# Testing OpenDKIM
-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"
-
-# Testing presence of LetsEncrypt signed certs
-assert_raises "docker exec mail grep 'BEGIN CERTIFICATE' /etc/ssl/certs/lets-encrypt-x1-cross-signed.pem" "0"
-assert_raises "docker exec mail grep 'BEGIN CERTIFICATE' /etc/ssl/certs/lets-encrypt-x2-cross-signed.pem" "0"
-
-# Testing generated ssl certs
-assert_raises "docker exec mail openssl s_client -connect 0.0.0.0:587 -starttls smtp -CApath /etc/ssl/certs/ | grep 'Verify return code: 0 (ok)'" "0"
-
-# Testing fail2ban
-assert_raises "docker exec mail fail2ban-client status sasl | grep 'IP list:\s*127.0.0.1'" 1
-
-docker exec mail fail2ban-client set sasl delignoreip 127.0.0.1/8 &> /dev/null
-
-docker exec mail /bin/sh -c 'nc -w 1 0.0.0.0 25 < /tmp/test/auth/smtp-auth-login-wrong.txt' &> /dev/null
-docker exec mail /bin/sh -c 'nc -w 1 0.0.0.0 25 < /tmp/test/auth/smtp-auth-login-wrong.txt' &> /dev/null
-docker exec mail /bin/sh -c 'nc -w 1 0.0.0.0 25 < /tmp/test/auth/smtp-auth-login-wrong.txt' &> /dev/null
-
-sleep 10
-assert_raises "docker exec mail fail2ban-client status sasl | grep 'IP list:\s*127.0.0.1'" 0
-
-docker exec mail fail2ban-client set sasl addignoreip 127.0.0.1/8 &> /dev/null
-docker exec mail fail2ban-client set sasl unbanip 127.0.0.1 &> /dev/null
-
-sleep 10
-assert_raises "docker exec mail fail2ban-client status sasl | grep 'IP list:\s*127.0.0.1'" 1
-
-# Ending tests
-assert_end