diff --git a/tests/extensions/imap4flags/flagstore.svtest b/tests/extensions/imap4flags/flagstore.svtest index 127d56015bc32c65b3494ff56f153d8e78fc1223..9ede53ea0fa051861b5282a414a2f0c05b2a993e 100644 --- a/tests/extensions/imap4flags/flagstore.svtest +++ b/tests/extensions/imap4flags/flagstore.svtest @@ -14,7 +14,7 @@ Test message. . ; -test "Before" { +test "Basic" { if hasflag :comparator "i;ascii-numeric" :count "ge" "1" { test_fail "some flags or keywords are already set"; } @@ -74,10 +74,73 @@ test "Before" { test_message :folder "Uninteresting" 2; if not hasflag "\\flagged" { - test_fail "flags not stored for second message"; + test_fail "flags not stored for third message"; + } + + if not hasflag :comparator "i;ascii-numeric" :count "eq" "1" { + test_fail "invalid number of flags set for third message"; + } +} + +test_result_reset; +test_set "message" text: +From: Henry von Flockenstoffen <henry@example.com> +To: Dieter von Ausburg <dieter@example.com> +Subject: Test message. + +Test message. +. +; + +test "Flag changes between stores" { + if hasflag :comparator "i;ascii-numeric" :count "ge" "1" { + test_fail "some flags or keywords are already set"; + } + + setflag "$label1 \\answered"; + fileinto :create "FolderA"; + + setflag "$label2"; + fileinto :create "FolderB"; + + fileinto :create :flags "\\seen \\draft \\flagged" "FolderC"; + + if not test_result_execute { + test_fail "failed to execute first result"; + } + + test_result_reset; + test_message :folder "FolderA" 0; + + if not hasflag "\\answered $label1" { + test_fail "flags not stored for first message"; + } + + if not hasflag :comparator "i;ascii-numeric" :count "eq" "2" { + test_fail "invalid number of flags set for first message"; + } + + test_result_reset; + test_message :folder "FolderB" 0; + + if not hasflag "$label2" { + test_fail "flag not stored for second message"; } if not hasflag :comparator "i;ascii-numeric" :count "eq" "1" { + test_fail "invalid number of flags set for second message"; + } + + test_result_reset; + test_message :folder "FolderC" 0; + + if not hasflag "\\seen \\flagged \\draft" { + test_fail "flags not stored for third message"; + } + + if not hasflag :comparator "i;ascii-numeric" :count "eq" "3" { test_fail "invalid number of flags set for third message"; } } + +