summaryrefslogtreecommitdiffstats
path: root/pigeonhole/tests/extensions/vacation/smtp.svtest
diff options
context:
space:
mode:
Diffstat (limited to 'pigeonhole/tests/extensions/vacation/smtp.svtest')
-rw-r--r--pigeonhole/tests/extensions/vacation/smtp.svtest199
1 files changed, 199 insertions, 0 deletions
diff --git a/pigeonhole/tests/extensions/vacation/smtp.svtest b/pigeonhole/tests/extensions/vacation/smtp.svtest
new file mode 100644
index 0000000..40dbd89
--- /dev/null
+++ b/pigeonhole/tests/extensions/vacation/smtp.svtest
@@ -0,0 +1,199 @@
+require "vnd.dovecot.testsuite";
+require "envelope";
+require "vacation";
+require "variables";
+
+test_set "message" text:
+From: stephan@example.org
+To: tss@example.net
+Subject: Frop!
+
+Frop!
+.
+;
+
+test_set "envelope.from" "sirius@example.org";
+test_set "envelope.to" "timo@example.net";
+
+test "Basic" {
+ vacation :addresses "tss@example.net" :from "Timo Sirainen <sirainen@example.net>" "I am gone";
+
+ if not test_result_execute {
+ test_fail "failed to execute vacation";
+ }
+
+ test_message :smtp 0;
+
+ if not address :is "to" "sirius@example.org" {
+ test_fail "to address incorrect";
+ }
+
+ if not address :is "from" "sirainen@example.net" {
+ test_fail "from address incorrect";
+ }
+
+ if not envelope :is "to" "sirius@example.org" {
+ test_fail "envelope recipient incorrect";
+ }
+
+ if not envelope :is "from" "" {
+ test_fail "envelope sender not null";
+ }
+}
+
+test_result_reset;
+test_set "envelope.from" "<>";
+
+test "Null Sender" {
+ vacation :addresses "tss@example.net" "I am gone";
+
+ if not test_result_execute {
+ test_fail "failed to execute vacation";
+ }
+
+ if test_message :smtp 0 {
+ test_fail "reject sent message to NULL sender";
+ }
+}
+
+test_result_reset;
+
+test_set "message" text:
+From: stephan@example.org
+To: timo@example.net
+Cc: stephan@friep.example.com
+Subject: Frop!
+
+Frop!
+.
+;
+
+test_set "envelope.from" "sirius@example.org";
+test_set "envelope.to" "timo@example.net";
+
+test "Envelope.to == To" {
+ vacation "I am gone";
+
+ if not test_result_execute {
+ test_fail "failed to execute vacation";
+ }
+
+ test_message :smtp 0;
+
+ if not address :is "from" "timo@example.net" {
+ test_fail "from address incorrect";
+ }
+
+ if not envelope :is "from" "" {
+ test_fail "envelope sender not null";
+ }
+}
+
+test_result_reset;
+
+test_set "message" text:
+From: stephan@example.org
+To: tss@example.net
+Cc: stephan@friep.example.com
+Subject: Frop!
+
+Frop!
+.
+;
+
+test_set "envelope.from" "sirius@example.org";
+test_set "envelope.to" "timo@example.net";
+
+test "Envelope.to != To" {
+ vacation :addresses "tss@example.net" "I am gone";
+
+ if not test_result_execute {
+ test_fail "failed to execute vacation";
+ }
+
+ test_message :smtp 0;
+
+ if not address :is "from" "tss@example.net" {
+ test_fail "from address incorrect";
+ }
+
+ if not envelope :is "from" "" {
+ test_fail "envelope sender not null";
+ }
+}
+
+test_result_reset;
+
+test_set "message" text:
+From: stephan@example.org
+To: tss@example.net
+Cc: colleague@example.net
+Subject: Frop!
+
+Frop!
+.
+;
+
+test_set "envelope.from" "sirius@example.org";
+test_set "envelope.to" "colleague@example.net";
+
+test "Cc" {
+ vacation "I am gone";
+
+ if not test_result_execute {
+ test_fail "failed to execute vacation";
+ }
+
+ test_message :smtp 0;
+
+ if not address :is "from" "colleague@example.net" {
+ if address :matches "from" "*" { }
+ test_fail "from address incorrect: ${1}";
+ }
+
+ if not envelope :is "from" "" {
+ test_fail "envelope sender not null";
+ }
+}
+
+test_result_reset;
+
+test_set "message" text:
+From: stephan@example.org
+Subject: No subject of discussion
+To: nicëøôçêè—öxample.org
+
+Frop
+.
+;
+
+test "Bad recipient address (from message)" {
+ vacation :subject "Tulips" "I am not in today!";
+
+ if not test_result_execute {
+ test_fail "execution of result failed";
+ }
+
+}
+
+test_result_reset;
+
+test_set "message" text:
+From: stephan@example.org
+Subject: No subject of discussion
+To: tss@example.net
+
+Frop
+.
+;
+
+test_set "envelope.to" "nicëøôçêè—öxample.org";
+
+test "Bad recipient address (from envelope)" {
+ vacation :subject "Tulips" "I am not in today!";
+
+ if not test_result_execute {
+ test_fail "execution of result failed";
+ }
+
+}