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 "from" "list" {
test_fail "wrong user part extracted";
}
if not envelope :is :detail "from" "request" {
test_fail "wrong detail part extracted";
}
}
test "Delimiter \"+-\"" {
test_config_set "recipient_delimiter" "+-";
test_config_reload :extension "subaddress";
if envelope :is :user "from" "list" {
test_fail "user part extracted";
}
if envelope :is :detail "from" "request" {
test_fail "detail part extracted";
}
}