summaryrefslogtreecommitdiffstats
path: root/pigeonhole/tests/extensions/editheader/alternating.svtest
diff options
context:
space:
mode:
Diffstat (limited to 'pigeonhole/tests/extensions/editheader/alternating.svtest')
-rw-r--r--pigeonhole/tests/extensions/editheader/alternating.svtest181
1 files changed, 181 insertions, 0 deletions
diff --git a/pigeonhole/tests/extensions/editheader/alternating.svtest b/pigeonhole/tests/extensions/editheader/alternating.svtest
new file mode 100644
index 0000000..44d459c
--- /dev/null
+++ b/pigeonhole/tests/extensions/editheader/alternating.svtest
@@ -0,0 +1,181 @@
+require "vnd.dovecot.testsuite";
+require "variables";
+require "fileinto";
+require "mailbox";
+require "body";
+
+require "editheader";
+
+set "message" text:
+From: stephan@example.com
+To: timo@example.com
+Subject: Frop!
+
+Frop!
+
+.
+;
+
+
+test_set "message" "${message}";
+test "Alternating - add; delete" {
+ addheader "X-Some-Header" "Header content";
+
+ if not exists "x-some-header" {
+ test_fail "header not added";
+ }
+
+ if not header :is "x-some-header" "Header content" {
+ test_fail "wrong content added";
+ }
+
+ redirect "frop@example.com";
+
+ deleteheader "X-Some-Header";
+
+ if exists "x-some-header" {
+ test_fail "header not deleted";
+ }
+
+ fileinto :create "folder1";
+
+ if not test_result_execute {
+ test_fail "failed to execute result";
+ }
+
+ /* redirected message */
+
+ if not test_message :smtp 0 {
+ test_fail "message not redirected";
+ }
+
+ if not exists "x-some-header" {
+ test_fail "added header not in redirected mail";
+ }
+
+ if not header :is "x-some-header" "Header content" {
+ test_fail "wrong content in redirected mail ";
+ }
+
+ /* stored message message */
+
+ if not test_message :folder "folder1" 0 {
+ test_fail "message not stored";
+ }
+
+ if exists "x-some-header" {
+ test_fail "added header still present stored mail";
+ }
+}
+
+test_result_reset;
+
+test_set "message" "${message}";
+test "Alternating - delete; add" {
+ deleteheader "Subject";
+
+ if exists "subject" {
+ test_fail "header not deleted";
+ }
+
+ redirect "frop@example.com";
+
+ addheader "Subject" "Friep!";
+
+ if not exists "subject" {
+ test_fail "header not added";
+ }
+
+ if not header :is "subject" "Friep!" {
+ test_fail "wrong content added";
+ }
+
+ fileinto :create "folder2";
+
+ if not test_result_execute {
+ test_fail "failed to execute result";
+ }
+
+ /* redirected message */
+
+ if not test_message :smtp 0 {
+ test_fail "message not redirected";
+ }
+
+ if exists "subject" {
+ test_fail "deleted header still present redirected mail";
+ }
+
+ /* stored message message */
+
+ if not test_message :folder "folder2" 0 {
+ test_fail "message not stored";
+ }
+
+ if not exists "subject" {
+ test_fail "added header not in stored mail";
+ }
+
+ if not header :is "subject" "Friep!" {
+ test_fail "wrong content in redirected mail ";
+ }
+}
+
+test_result_reset;
+
+test_set "message" "${message}";
+test "Alternating - add :last; delete any" {
+ addheader :last "X-Some-Header" "Header content";
+
+ if not exists "x-some-header" {
+ test_fail "header not added";
+ }
+
+ if not header :is "x-some-header" "Header content" {
+ test_fail "wrong content added";
+ }
+
+ redirect "frop@example.com";
+
+ deleteheader "X-Some-Other-Header";
+
+ if not exists "x-some-header" {
+ test_fail "header somehow deleted";
+ }
+
+ fileinto :create "folder3";
+
+ if not test_result_execute {
+ test_fail "failed to execute result";
+ }
+
+ /* redirected message */
+
+ if not test_message :smtp 0 {
+ test_fail "message not redirected";
+ }
+
+ if not exists "x-some-header" {
+ test_fail "added header not in redirected mail";
+ }
+
+ if not header :is "x-some-header" "Header content" {
+ test_fail "wrong content in redirected mail ";
+ }
+
+ /* stored message message */
+
+ if not test_message :folder "folder3" 0 {
+ test_fail "message not stored";
+ }
+
+ if not exists "x-some-header" {
+ test_fail "added header lost in stored mail";
+ }
+
+ if not header :is "x-some-header" "Header content" {
+ test_fail "wrong content in stored mail ";
+ }
+
+}
+