From d1c9ee4353dcd15619073507d5b98a1db8008c20 Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan@rename-it.nl>
Date: Sun, 3 Jan 2010 23:25:25 +0100
Subject: [PATCH] Spamtest extension: added yesno-type header matching tests to
 the testsuite.

---
 .../extensions/spamvirustest/spamtest.svtest  | 51 +++++++++++++++++--
 1 file changed, 48 insertions(+), 3 deletions(-)

diff --git a/tests/extensions/spamvirustest/spamtest.svtest b/tests/extensions/spamvirustest/spamtest.svtest
index 167d44903..9599c9c21 100644
--- a/tests/extensions/spamvirustest/spamtest.svtest
+++ b/tests/extensions/spamvirustest/spamtest.svtest
@@ -129,7 +129,7 @@ test "Value: past-max" {
 }
 
 /*
- * Value
+ * Strlen
  */
 
 test_set "message" text:
@@ -202,7 +202,7 @@ test "Strlen: high" {
 test_config :set "sieve_spamtest_status_header" "X-Spam-Status3";
 test_config :reload "spamtest";
 
-test "Value: max" {
+test "Strlen: max" {
 	if spamtest :is "0" {
 		test_fail "spamtest not configured or test failed";
 	}
@@ -216,7 +216,52 @@ test "Value: max" {
 test_config :set "sieve_spamtest_status_header" "X-Spam-Status4";
 test_config :reload "spamtest";
 
-test "Value: past-max" {
+test "Strlen: past-max" {
+	if spamtest :is "0" {
+		test_fail "spamtest not configured or test failed";
+	}
+
+	if not spamtest :value "eq" "10" {
+		if spamtest :matches "*" { }
+		test_fail "wrong spam value produced: ${1}";
+	}
+}
+
+/*
+ * Yes/No
+ */
+
+test_set "message" text:
+From: legitimate@example.com
+To: victim@dovecot.org
+Subject: Not spammish
+X-Spam-Verdict: Not Spam
+X-Spam-Verdict1: Spam
+Test!
+.
+;
+
+test_config :set "sieve_spamtest_status_header" "X-Spam-Verdict";
+test_config :set "sieve_spamtest_max_value" "Spam";
+test_config :set "sieve_spamtest_status_type" "yesno";
+test_config :unset "sieve_spamtest_max_header";
+test_config :reload "spamtest";
+
+test "Yes/No: Not Spam" {
+	if spamtest :is "0" {
+		test_fail "spamtest not configured or test failed";
+	}
+
+	if not spamtest :value "eq" "1" {
+		if spamtest :matches "*" { }
+		test_fail "wrong spam value produced: ${1}";
+	}
+}
+
+test_config :set "sieve_spamtest_status_header" "X-Spam-Verdict1";
+test_config :reload "spamtest";
+
+test "Yes/No: Spam" {
 	if spamtest :is "0" {
 		test_fail "spamtest not configured or test failed";
 	}
-- 
GitLab