From ebefaf9f7fff259fcee7117ce60d8f45667f9674 Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan@rename-it.nl> Date: Sun, 16 Aug 2009 01:34:09 +0200 Subject: [PATCH] Testsuite: added action execution test for the include extension with stored binaries. --- Makefile.am | 1 + src/testsuite/testsuite-script.c | 1 + src/testsuite/testsuite.c | 2 +- tests/extensions/include/execute.svtest | 42 +++++++++++++++++++ .../include/execute/actions-fileinto.sieve | 5 +++ .../execute/included/actions-fileinto1.sieve | 3 ++ .../execute/included/actions-fileinto2.sieve | 4 ++ .../execute/included/actions-fileinto3.sieve | 3 ++ 8 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 tests/extensions/include/execute.svtest create mode 100644 tests/extensions/include/execute/actions-fileinto.sieve create mode 100644 tests/extensions/include/execute/included/actions-fileinto1.sieve create mode 100644 tests/extensions/include/execute/included/actions-fileinto2.sieve create mode 100644 tests/extensions/include/execute/included/actions-fileinto3.sieve diff --git a/Makefile.am b/Makefile.am index 20d85a6df..b20be0ecf 100644 --- a/Makefile.am +++ b/Makefile.am @@ -70,6 +70,7 @@ test_cases = \ tests/extensions/include/once.svtest \ tests/extensions/include/twice.svtest \ tests/extensions/include/rfc.svtest \ + tests/extensions/include/execute.svtest \ tests/extensions/imap4flags/basic.svtest \ tests/extensions/imap4flags/hasflag.svtest \ tests/extensions/imap4flags/errors.svtest \ diff --git a/src/testsuite/testsuite-script.c b/src/testsuite/testsuite-script.c index 49456a503..955bf19bf 100644 --- a/src/testsuite/testsuite-script.c +++ b/src/testsuite/testsuite-script.c @@ -51,6 +51,7 @@ bool testsuite_script_compile(const char *script_path) /* Currently needed for include (FIXME) */ env_put(t_strconcat("SIEVE_DIR=", sieve_dir, "included", NULL)); env_put(t_strconcat("SIEVE_GLOBAL_DIR=", sieve_dir, "included-global", NULL)); + if ( (sbin = sieve_compile(script_path, NULL, testsuite_log_ehandler)) == NULL ) return FALSE; diff --git a/src/testsuite/testsuite.c b/src/testsuite/testsuite.c index 869dfff0c..75fcf858d 100644 --- a/src/testsuite/testsuite.c +++ b/src/testsuite/testsuite.c @@ -189,7 +189,7 @@ int main(int argc, char **argv) /* Currently needed for include (FIXME) */ env_put(t_strconcat("SIEVE_DIR=", sieve_dir, "included", NULL)); env_put(t_strconcat("SIEVE_GLOBAL_DIR=", sieve_dir, "included-global", NULL)); - + /* Compile sieve script */ if ( (sbin = sieve_tool_script_compile(scriptfile, NULL)) != NULL ) { struct sieve_error_handler *ehandler; diff --git a/tests/extensions/include/execute.svtest b/tests/extensions/include/execute.svtest new file mode 100644 index 000000000..54f834abe --- /dev/null +++ b/tests/extensions/include/execute.svtest @@ -0,0 +1,42 @@ +require "vnd.dovecot.testsuite"; + +test_set "message" text: +From: idiot@example.com +To: idiot@rename-it.nl +Subject: Frop! + +Frop. +. +; + +test "Actions Fileinto" { + test_mailbox :create "aaaa"; + test_mailbox :create "bbbb"; + + if not test_script_compile "execute/actions-fileinto.sieve" { + test_fail "failed to compile sieve script"; + } + + test_binary :save "actions-fileinto"; + test_binary :load "actions-fileinto"; + + if not test_script_run { + test_fail "failed to execute sieve script"; + } + + if not test_result_execute { + test_fail "failed to execute result"; + } + + test_message :folder "aaaa" 0; + + if not header "subject" "Frop!" { + test_fail "fileinto \"aaaa\" not executed."; + } + + test_message :folder "aaaa" 0; + + if not header "subject" "Frop!" { + test_fail "fileinto \"bbbb\" not executed."; + } +} diff --git a/tests/extensions/include/execute/actions-fileinto.sieve b/tests/extensions/include/execute/actions-fileinto.sieve new file mode 100644 index 000000000..b0b815757 --- /dev/null +++ b/tests/extensions/include/execute/actions-fileinto.sieve @@ -0,0 +1,5 @@ +require "include"; + +include "actions-fileinto1"; +include "actions-fileinto2"; +include "actions-fileinto3"; diff --git a/tests/extensions/include/execute/included/actions-fileinto1.sieve b/tests/extensions/include/execute/included/actions-fileinto1.sieve new file mode 100644 index 000000000..d4c5031f8 --- /dev/null +++ b/tests/extensions/include/execute/included/actions-fileinto1.sieve @@ -0,0 +1,3 @@ +require "fileinto"; + +fileinto "aaaa"; diff --git a/tests/extensions/include/execute/included/actions-fileinto2.sieve b/tests/extensions/include/execute/included/actions-fileinto2.sieve new file mode 100644 index 000000000..f73da0d1e --- /dev/null +++ b/tests/extensions/include/execute/included/actions-fileinto2.sieve @@ -0,0 +1,4 @@ +require "fileinto"; + +fileinto "bbbb"; + diff --git a/tests/extensions/include/execute/included/actions-fileinto3.sieve b/tests/extensions/include/execute/included/actions-fileinto3.sieve new file mode 100644 index 000000000..d4c5031f8 --- /dev/null +++ b/tests/extensions/include/execute/included/actions-fileinto3.sieve @@ -0,0 +1,3 @@ +require "fileinto"; + +fileinto "aaaa"; -- GitLab