diff options
Diffstat (limited to 'pigeonhole/tests/extensions/spamvirustest/virustest.svtest')
-rw-r--r-- | pigeonhole/tests/extensions/spamvirustest/virustest.svtest | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/pigeonhole/tests/extensions/spamvirustest/virustest.svtest b/pigeonhole/tests/extensions/spamvirustest/virustest.svtest new file mode 100644 index 0000000..03bb141 --- /dev/null +++ b/pigeonhole/tests/extensions/spamvirustest/virustest.svtest @@ -0,0 +1,143 @@ +require "vnd.dovecot.testsuite"; +require "virustest"; +require "relational"; +require "comparator-i;ascii-numeric"; +require "variables"; + +/* + * Text + */ + +test_set "message" text: +From: legitimate@example.com +To: victim@dovecot.example.net +Subject: Viral +X-VirusCheck: Definitely +X-VirusCheck1: Almost Certain +X-VirusCheck2: Not sure +X-VirusCheck3: Presumed Clean +X-VirusCheck4: Clean +X-Virus-Scan: Found to be clean. +X-Virus-Scan1: Found to be infected. +X-Virus-Scan2: Found to be harmless. + +Test! +. +; + +test_config_set "sieve_virustest_status_header" "X-VirusCheck"; +test_config_set "sieve_virustest_status_type" "text"; +test_config_set "sieve_virustest_text_value1" "Clean"; +test_config_set "sieve_virustest_text_value2" "Presumed Clean"; +test_config_set "sieve_virustest_text_value3" "Not sure"; +test_config_set "sieve_virustest_text_value4" "Almost Certain"; +test_config_set "sieve_virustest_text_value5" "Definitely"; +test_config_reload :extension "virustest"; + +test "Text: 5" { + if virustest :is "0" { + test_fail "virustest not configured or test failed"; + } + + if not virustest :value "eq" "5" { + if virustest :matches "*" { } + test_fail "wrong virus value produced: ${1}"; + } +} + +test_config_set "sieve_virustest_status_header" "X-VirusCheck1"; +test_config_reload :extension "virustest"; + +test "Text: 4" { + if virustest :is "0" { + test_fail "virustest not configured or test failed"; + } + + if not virustest :value "eq" "4" { + if virustest :matches "*" { } + test_fail "wrong virus value produced: ${1}"; + } +} + +test_config_set "sieve_virustest_status_header" "X-VirusCheck2"; +test_config_reload :extension "virustest"; + +test "Text: 3" { + if virustest :is "0" { + test_fail "virustest not configured or test failed"; + } + + if not virustest :value "eq" "3" { + if virustest :matches "*" { } + test_fail "wrong virus value produced: ${1}"; + } +} + +test_config_set "sieve_virustest_status_header" "X-VirusCheck3"; +test_config_reload :extension "virustest"; + +test "Text: 2" { + if virustest :is "0" { + test_fail "virustest not configured or test failed"; + } + + if not virustest :value "eq" "2" { + if virustest :matches "*" { } + test_fail "wrong virus value produced: ${1}"; + } +} + +test_config_set "sieve_virustest_status_header" "X-VirusCheck4"; +test_config_reload :extension "virustest"; + +test "Text: 1" { + if virustest :is "0" { + test_fail "virustest not configured or test failed"; + } + + if not virustest :value "eq" "1" { + if virustest :matches "*" { } + test_fail "wrong virus value produced: ${1}"; + } +} + +test_config_set "sieve_virustest_status_header" "X-Virus-Scan:Found to be (.+)\."; +test_config_set "sieve_virustest_status_type" "text"; +test_config_set "sieve_virustest_text_value1" "clean"; +test_config_set "sieve_virustest_text_value5" "infected"; +test_config_reload :extension "virustest"; + +test "Text: regex: 1" { + if virustest :is "0" { + test_fail "virustest not configured or test failed"; + } + + if not virustest :value "eq" "1" { + if virustest :matches "*" { } + test_fail "wrong virus value produced: ${1}"; + } +} + +test_config_set "sieve_virustest_status_header" "X-Virus-Scan1:Found to be (.+)\."; +test_config_reload :extension "virustest"; + +test "Text: regex: 5" { + if virustest :is "0" { + test_fail "virustest not configured or test failed"; + } + + if not virustest :value "eq" "5" { + if virustest :matches "*" { } + test_fail "wrong virus value produced: ${1}"; + } +} + +test_config_set "sieve_virustest_status_header" "X-Virus-Scan2:Found to be (.+)\."; +test_config_reload :extension "virustest"; + +test "Text: regex: 0" { + if not virustest :is "0" { + if virustest :matches "*" { } + test_fail "wrong virus value produced: ${1}"; + } +} |