summaryrefslogtreecommitdiffstats
path: root/pigeonhole/tests/extensions/regex/basic.svtest
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 09:51:24 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 09:51:24 +0000
commitf7548d6d28c313cf80e6f3ef89aed16a19815df1 (patch)
treea3f6f2a3f247293bee59ecd28e8cd8ceb6ca064a /pigeonhole/tests/extensions/regex/basic.svtest
parentInitial commit. (diff)
downloaddovecot-f7548d6d28c313cf80e6f3ef89aed16a19815df1.tar.xz
dovecot-f7548d6d28c313cf80e6f3ef89aed16a19815df1.zip
Adding upstream version 1:2.3.19.1+dfsg1.upstream/1%2.3.19.1+dfsg1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'pigeonhole/tests/extensions/regex/basic.svtest')
-rw-r--r--pigeonhole/tests/extensions/regex/basic.svtest51
1 files changed, 51 insertions, 0 deletions
diff --git a/pigeonhole/tests/extensions/regex/basic.svtest b/pigeonhole/tests/extensions/regex/basic.svtest
new file mode 100644
index 0000000..9417434
--- /dev/null
+++ b/pigeonhole/tests/extensions/regex/basic.svtest
@@ -0,0 +1,51 @@
+require "vnd.dovecot.testsuite";
+
+require "regex";
+require "variables";
+
+test_set "message" text:
+From: stephan+sieve@friep.example.com
+To: tss@example.net, nico@nl.example.com, sirius@fi.example.com
+Subject: Test
+
+Test message.
+.
+;
+
+test "Basic example" {
+ if not address :regex :comparator "i;ascii-casemap" "from" [
+ "stephan(\\+.*)?@it\\.example\\.com",
+ "stephan(\\+.*)?@friep\\.example\\.com"
+ ] {
+ test_fail "failed to match";
+ }
+}
+
+test "No values" {
+ if header :regex "cc" [".*\\.com", ".*\\.nl"] {
+ test_fail "matched inappropriately";
+ }
+}
+
+
+test "More values" {
+ if address :regex "to" [".*\\.uk", ".*\\.nl", ".*\\.tk"] {
+ test_fail "matched inappropriately";
+ }
+
+ if not address :regex "to" [".*\\.uk", ".*\\.nl", ".*\\.tk", ".*fi\\..*"] {
+ test_fail "failed to match last";
+ }
+}
+
+test "Variable regex" {
+ set "regex" "stephan[+](sieve)@friep.example.com";
+
+ if not header :regex "from" "${regex}" {
+ test_fail "failed to match variable regex";
+ }
+
+ if not string "${1}" "sieve" {
+ test_fail "failed to extract proper match value from variable regex";
+ }
+}