require "vnd.stalwart.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 " "I am gone"; if not test_result_execute { test_fail "failed to execute vacation"; } test_set "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"; } test_set "envelope.from" ""; 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_config_set "sieve_user_email" ""; test "Envelope.to == To" { vacation "I am gone"; if not test_result_execute { test_fail "failed to execute vacation"; } test_set "message" :smtp 0; if not address :is "from" "timo@example.net" { test_fail "from address incorrect"; } test_set "envelope.from" ""; 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_config_set "sieve_user_email" "tss@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_set "message" :smtp 0; if not address :is "from" "tss@example.net" { test_fail "from address incorrect"; } test_set "envelope.from" ""; 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_config_set "sieve_user_email" ""; test "Cc" { vacation "I am gone"; if not test_result_execute { test_fail "failed to execute vacation"; } test_set "message" :smtp 0; if not address :is "from" "colleague@example.net" { if address :matches "from" "*" { } test_fail "from address incorrect: ${1}"; } test_set "envelope.from" ""; 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"; } }