From 58fb9103c68e1e58e5b162b1d588fd7a651d502d Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan@rename-it.nl> Date: Sun, 18 Oct 2009 16:44:23 +0200 Subject: [PATCH] Testsuite: added multiscript flag tests for the imap4flags extension. --- src/testsuite/cmd-test-message.c | 3 +- src/testsuite/testsuite-script.c | 5 +- .../extensions/imap4flags/multiscript.svtest | 46 +++++++++++++++++++ .../imap4flags/multiscript/fileinto.sieve | 4 ++ .../imap4flags/multiscript/setflag.sieve | 3 ++ 5 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 tests/extensions/imap4flags/multiscript/fileinto.sieve create mode 100644 tests/extensions/imap4flags/multiscript/setflag.sieve diff --git a/src/testsuite/cmd-test-message.c b/src/testsuite/cmd-test-message.c index 4a4d804d4..735f6a6a3 100644 --- a/src/testsuite/cmd-test-message.c +++ b/src/testsuite/cmd-test-message.c @@ -390,7 +390,8 @@ static int cmd_test_message_mailbox_operation_execute } if ( !result ) - testsuite_test_failf("no outgoing SMTP message with index %d", msg_index); + testsuite_test_failf("no message in folder '%s' with index %d", + str_c(folder), msg_index); return SIEVE_EXEC_OK; } diff --git a/src/testsuite/testsuite-script.c b/src/testsuite/testsuite-script.c index f234d2f99..3a0ed6df5 100644 --- a/src/testsuite/testsuite-script.c +++ b/src/testsuite/testsuite-script.c @@ -93,7 +93,6 @@ bool testsuite_script_run(const struct sieve_runtime_env *renv) /* Compose script execution environment */ memset(&scriptenv, 0, sizeof(scriptenv)); scriptenv.default_mailbox = "INBOX"; - scriptenv.namespaces = NULL; scriptenv.username = "user"; scriptenv.hostname = "host.example.com"; scriptenv.postmaster_address = "postmaster@example.com"; @@ -101,6 +100,8 @@ bool testsuite_script_run(const struct sieve_runtime_env *renv) scriptenv.smtp_close = NULL; scriptenv.duplicate_mark = NULL; scriptenv.duplicate_check = NULL; + scriptenv.namespaces = renv->scriptenv->namespaces; + scriptenv.trace_stream = renv->scriptenv->trace_stream; result = testsuite_result_get(); @@ -162,6 +163,8 @@ bool testsuite_script_multiscript scriptenv.smtp_close = NULL; scriptenv.duplicate_mark = NULL; scriptenv.duplicate_check = NULL; + scriptenv.namespaces = renv->scriptenv->namespaces; + scriptenv.trace_stream = renv->scriptenv->trace_stream; result = testsuite_result_get(); diff --git a/tests/extensions/imap4flags/multiscript.svtest b/tests/extensions/imap4flags/multiscript.svtest index 0a0418cb1..98f5a2ac2 100644 --- a/tests/extensions/imap4flags/multiscript.svtest +++ b/tests/extensions/imap4flags/multiscript.svtest @@ -1,4 +1,9 @@ require "vnd.dovecot.testsuite"; +require "imap4flags"; +require "relational"; +require "comparator-i;ascii-numeric"; +require "mailbox"; +require "fileinto"; test "Segfault Trigger 1" { @@ -11,3 +16,44 @@ test "Segfault Trigger 1" { } } +test_set "message" text: +From: Henry von Flockenstoffen <henry@example.com> +To: Dieter von Ausburg <dieter@example.com> +Subject: Test message. + +Test message. +. +; + +test "Internal Flags" { + if hasflag :comparator "i;ascii-numeric" :count "ge" "1" { + test_fail "some flags or keywords are already set"; + } + + if not test_multiscript [ + "multiscript/setflag.sieve", + "multiscript/fileinto.sieve"] + { + test_fail "failed multiscript execution"; + } + + if not test_result_execute { + test_fail "failed to execute first result"; + } + + test_result_reset; + test_message :folder "folder" 0; + + if not hasflag "\\answered" { + test_fail "\\answered flag not stored for message"; + } + + if not hasflag "$label1" { + test_fail "$label1 keyword not stored for message"; + } + + if not hasflag :comparator "i;ascii-numeric" :count "eq" "2" { + test_fail "invalid number of flags set for message"; + } +} + diff --git a/tests/extensions/imap4flags/multiscript/fileinto.sieve b/tests/extensions/imap4flags/multiscript/fileinto.sieve new file mode 100644 index 000000000..94892a5c8 --- /dev/null +++ b/tests/extensions/imap4flags/multiscript/fileinto.sieve @@ -0,0 +1,4 @@ +require "fileinto"; +require "mailbox"; + +fileinto :create "folder"; diff --git a/tests/extensions/imap4flags/multiscript/setflag.sieve b/tests/extensions/imap4flags/multiscript/setflag.sieve new file mode 100644 index 000000000..c992d1989 --- /dev/null +++ b/tests/extensions/imap4flags/multiscript/setflag.sieve @@ -0,0 +1,3 @@ +require "imap4flags"; + +setflag "$label1 \\answered"; -- GitLab