From 896a84a75ec3fc935c33d859dbb8b25f40cfc001 Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan@rename-it.nl> Date: Sat, 26 Nov 2011 11:11:43 +0100 Subject: [PATCH] testsuite: editheader extension: added error tests for header field name verification. --- Makefile.am | 1 + tests/extensions/editheader/errors.svtest | 49 +++++++++++++++++++ .../errors/field-name-runtime.sieve | 6 +++ .../editheader/errors/field-name.sieve | 19 +++++++ 4 files changed, 75 insertions(+) create mode 100644 tests/extensions/editheader/errors.svtest create mode 100644 tests/extensions/editheader/errors/field-name-runtime.sieve create mode 100644 tests/extensions/editheader/errors/field-name.sieve diff --git a/Makefile.am b/Makefile.am index 2b53db443..a1e1eb6e7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -130,6 +130,7 @@ test_cases = \ tests/extensions/editheader/deleteheader.svtest \ tests/extensions/editheader/alternating.svtest \ tests/extensions/editheader/utf8.svtest \ + tests/extensions/editheader/errors.svtest \ tests/extensions/vnd.dovecot/debug/execute.svtest \ tests/deprecated/notify/basic.svtest \ tests/deprecated/notify/mailto.svtest \ diff --git a/tests/extensions/editheader/errors.svtest b/tests/extensions/editheader/errors.svtest new file mode 100644 index 000000000..b29cfd4b3 --- /dev/null +++ b/tests/extensions/editheader/errors.svtest @@ -0,0 +1,49 @@ +require "vnd.dovecot.testsuite"; +require "comparator-i;ascii-numeric"; +require "relational"; + +require "editheader"; + +test "Invalid field-name" { + if test_script_compile "errors/field-name.sieve" { + test_fail "compile should have failed"; + } + + if not test_error :count "eq" :comparator "i;ascii-numeric" "5" { + test_fail "wrong number of errors reported"; + } + + if not test_error :index 1 :matches "*field name*X-field:*invalid" { + test_fail "wrong error reported"; + } + + if not test_error :index 2 :matches "*field name*X field*invalid" { + test_fail "wrong error reported"; + } + + if not test_error :index 3 :matches "*field name*X-field:*invalid" { + test_fail "wrong error reported"; + } + + if not test_error :index 4 :matches "*field name*X field*invalid" { + test_fail "wrong error reported"; + } +} + +test "Invalid field-name at runtime " { + if not test_script_compile "errors/field-name-runtime.sieve" { + test_fail "compile failed"; + } + + if test_script_run { + test_fail "run should have failed"; + } + + if not test_error :count "eq" :comparator "i;ascii-numeric" "1" { + test_fail "wrong number of errors reported"; + } + + if not test_error :matches "*field name*X-field:*invalid" { + test_fail "wrong error reported"; + } +} diff --git a/tests/extensions/editheader/errors/field-name-runtime.sieve b/tests/extensions/editheader/errors/field-name-runtime.sieve new file mode 100644 index 000000000..3f344617b --- /dev/null +++ b/tests/extensions/editheader/errors/field-name-runtime.sieve @@ -0,0 +1,6 @@ +require "editheader"; +require "variables"; + +set "header" "X-field:"; + +addheader "${header}" "Frop"; diff --git a/tests/extensions/editheader/errors/field-name.sieve b/tests/extensions/editheader/errors/field-name.sieve new file mode 100644 index 000000000..469bfc86a --- /dev/null +++ b/tests/extensions/editheader/errors/field-name.sieve @@ -0,0 +1,19 @@ +require "editheader"; + +# Ok +addheader "X-field" "Frop"; + +# Invalid ':' +addheader "X-field:" "Frop"; + +# Invalid ' ' +addheader "X field" "Frop"; + +# Ok +deleteheader "X-field"; + +# Invalid ':' +deleteheader "X-field:"; + +# Invalid ' ' +deleteheader "X field"; -- GitLab