From 783fdcaeb4c7480d43cd2663491fa21f92aa1de7 Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan@rename-it.nl> Date: Thu, 28 Feb 2013 23:37:31 +0100 Subject: [PATCH] Sieve: editheader: fixed bug in header cloning for snapshot. Forgot to increment count for the clone. --- src/lib-sieve/edit-mail.c | 1 + .../extensions/editheader/alternating.svtest | 59 +++++++++++++++++++ 2 files changed, 60 insertions(+) diff --git a/src/lib-sieve/edit-mail.c b/src/lib-sieve/edit-mail.c index 0cbaaf0d2..986756f45 100644 --- a/src/lib-sieve/edit-mail.c +++ b/src/lib-sieve/edit-mail.c @@ -321,6 +321,7 @@ struct edit_mail *edit_mail_snapshot(struct edit_mail *edmail) (&edmail_new->header_fields_head, &edmail_new->header_fields_tail, field_idx_new); + field_idx_new->header->count++; if ( field_idx->header->first == field_idx ) field_idx_new->header->first = field_idx_new; if ( field_idx->header->last == field_idx ) diff --git a/tests/extensions/editheader/alternating.svtest b/tests/extensions/editheader/alternating.svtest index cef84c486..44d459c71 100644 --- a/tests/extensions/editheader/alternating.svtest +++ b/tests/extensions/editheader/alternating.svtest @@ -120,3 +120,62 @@ test "Alternating - delete; add" { 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 "; + } + +} + -- GitLab