@@ -24,6 +24,8 @@ source "$working_dir"/bach/bach.sh
2424
2525 builtin source <( @sed -n -e ' /^# UFW-DOCKER GLOBAL VARIABLES START #$/,/^# UFW-DOCKER GLOBAL VARIABLES END #$/{' -e ' /^PATH=/d' -e ' p' -e ' }' " $working_dir /../ufw-docker" )
2626 UFW_DOCKER_AGENT_IMAGE=chaifeng/ufw-docker-agent:090502-legacy
27+
28+ @mock man-page === @stdout " MAN PAGE FOR UFW-DOCKER"
2729}
2830
2931function ufw-docker() {
861863}
862864
863865test-man-command () {
864- @mock man-page === @stdout " MAN PAGE FOR UFW-DOCKER"
865866 @capture man -l -
866867
867868 ufw-docker man
@@ -875,7 +876,6 @@ test-install-command-with-system() {
875876 @mock ufw-docker--check-install_ipv6 === @true
876877 @allow-real dirname /usr/local/bin/ufw-docker
877878 @allow-real dirname /usr/local/man/man8/ufw-docker.8
878- @mock man-page === @stdout " MAN PAGE FOR UFW-DOCKER"
879879 @capture tee /usr/local/man/man8/ufw-docker.8
880880
881881 load-ufw-docker-function ufw-docker--install
@@ -906,37 +906,99 @@ test-check-command-with-system-assert() {
906906 err " Installing man page to '/usr/local/man/man8/ufw-docker.8'"
907907}
908908
909- test-uninstall () {
910- after_rules=" /dev/null"
911- after6_rules=" /dev/null"
912- test_file=" after.rules-ufw-docker~2015-03-07-141100~"
913- test6_file=" after6.rules-ufw-docker~2015-03-07-141100~"
914- @mock get_restore_file === @stdout $test_file
915- @mock get_restore6_file === @stdout $test6_file
916- @mock command -v ip6tables === true
917- @mock dirname $man_location === @stdout /dev/null
918- @mock dirname $bin_location === @stdout /dev/null
919- load-ufw-docker-function ufw-docker--uninstall
920-
921- ufw-docker--uninstall
922- }
923- test-uninstall-assert () {
924- after_rules=" /dev/null"
925- after6_rules=" /dev/null"
926- test_file=" after.rules-ufw-docker~2015-03-07-141100~"
927- test6_file=" after6.rules-ufw-docker~2015-03-07-141100~"
928-
929- cp $test_file $after_rules
930- cp $test6_file $after6_rules
931- shopt -s nullglob
932- dirname $after_rules
933- cd
934- rm -- after.rules-ufw-docker~* -* -* -* ~
935- cd -
936- dirname $after6_rules
937- cd
938- rm -- after6.rules-ufw-docker~* -* -* -* ~
939- cd -
940- shopt -u nullglob
941- rm -f /usr/local/man/man8/ufw-docker.8 /usr/local/bin/ufw-docker
909+ setup-ufw-docker--uninstall () {
910+ @mock date ' +%Y-%m-%d-%H%M' === @stdout 2009-02-14-0731
911+
912+ @mocktrue grep -F ' UFW DOCKER' /etc/ufw/after.rules
913+ @mocktrue grep -F ' UFW DOCKER' /etc/ufw/after6.rules
914+
915+ @mocktrue docker service inspect ufw-docker-agent
916+
917+ @mocktrue [ -f /usr/local/bin/ufw-docker ]
918+ @mocktrue [ -f /usr/local/man/man8/ufw-docker.8 ]
919+
920+ @mocktrue type systemctl
921+ }
922+ test-ufw-docker--uninstall () {
923+ setup-ufw-docker--uninstall
924+
925+ load-ufw-docker-function ufw-docker--uninstall
926+
927+ ufw-docker--uninstall
928+ }
929+ test-ufw-docker--uninstall-assert () {
930+ cp -v /etc/ufw/after.rules /etc/ufw/after.rules~2009-02-14-0731
931+ sed -i -e ' /^# BEGIN UFW AND DOCKER/,/^# END UFW AND DOCKER/d' /etc/ufw/after.rules
932+ diff /etc/ufw/after.rules~2009-02-14-0731 /etc/ufw/after.rules
933+
934+ cp -v /etc/ufw/after6.rules /etc/ufw/after6.rules~2009-02-14-0731
935+ sed -i -e ' /^# BEGIN UFW AND DOCKER/,/^# END UFW AND DOCKER/d' /etc/ufw/after6.rules
936+ diff /etc/ufw/after6.rules~2009-02-14-0731 /etc/ufw/after6.rules
937+
938+ docker service rm ufw-docker-agent
939+
940+ rm -v /usr/local/bin/ufw-docker
941+ rm -v /usr/local/man/man8/ufw-docker.8
942+ }
943+
944+ test-ufw-docker--uninstall-missing-rules () {
945+ setup-ufw-docker--uninstall
946+ @mockfalse grep -F ' UFW DOCKER' /etc/ufw/after.rules
947+ @mockfalse grep -F ' UFW DOCKER' /etc/ufw/after6.rules
948+
949+ load-ufw-docker-function ufw-docker--uninstall
950+
951+ ufw-docker--uninstall
952+ }
953+ test-ufw-docker--uninstall-missing-rules-assert () {
954+ # Expect no cp or sed calls for after.rules/after6.rules
955+ docker service rm ufw-docker-agent
956+
957+ rm -v /usr/local/bin/ufw-docker
958+ rm -v /usr/local/man/man8/ufw-docker.8
959+ }
960+
961+ test-ufw-docker--uninstall-no-service () {
962+ setup-ufw-docker--uninstall
963+ @mockfalse docker service inspect ufw-docker-agent # Service not found
964+
965+ load-ufw-docker-function ufw-docker--uninstall
966+
967+ ufw-docker--uninstall
968+ }
969+ test-ufw-docker--uninstall-no-service-assert () {
970+ cp -v /etc/ufw/after.rules /etc/ufw/after.rules~2009-02-14-0731
971+ sed -i -e ' /^# BEGIN UFW AND DOCKER/,/^# END UFW AND DOCKER/d' /etc/ufw/after.rules
972+ diff /etc/ufw/after.rules~2009-02-14-0731 /etc/ufw/after.rules
973+
974+ cp -v /etc/ufw/after6.rules /etc/ufw/after6.rules~2009-02-14-0731
975+ sed -i -e ' /^# BEGIN UFW AND DOCKER/,/^# END UFW AND DOCKER/d' /etc/ufw/after6.rules
976+ diff /etc/ufw/after6.rules~2009-02-14-0731 /etc/ufw/after6.rules
977+
978+ # Expect no docker service rm call
979+ rm -v /usr/local/bin/ufw-docker
980+ rm -v /usr/local/man/man8/ufw-docker.8
981+ }
982+
983+ test-ufw-docker--uninstall-missing-files () {
984+ setup-ufw-docker--uninstall
985+ @mockfalse [ -f /usr/local/bin/ufw-docker ] # Binary missing
986+ @mockfalse [ -f /usr/local/man/man8/ufw-docker.8 ] # Man page missing
987+
988+ load-ufw-docker-function ufw-docker--uninstall
989+
990+ ufw-docker--uninstall
991+ }
992+ test-ufw-docker--uninstall-missing-files-assert () {
993+ cp -v /etc/ufw/after.rules /etc/ufw/after.rules~2009-02-14-0731
994+ sed -i -e ' /^# BEGIN UFW AND DOCKER/,/^# END UFW AND DOCKER/d' /etc/ufw/after.rules
995+ diff /etc/ufw/after.rules~2009-02-14-0731 /etc/ufw/after.rules
996+
997+ cp -v /etc/ufw/after6.rules /etc/ufw/after6.rules~2009-02-14-0731
998+ sed -i -e ' /^# BEGIN UFW AND DOCKER/,/^# END UFW AND DOCKER/d' /etc/ufw/after6.rules
999+ diff /etc/ufw/after6.rules~2009-02-14-0731 /etc/ufw/after6.rules
1000+
1001+ docker service rm ufw-docker-agent
1002+
1003+ # Expect no rm calls for missing files
9421004}
0 commit comments