summaryrefslogtreecommitdiffstats
path: root/pigeonhole/tests/test-exists.svtest
blob: 8c4c2fcb7bede5575c5b732f2c659198927a04b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
require "vnd.dovecot.testsuite";

/* "The "exists" test is true if the headers listed in the header-names
 *  argument exist within the message.  All of the headers must exist or
 *  the test is false.
 * "
 */

test_set "message" text:
From: stephan@example.org
To: nico@vestingbar.bl
Subject: Test message
Date: Wed, 29 Jul 2009 18:21:44 +0300
X-Spam-Status: Not Spam
Resent-To: nico@frop.example.com

Test!
.
;

/*
 * TEST: One header
 */

test "One header" {
	if not exists "from" {
		test_fail "exists test missed from header";
	}

	if exists "x-nonsense" {
		test_fail "exists test found non-existent header";
	}
}

/*
 * TEST: Two headers
 */

test "Two headers" {
	if not exists ["from","to"] {
		test_fail "exists test missed from or to header";
	}

	if exists ["from","x-nonsense"] {
		test_fail "exists test found non-existent header (1)";
	}

	if exists ["x-nonsense","to"] {
		test_fail "exists test found non-existent header (2)";
	}

	if exists ["x-nonsense","x-nonsense2"] {
		test_fail "exists test found non-existent header (3)";
	}
}

/*
 * TEST: Three headers
 */

test "Three headers" {
	if not exists ["Subject","date","resent-to"] {
		test_fail "exists test missed subject, date or resent-to header";
	}

	if exists ["x-nonsense","date","resent-to"] {
		test_fail "exists test found non-existent header (1)";
	}

	if exists ["subject", "x-nonsense","resent-to"] {
		test_fail "exists test found non-existent header (2)";
	}

	if exists ["subject","date","x-nonsense"] {
		test_fail "exists test found non-existent header (3)";
	}

	if exists ["subject", "x-nonsense","x-nonsense2"] {
		test_fail "exists test found non-existent header (4)";
	}

	if exists ["x-nonsense","date","x-nonsense2"] {
		test_fail "exists test found non-existent header (5)";
	}

	if exists ["x-nonsense","x-nonsense2","resent-to"] {
		test_fail "exists test found non-existent header (6)";
	}

	if exists ["x-nonsense","x-nonsense2","x-nonsense3"] {
		test_fail "exists test found non-existent header (7)";
	}
}