summaryrefslogtreecommitdiffstats
path: root/pigeonhole/tests/extensions/subaddress/config.svtest
diff options
context:
space:
mode:
Diffstat (limited to 'pigeonhole/tests/extensions/subaddress/config.svtest')
-rw-r--r--pigeonhole/tests/extensions/subaddress/config.svtest85
1 files changed, 85 insertions, 0 deletions
diff --git a/pigeonhole/tests/extensions/subaddress/config.svtest b/pigeonhole/tests/extensions/subaddress/config.svtest
new file mode 100644
index 0000000..071aa12
--- /dev/null
+++ b/pigeonhole/tests/extensions/subaddress/config.svtest
@@ -0,0 +1,85 @@
+require "vnd.dovecot.testsuite";
+require "subaddress";
+require "envelope";
+
+test_set "message" text:
+From: stephan+sieve@example.org
+To: test-failed@example.com
+Subject: subaddress test
+
+Test!
+.
+;
+
+test_set "envelope.to" "friep+-frop@dovecot.example.net";
+test_set "envelope.from" "list_request@lists.dovecot.example.net";
+
+test "Delimiter default" {
+ if not address :is :user "from" "stephan" {
+ test_fail "wrong user part extracted";
+ }
+
+ if not address :is :detail "from" "sieve" {
+ test_fail "wrong detail part extracted";
+ }
+}
+
+test "Delimiter \"-\"" {
+ test_config_set "recipient_delimiter" "-";
+ test_config_reload :extension "subaddress";
+
+ if not address :is :user "to" "test" {
+ test_fail "wrong user part extracted";
+ }
+
+ if not address :is :detail "to" "failed" {
+ test_fail "wrong detail part extracted";
+ }
+}
+
+test "Delimiter \"+-\"" {
+ test_config_set "recipient_delimiter" "+-";
+ test_config_reload :extension "subaddress";
+
+ if not envelope :is :user "to" "friep" {
+ test_fail "wrong user part extracted";
+ }
+
+ if not envelope :is :detail "to" "-frop" {
+ test_fail "wrong detail part extracted";
+ }
+}
+
+test "Delimiter \"-+\"" {
+ test_config_set "recipient_delimiter" "-+";
+ test_config_reload :extension "subaddress";
+
+ if not envelope :is :user "to" "friep" {
+ test_fail "wrong user part extracted";
+ }
+
+ if not envelope :is :detail "to" "-frop" {
+ test_fail "wrong detail part extracted";
+ }
+}
+
+test "Delimiter \"+-_\"" {
+ test_config_set "recipient_delimiter" "+-_";
+ test_config_reload :extension "subaddress";
+
+ if not envelope :is :user "to" "friep" {
+ test_fail "wrong user part extracted";
+ }
+
+ if not envelope :is :detail "to" "-frop" {
+ test_fail "wrong detail part extracted";
+ }
+
+ if not envelope :is :user "from" "list" {
+ test_fail "wrong user part extracted";
+ }
+
+ if not envelope :is :detail "from" "request" {
+ test_fail "wrong detail part extracted";
+ }
+}