From a83809186c7151224c6104a1970ab37af3bd17c5 Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan@rename-it.nl> Date: Sat, 11 Apr 2009 00:10:37 +0200 Subject: [PATCH] Include: added various tests to the testsuite. --- Makefile.am | 2 ++ .../included-global/rfc-ex1-spam_tests.sieve | 7 +++++++ .../included/rfc-ex1-always_allow.sieve | 8 +++++++ .../included/rfc-ex1-mailing_lists.sieve | 10 +++++++++ .../include/included/rfc-ex1-spam_tests.sieve | 10 +++++++++ .../included/rfc-ex2-spam_filter_script.sieve | 8 +++++++ .../extensions/include/included/twice-1.sieve | 7 +++++++ .../extensions/include/included/twice-2.sieve | 8 +++++++ .../extensions/include/rfc-ex1-default.sieve | 6 ++++++ .../extensions/include/rfc-ex2-default.sieve | 21 +++++++++++++++++++ tests/extensions/include/rfc.svtest | 13 ++++++++++++ tests/extensions/include/twice.svtest | 20 ++++++++++++++++++ 12 files changed, 120 insertions(+) create mode 100644 tests/extensions/include/included-global/rfc-ex1-spam_tests.sieve create mode 100644 tests/extensions/include/included/rfc-ex1-always_allow.sieve create mode 100644 tests/extensions/include/included/rfc-ex1-mailing_lists.sieve create mode 100644 tests/extensions/include/included/rfc-ex1-spam_tests.sieve create mode 100644 tests/extensions/include/included/rfc-ex2-spam_filter_script.sieve create mode 100644 tests/extensions/include/included/twice-1.sieve create mode 100644 tests/extensions/include/included/twice-2.sieve create mode 100644 tests/extensions/include/rfc-ex1-default.sieve create mode 100644 tests/extensions/include/rfc-ex2-default.sieve create mode 100644 tests/extensions/include/rfc.svtest create mode 100644 tests/extensions/include/twice.svtest diff --git a/Makefile.am b/Makefile.am index 064df0458..02835571f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -56,6 +56,8 @@ test_cases = \ tests/extensions/include/errors.svtest \ tests/extensions/include/variables.svtest \ tests/extensions/include/once.svtest \ + tests/extensions/include/twice.svtest \ + tests/extensions/include/rfc.svtest \ tests/extensions/imap4flags/basic.svtest \ tests/extensions/imap4flags/hasflag.svtest \ tests/extensions/imap4flags/errors.svtest \ diff --git a/tests/extensions/include/included-global/rfc-ex1-spam_tests.sieve b/tests/extensions/include/included-global/rfc-ex1-spam_tests.sieve new file mode 100644 index 000000000..340ceaf8c --- /dev/null +++ b/tests/extensions/include/included-global/rfc-ex1-spam_tests.sieve @@ -0,0 +1,7 @@ +require ["reject"]; + +if anyof (header :contains "Subject" "$$", + header :contains "Subject" "Make money") +{ + reject "Not wanted"; +} diff --git a/tests/extensions/include/included/rfc-ex1-always_allow.sieve b/tests/extensions/include/included/rfc-ex1-always_allow.sieve new file mode 100644 index 000000000..dcb3413af --- /dev/null +++ b/tests/extensions/include/included/rfc-ex1-always_allow.sieve @@ -0,0 +1,8 @@ +if header :is "From" "boss@example.com" +{ + keep; +} +elsif header :is "From" "ceo@example.com" +{ + keep; +} diff --git a/tests/extensions/include/included/rfc-ex1-mailing_lists.sieve b/tests/extensions/include/included/rfc-ex1-mailing_lists.sieve new file mode 100644 index 000000000..de148a194 --- /dev/null +++ b/tests/extensions/include/included/rfc-ex1-mailing_lists.sieve @@ -0,0 +1,10 @@ +require ["fileinto"]; + +if header :is "Sender" "owner-ietf-mta-filters@imc.org" +{ + fileinto "lists.sieve"; +} +elsif header :is "Sender" "owner-ietf-imapext@imc.org" +{ + fileinto "lists.imapext"; +} diff --git a/tests/extensions/include/included/rfc-ex1-spam_tests.sieve b/tests/extensions/include/included/rfc-ex1-spam_tests.sieve new file mode 100644 index 000000000..7916064ef --- /dev/null +++ b/tests/extensions/include/included/rfc-ex1-spam_tests.sieve @@ -0,0 +1,10 @@ +require ["reject"]; + +if header :contains "Subject" "XXXX" +{ + reject "Not wanted"; +} +elsif header :is "From" "money@example.com" +{ + reject "Not wanted"; +} diff --git a/tests/extensions/include/included/rfc-ex2-spam_filter_script.sieve b/tests/extensions/include/included/rfc-ex2-spam_filter_script.sieve new file mode 100644 index 000000000..01ab98463 --- /dev/null +++ b/tests/extensions/include/included/rfc-ex2-spam_filter_script.sieve @@ -0,0 +1,8 @@ +require ["variables", "include"]; +global ["test", "test_mailbox"]; + +if header :contains "Subject" "${test}" +{ + set "test_mailbox" "spam-${test}"; +} + diff --git a/tests/extensions/include/included/twice-1.sieve b/tests/extensions/include/included/twice-1.sieve new file mode 100644 index 000000000..a770a3b33 --- /dev/null +++ b/tests/extensions/include/included/twice-1.sieve @@ -0,0 +1,7 @@ +require "include"; +require "variables"; + +global "result"; + +set "result" "${result} TWO"; + diff --git a/tests/extensions/include/included/twice-2.sieve b/tests/extensions/include/included/twice-2.sieve new file mode 100644 index 000000000..cc907b013 --- /dev/null +++ b/tests/extensions/include/included/twice-2.sieve @@ -0,0 +1,8 @@ +require "include"; +require "variables"; + +global "result"; + +set "result" "${result} THREE"; + +include "twice-1.sieve"; diff --git a/tests/extensions/include/rfc-ex1-default.sieve b/tests/extensions/include/rfc-ex1-default.sieve new file mode 100644 index 000000000..5a8cb524d --- /dev/null +++ b/tests/extensions/include/rfc-ex1-default.sieve @@ -0,0 +1,6 @@ +require ["include"]; + +include :personal "rfc-ex1-always_allow"; +include :global "rfc-ex1-spam_tests"; +include :personal "rfc-ex1-spam_tests"; +include :personal "rfc-ex1-mailing_lists"; diff --git a/tests/extensions/include/rfc-ex2-default.sieve b/tests/extensions/include/rfc-ex2-default.sieve new file mode 100644 index 000000000..7124e03af --- /dev/null +++ b/tests/extensions/include/rfc-ex2-default.sieve @@ -0,0 +1,21 @@ +require ["variables", "include", "relational", "fileinto"]; +global "test"; +global "test-mailbox"; + +# The included script may contain repetitive code that is +# effectively a subroutine that can be factored out. +set "test" "$$"; +include "rfc-ex2-spam_filter_script"; + +set "test" "Make money"; +include "rfc-ex2-spam_filter_script"; + +# Message will be filed according to the test that matched last. +if string :count "eq" "${test_mailbox}" "1" +{ + fileinto "INBOX${test_mailbox}"; + stop; +} + +# If nothing matched, the message is implicitly kept. + diff --git a/tests/extensions/include/rfc.svtest b/tests/extensions/include/rfc.svtest new file mode 100644 index 000000000..00908acd2 --- /dev/null +++ b/tests/extensions/include/rfc.svtest @@ -0,0 +1,13 @@ +require "vnd.dovecot.testsuite"; + +test "RFC example 1" { + if not test_script_compile "rfc-ex1-default.sieve" { + test_fail "failed to compile sieve script"; + } +} + +test "RFC example 2" { + if not test_script_compile "rfc-ex2-default.sieve" { + test_fail "failed to compile sieve script"; + } +} diff --git a/tests/extensions/include/twice.svtest b/tests/extensions/include/twice.svtest new file mode 100644 index 000000000..5cd5da214 --- /dev/null +++ b/tests/extensions/include/twice.svtest @@ -0,0 +1,20 @@ +require "vnd.dovecot.testsuite"; +require "include"; +require "variables"; + +global "result"; + +set "result" "ONE"; + +test "Twice included" { + include "twice-1"; + include "twice-2"; + + if string "${result}" "ONE TWO THREE" { + test_fail "duplicate include failed"; + } + + if not string "${result}" "ONE TWO THREE TWO" { + test_fail "unexpected result: ${result}"; + } +} -- GitLab