From fe47287aa7acb53a40420cef866b8867ee440e15 Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan@rename-it.nl> Date: Sat, 13 Sep 2008 13:12:31 +0200 Subject: [PATCH] Testsuite: added final existing error tests. --- sieve/errors/address-errors.sieve | 58 ----------------- sieve/errors/address-part-errors.sieve | 10 --- sieve/errors/encoded-character.sieve | 5 -- sieve/errors/envelope-errors.sieve | 13 ---- sieve/errors/header-errors.sieve | 44 ------------- sieve/errors/if-errors.sieve | 29 --------- sieve/errors/interesting.sieve | 24 ------- sieve/errors/keep-errors.sieve | 16 ----- sieve/errors/parse-errors.sieve | 65 ------------------- sieve/errors/require-errors.sieve | 20 ------ sieve/errors/size-errors.sieve | 26 -------- sieve/errors/stop-errors.sieve | 16 ----- sieve/errors/tag-errors.sieve | 41 ------------ tests/compile/errors.svtest | 29 +++++++++ .../compile/errors/out-address.sieve | 0 tests/compile/errors/tag.sieve | 16 +++++ 16 files changed, 45 insertions(+), 367 deletions(-) delete mode 100644 sieve/errors/address-errors.sieve delete mode 100644 sieve/errors/address-part-errors.sieve delete mode 100644 sieve/errors/encoded-character.sieve delete mode 100644 sieve/errors/envelope-errors.sieve delete mode 100644 sieve/errors/header-errors.sieve delete mode 100644 sieve/errors/if-errors.sieve delete mode 100644 sieve/errors/interesting.sieve delete mode 100644 sieve/errors/keep-errors.sieve delete mode 100644 sieve/errors/parse-errors.sieve delete mode 100644 sieve/errors/require-errors.sieve delete mode 100644 sieve/errors/size-errors.sieve delete mode 100644 sieve/errors/stop-errors.sieve delete mode 100644 sieve/errors/tag-errors.sieve rename sieve/errors/out-address-errors.sieve => tests/compile/errors/out-address.sieve (100%) create mode 100644 tests/compile/errors/tag.sieve diff --git a/sieve/errors/address-errors.sieve b/sieve/errors/address-errors.sieve deleted file mode 100644 index fb4726f1d..000000000 --- a/sieve/errors/address-errors.sieve +++ /dev/null @@ -1,58 +0,0 @@ -require "comparator-i;ascii-numeric"; - -if address :isnot :comparator "i;ascii-casemap" :localpart "From" "nico" { - discard; -} - -if address :is :comparator 45 :localpart "From" "nico" { - discard; -} - -if true :comparator "i;ascii-numeric" { - keep; -} - -if address :is :comparator "i;ascii-numeric" :localpart "From" 45 { - discard; -} - -if address :is :comparator "i;ascii-numeric" :localpart 45 "nico" { - discard; -} - -if address :is :comparator "i;ascii-numeric" :localpart "From" :tag { - discard; -} - -if address :is :comparator "i;ascii-numeric" :localpart "From" { - discard; -} - -if address :is :comparator "i;ascii-numeric" :localpart { - discard; -} - -if address :localpart :is :comparator "i;ascii-casemap" "from" ["frop", "frop"] { - discard; -} - -if address :localpart :hufter :is :comparator "i;ascii-casemap" "frop" ["frop", "frop"] { - discard; -} - -if address :is "frop" "frml" { - keep; -} - -if address :is "reply-to" "frml" { - keep; -} - -if address :is ["to", "frop"] "frml" { - keep; -} - -if address :is ["to", "reply-to"] "frml" { - keep; -} - diff --git a/sieve/errors/address-part-errors.sieve b/sieve/errors/address-part-errors.sieve deleted file mode 100644 index 9a49af08a..000000000 --- a/sieve/errors/address-part-errors.sieve +++ /dev/null @@ -1,10 +0,0 @@ -if address :all :comparator "i;octet" :domain "from" "STEPHAN" { - discard; - - if address :localpart :domain :comparator "i;octet" "from" "drunksnipers.com" { - keep; - } - stop; -} - -keep; diff --git a/sieve/errors/encoded-character.sieve b/sieve/errors/encoded-character.sieve deleted file mode 100644 index f8a7686df..000000000 --- a/sieve/errors/encoded-character.sieve +++ /dev/null @@ -1,5 +0,0 @@ -require "encoded-character"; -require "fileinto"; - -fileinto "INBOX.${unicode:200000}"; -fileinto "INBOX.${Unicode:DF01}"; diff --git a/sieve/errors/envelope-errors.sieve b/sieve/errors/envelope-errors.sieve deleted file mode 100644 index e5b7b1020..000000000 --- a/sieve/errors/envelope-errors.sieve +++ /dev/null @@ -1,13 +0,0 @@ -require "envelope"; - -if envelope :is "to" "frop@rename-it.nl" { -} - -if envelope :is "frop" "frop@rename-it.nl" { -} - -if envelope :is ["to","from"] "frop@rename-it.nl" { -} - -if envelope :is ["to","frop"] "frop@rename-it.nl" { -} diff --git a/sieve/errors/header-errors.sieve b/sieve/errors/header-errors.sieve deleted file mode 100644 index ac6108ba1..000000000 --- a/sieve/errors/header-errors.sieve +++ /dev/null @@ -1,44 +0,0 @@ -require "comparator-i;ascii-numeric"; - -if header :isnot :comparator "i;ascii-casemap" "From" "nico" { - discard; -} - -if header :is :comparator 45 "From" "nico" { - discard; -} - -if header :all :comparator "i;ascii-numeric" { - keep; -} - -if header :is :comparator "i;ascii-numeric" "From" 45 { - discard; -} - -if header :is :comparator "i;ascii-numeric" 45 "nico" { - discard; -} - -if header :is :comparator "i;ascii-numeric" "From" :tag { - discard; -} - -if header :is :comparator "i;ascii-numeric" "From" { - discard; -} - -if header :is :comparator "i;ascii-numeric" { - discard; -} - -if header :is :comparator "i;ascii-casemap" "frop" ["frop", "frop"] { - discard; -} - -if header :hufter :is :comparator "i;ascii-casemap" "frop" ["frop", "frop"] { - discard; -} - -if header "frop" "frop" true { -} diff --git a/sieve/errors/if-errors.sieve b/sieve/errors/if-errors.sieve deleted file mode 100644 index 5aed28b65..000000000 --- a/sieve/errors/if-errors.sieve +++ /dev/null @@ -1,29 +0,0 @@ -if "frop" true; -if true; -if { - keep; -} -if ( false, false, true ) { - keep; -} -if [ "false", "false", "false" ] { - stop; -} -elsi; -elsif true { - keep; -} -elsif true { - keep; -} -if true { - keep; -} else { - stop; -} elsif { - stop; -} -stop; -else { - keep; -} diff --git a/sieve/errors/interesting.sieve b/sieve/errors/interesting.sieve deleted file mode 100644 index 2dd1f35f3..000000000 --- a/sieve/errors/interesting.sieve +++ /dev/null @@ -1,24 +0,0 @@ -require ["fileinto"]; -require ["copy", "relational"]; -require "envelope"; -require "regex"; - -va - -if header :is "To" "Stephan \"Nico\" Bosch <nico@voorbeeld.nl>" { - fileinto "INBOX.stephan"; -} elsif header :matches "To" "*@voorbeeld.nl" { - fileinto "INBOX.vestingbar"; -} - -if envelope :isnot :comperator "i;ascii-casemap" :localpart "From" "nico" { - discard; -} - -if :disabled true { - break; -} - -if header :comparator "i;octet" :is :comparator "i;ascii-casemap" { - frop; -} diff --git a/sieve/errors/keep-errors.sieve b/sieve/errors/keep-errors.sieve deleted file mode 100644 index 8353f14b6..000000000 --- a/sieve/errors/keep-errors.sieve +++ /dev/null @@ -1,16 +0,0 @@ -keep "frop"; -keep 13; -keep [ "frop", "frop" ]; -keep true; -keep true { - keep; -} -keep "frop" true { - keep; -} -keep "frop" :frop true { - keep; -} -keep { - keep; -} diff --git a/sieve/errors/parse-errors.sieve b/sieve/errors/parse-errors.sieve deleted file mode 100644 index 45af2c60e..000000000 --- a/sieve/errors/parse-errors.sieve +++ /dev/null @@ -1,65 +0,0 @@ -# -# Example Sieve Filter -# Declare any optional features or extension used by the script -# -require ["fileinto", "reject"]; - -# -# Reject any large messages (note that the four leading dots get -# "stuffed" to three) -# -if size :over 1M ^^ - { - reject text: -Please do not send me large attachments. -Put your file on a server and send me the URL. -Thank you. -.... Fred -. -; - stop; - } -# - -# Handle messages from known mailing lists -# Move messages from IETF filter discussion list to filter folder -# -if header :is "Sender" "owner-ietf-mta-filters@imc.org" - { - fileinto "filter"; # move to "filter" folder - } -# -# Keep all messages to or from people in my company -# -elsif address :domain :is ["From", "To" "example.com" - { - keep; # keep in "In" folder - } - -# -# Try and catch unsolicited email. If a message is not to me, -# or it contains a subject known to be spam, file it away. -# -elsif anyof (not address :all :contains - ["To", "Cc", "Bcc" "me@example.com", - header :matches "subject" - ["*make*money*fast*", "*university*dipl*mas*"]) - { - # If message header does not contain my address, - # it's from a list. - fileinto "spam"; # move to "spam" folder - } - else - { - # Move all other (non-company) mail to "personal" - # folder. - fileinto "personal"; - } - - -if { - -# 11111 -# dddd - -$$%% diff --git a/sieve/errors/require-errors.sieve b/sieve/errors/require-errors.sieve deleted file mode 100644 index 0fa463186..000000000 --- a/sieve/errors/require-errors.sieve +++ /dev/null @@ -1,20 +0,0 @@ -require "fileinto"; -require; -require "fileinto" "vacation"; -require 45; -require ["frop", "friep", "frml"]; - -require "dovecot.test" true; - -requir; -require "frop"; - -require "dovecot.test" { - keep; -} - -if true { - require "relional"; -} - -require "copy"; diff --git a/sieve/errors/size-errors.sieve b/sieve/errors/size-errors.sieve deleted file mode 100644 index 678dda18a..000000000 --- a/sieve/errors/size-errors.sieve +++ /dev/null @@ -1,26 +0,0 @@ -size; - -if size { -} - -if size 45 { - discard; -} - -if size :over 34K { - stop; -} - -if size :under 34M { - stop; -} - -if size :under :over 34 { - keep; -} - -if size :over :over 45M { - if size 34M :over { - stop; - } -} diff --git a/sieve/errors/stop-errors.sieve b/sieve/errors/stop-errors.sieve deleted file mode 100644 index a2b43d76d..000000000 --- a/sieve/errors/stop-errors.sieve +++ /dev/null @@ -1,16 +0,0 @@ -stop "frop"; -stop 13; -stop [ "frop", "frop" ]; -stop true; -stop true { - stop; -} -stop "frop" true { - stop; -} -stop "frop" :frop true { - stop; -} -stop { - stop; -} diff --git a/sieve/errors/tag-errors.sieve b/sieve/errors/tag-errors.sieve deleted file mode 100644 index 34b2267e7..000000000 --- a/sieve/errors/tag-errors.sieve +++ /dev/null @@ -1,41 +0,0 @@ -require "envelope"; - -if envelope :isnot :comparator "i;ascii-casemap" :localpart "From" "nico" { - discard; -} - -if envelope :is :comparator 45 :localpart "From" "nico" { - discard; -} - -if true :comparator "i;ascii-numeric" { - keep; -} - -if envelope :is :comparator "i;ascii-numeric" :localpart "From" 45 { - discard; -} - -if envelope :is :comparator "i;ascii-numeric" :localpart 45 "nico" { - discard; -} - -if envelope :is :comparator "i;ascii-numeric" :localpart "From" :tag { - discard; -} - -if envelope :is :comparator "i;ascii-numeric" :localpart "From" { - discard; -} - -if envelope :is :comparator "i;ascii-numeric" :localpart { - discard; -} - -if envelope :localpart :is :comparator "i;ascii-casemap" "frop" ["frop", "frop"] { - discard; -} - -if envelope :localpart :hufter :is :comparator "i;ascii-casemap" "frop" ["frop", "frop"] { - discard; -} diff --git a/tests/compile/errors.svtest b/tests/compile/errors.svtest index af68e17e8..024b41f20 100644 --- a/tests/compile/errors.svtest +++ b/tests/compile/errors.svtest @@ -284,3 +284,32 @@ test "Encoded-character errors (FIXME: count only)" { } } +/* + * Outgoing address errors + */ + +test "Outgoing address errors (FIXME: count only)" { + if test_compile "errors/out-address.sieve" { + test_fail "compile should have failed."; + } + + if not test_error :count "eq" :comparator "i;ascii-numeric" "13" { + test_fail "wrong number of errors reported"; + } +} + + +/* + * Tagged argument errors + */ + +test "Tagged argument errors (FIXME: count only)" { + if test_compile "errors/tag.sieve" { + test_fail "compile should have failed."; + } + + if not test_error :count "eq" :comparator "i;ascii-numeric" "3" { + test_fail "wrong number of errors reported"; + } +} + diff --git a/sieve/errors/out-address-errors.sieve b/tests/compile/errors/out-address.sieve similarity index 100% rename from sieve/errors/out-address-errors.sieve rename to tests/compile/errors/out-address.sieve diff --git a/tests/compile/errors/tag.sieve b/tests/compile/errors/tag.sieve new file mode 100644 index 000000000..d285cf9c7 --- /dev/null +++ b/tests/compile/errors/tag.sieve @@ -0,0 +1,16 @@ +/* + * Tag errors + * + * Total errors: 2 (+1 = 3) + */ + +# Unknown tag (1) +if envelope :isnot :comparator "i;ascii-casemap" :localpart "From" "nico" { + discard; +} + +# Spurious tag (1) +if true :comparator "i;ascii-numeric" { + keep; +} + -- GitLab