config.svtest   [plain text]


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";
	}
}