From d03211b97daf8b8090aa6b45e075e72d15f852b4 Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan@rename-it.nl> Date: Sun, 2 Aug 2009 11:00:24 +0200 Subject: [PATCH] Imap4flags: added flag storage tests using mailbox loopback. --- Makefile.am | 1 + TODO | 1 - tests/extensions/imap4flags/flagstore.svtest | 83 ++++++++++++++++++++ 3 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 tests/extensions/imap4flags/flagstore.svtest diff --git a/Makefile.am b/Makefile.am index 6c1b79827..14312cb79 100644 --- a/Makefile.am +++ b/Makefile.am @@ -64,6 +64,7 @@ test_cases = \ tests/extensions/imap4flags/hasflag.svtest \ tests/extensions/imap4flags/errors.svtest \ tests/extensions/imap4flags/execute.svtest \ + tests/extensions/imap4flags/flagstore.svtest \ tests/extensions/body/basic.svtest \ tests/extensions/body/match-values.svtest \ tests/extensions/regex/basic.svtest \ diff --git a/TODO b/TODO index 9e793c3d5..590af2b69 100644 --- a/TODO +++ b/TODO @@ -6,7 +6,6 @@ Current activities: - Write manual page * Testsuite: - add support for testing binary load/save - - add execution tests for imap4flags extensions. Next (in order of descending priority/precedence): diff --git a/tests/extensions/imap4flags/flagstore.svtest b/tests/extensions/imap4flags/flagstore.svtest new file mode 100644 index 000000000..127d56015 --- /dev/null +++ b/tests/extensions/imap4flags/flagstore.svtest @@ -0,0 +1,83 @@ +require "vnd.dovecot.testsuite"; +require "fileinto"; +require "imap4flags"; +require "relational"; +require "comparator-i;ascii-numeric"; +require "mailbox"; + +test_set "message" text: +From: Henry von Flockenstoffen <henry@example.com> +To: Dieter von Ausburg <dieter@example.com> +Subject: Test message. + +Test message. +. +; + +test "Before" { + if hasflag :comparator "i;ascii-numeric" :count "ge" "1" { + test_fail "some flags or keywords are already set"; + } + + setflag "$label1 \\answered"; + + fileinto :create "Uninteresting"; + + if not test_result_execute { + test_fail "failed to execute first result"; + } + + test_result_reset; + + setflag "\\draft \\seen Junk"; + + fileinto "Uninteresting"; + + if not test_result_execute { + test_fail "failed to execute second result"; + } + + test_result_reset; + + fileinto :flags "\\flagged" "Uninteresting"; + + if not test_result_execute { + test_fail "failed to execute third result"; + } + + test_result_reset; + + test_message :folder "Uninteresting" 0; + + if not hasflag "$label1 \\answered" { + 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 "Uninteresting" 1; + + if not hasflag "\\draft \\seen Junk" { + test_fail "flags not stored for second message"; + } + + if not hasflag :comparator "i;ascii-numeric" :count "eq" "3" { + test_fail "invalid number of flags set for second message"; + } + + test_result_reset; + + test_message :folder "Uninteresting" 2; + + if not hasflag "\\flagged" { + test_fail "flags not stored for second message"; + } + + if not hasflag :comparator "i;ascii-numeric" :count "eq" "1" { + test_fail "invalid number of flags set for third message"; + } +} -- GitLab