blob: d9301e2fa06cc30430335c2ec0e99d00900237b9 (
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
|
*** Settings ***
Suite Setup Settings Setup
Suite Teardown Settings Teardown
Library ${TESTDIR}/lib/rspamd.py
Resource ${TESTDIR}/lib/rspamd.robot
Variables ${TESTDIR}/lib/vars.py
*** Variables ***
${CONFIG} ${TESTDIR}/configs/plugins.conf
${LUA_SCRIPT} ${TESTDIR}/lua/settings.lua
${MESSAGE} ${TESTDIR}/messages/spam_message.eml
${MESSAGE_PRIORITY} ${TESTDIR}/messages/priority.eml
${MESSAGE_7BIT} ${TESTDIR}/messages/utf.eml
${MESSAGE_CUSTOM_HDR} ${TESTDIR}/messages/empty-plain-text.eml
${MESSAGE_ABSENT_MIME} ${TESTDIR}/messages/ed25519.eml
${SPAM_MESSAGE} ${TESTDIR}/messages/spam.eml
${HAM_MESSAGE} ${TESTDIR}/messages/ham.eml
${RSPAMD_SCOPE} Suite
${URL_TLD} ${TESTDIR}/../lua/unit/test_tld.dat
*** Test Cases ***
NO SETTINGS SPAM
${result} = Scan Message With Rspamc ${SPAM_MESSAGE}
Check Rspamc ${result} SIMPLE_TEST
Should Contain ${result.stdout} SIMPLE_VIRTUAL
Should Not Contain ${result.stdout} SIMPLE_VIRTUAL1
Should Contain ${result.stdout} SIMPLE_PRE
Should Contain ${result.stdout} SIMPLE_POST
Should Contain ${result.stdout} BAYES_SPAM
NO SETTINGS HAM
${result} = Scan Message With Rspamc ${HAM_MESSAGE}
Check Rspamc ${result} SIMPLE_TEST
Should Contain ${result.stdout} SIMPLE_PRE
Should Contain ${result.stdout} SIMPLE_POST
Should Contain ${result.stdout} BAYES_HAM
ENABLE SYMBOL - NORMAL
${result} = Scan Message With Rspamc ${HAM_MESSAGE} --header Settings={symbols_enabled = ["SIMPLE_TEST"]}
Check Rspamc ${result} SIMPLE_TEST
Should Not Contain ${result.stdout} SIMPLE_PRE
Should Not Contain ${result.stdout} SIMPLE_POST
Should Not Contain ${result.stdout} BAYES_HAM
ENABLE SYMBOL - POSTFILTER
${result} = Scan Message With Rspamc ${HAM_MESSAGE} --header Settings={symbols_enabled = ["SIMPLE_TEST", "SIMPLE_POST"]}
Check Rspamc ${result} SIMPLE_TEST
Should Contain ${result.stdout} SIMPLE_POST
Should Not Contain ${result.stdout} SIMPLE_PRE
Should Not Contain ${result.stdout} BAYES_HAM
ENABLE SYMBOL - PREFILTER
${result} = Scan Message With Rspamc ${HAM_MESSAGE} --header Settings={symbols_enabled = ["SIMPLE_PRE"]}
Check Rspamc ${result} SIMPLE_PRE
Should Not Contain ${result.stdout} SIMPLE_POST
Should Not Contain ${result.stdout} SIMPLE_TEST
Should Not Contain ${result.stdout} BAYES_HAM
ENABLE SYMBOL - CLASSIFIER
${result} = Scan Message With Rspamc ${HAM_MESSAGE} --header Settings={symbols_enabled = ["BAYES_HAM", "BAYES_SPAM"]}
Check Rspamc ${result} BAYES_HAM
Should Not Contain ${result.stdout} SIMPLE_PRE
Should Not Contain ${result.stdout} SIMPLE_POST
Should Not Contain ${result.stdout} SIMPLE_TEST
DISABLE SYMBOL - NORMAL
${result} = Scan Message With Rspamc ${MESSAGE} --header Settings={symbols_disabled = ["SIMPLE_TEST"]}
Check Rspamc ${result} SIMPLE_TEST inverse=1
Should Contain ${result.stdout} SIMPLE_PRE
Should Contain ${result.stdout} SIMPLE_POST
RESCORE SYMBOL - NORMAL
${result} = Scan Message With Rspamc ${MESSAGE} --header Settings={SIMPLE_TEST = 3.33}
Check Rspamc ${result} SIMPLE_TEST (3.33)
INJECT SYMBOL - NORMAL
${result} = Scan Message With Rspamc ${MESSAGE} --header Settings={symbols = ["INJECTED_SYMBOL1", "INJECTED_SYMBOL2"]}
Check Rspamc ${result} INJECTED_SYMBOL1
Should Contain ${result.stdout} INJECTED_SYMBOL2
RESCORE ACTION
${result} = Scan Message With Rspamc ${MESSAGE} --header Settings={actions { reject = 1234.5; } }
Check Rspamc ${result} ${SPACE}/ 1234.50
DISABLE GROUP - NORMAL
${result} = Scan Message With Rspamc ${MESSAGE} --header Settings={groups_disabled = ["b"]}
Check Rspamc ${result} SIMPLE_TEST inverse=1
Should Contain ${result.stdout} SIMPLE_PRE
Should Contain ${result.stdout} SIMPLE_POST
ENABLE GROUP - NORMAL
${result} = Scan Message With Rspamc ${MESSAGE} --header Settings={groups_enabled = ["b"]}
Check Rspamc ${result} SIMPLE_TEST
Should Not Contain ${result.stdout} SIMPLE_PRE
Should Not Contain ${result.stdout} SIMPLE_POST
SETTINGS ID - NORMAL
${result} = Scan Message With Rspamc ${MESSAGE} --header Settings-Id=id_test
Check Rspamc ${result} SIMPLE_TEST
Should Not Contain ${result.stdout} SIMPLE_PRE
Should Not Contain ${result.stdout} SIMPLE_POST
SETTINGS ID - PRE
${result} = Scan Message With Rspamc ${MESSAGE} --header Settings-Id=id_pre
Check Rspamc ${result} SIMPLE_PRE
Should Not Contain ${result.stdout} SIMPLE_TEST
Should Not Contain ${result.stdout} SIMPLE_POST
SETTINGS ID - VIRTUAL
${result} = Scan Message With Rspamc ${MESSAGE} --header Settings-Id=id_virtual
Check Rspamc ${result} SIMPLE_VIRTUAL
Should Not Contain ${result.stdout} SIMPLE_TEST
Should Not Contain ${result.stdout} SIMPLE_VIRTUAL1
Should Not Contain ${result.stdout} DEP_REAL
Should Not Contain ${result.stdout} SIMPLE_POST
Should Not Contain ${result.stdout} SIMPLE_PRE
SETTINGS ID - VIRTUAL GROUP
${result} = Scan Message With Rspamc ${MESSAGE} --header Settings-Id=id_virtual_group
Check Rspamc ${result} SIMPLE_VIRTUAL (10
Should Contain ${result.stdout} EXPLICIT_VIRTUAL (10
Should Not Contain ${result.stdout} SIMPLE_TEST
Should Not Contain ${result.stdout} SIMPLE_VIRTUAL1
Should Not Contain ${result.stdout} DEP_REAL
Should Not Contain ${result.stdout} SIMPLE_POST
Should Not Contain ${result.stdout} SIMPLE_PRE
SETTINGS ID - VIRTUAL FROM
${result} = Scan Message With Rspamc ${MESSAGE} --from test2@example.com
Check Rspamc ${result} SIMPLE_VIRTUAL (10
Should Contain ${result.stdout} EXPLICIT_VIRTUAL (10
Should Not Contain ${result.stdout} SIMPLE_TEST
Should Not Contain ${result.stdout} SIMPLE_VIRTUAL1
Should Not Contain ${result.stdout} DEP_REAL
Should Not Contain ${result.stdout} SIMPLE_POST
Should Not Contain ${result.stdout} SIMPLE_PRE
SETTINGS ID - VIRTUAL USER
${result} = Scan Message With Rspamc ${MESSAGE} --user test@example.com
Check Rspamc ${result} SIMPLE_VIRTUAL (10
Should Contain ${result.stdout} EXPLICIT_VIRTUAL (10
Should Not Contain ${result.stdout} SIMPLE_TEST
Should Not Contain ${result.stdout} SIMPLE_VIRTUAL1
Should Not Contain ${result.stdout} DEP_REAL
Should Not Contain ${result.stdout} SIMPLE_POST
Should Not Contain ${result.stdout} SIMPLE_PRE
SETTINGS ID - VIRTUAL HOSTNAME
${result} = Scan Message With Rspamc ${MESSAGE} --hostname example.com
Check Rspamc ${result} SIMPLE_VIRTUAL (10
Should Contain ${result.stdout} EXPLICIT_VIRTUAL (10
Should Not Contain ${result.stdout} SIMPLE_TEST
Should Not Contain ${result.stdout} SIMPLE_VIRTUAL1
Should Not Contain ${result.stdout} DEP_REAL
Should Not Contain ${result.stdout} SIMPLE_POST
Should Not Contain ${result.stdout} SIMPLE_PRE
SETTINGS ID - VIRTUAL SELECTOR
${result} = Scan Message With Rspamc ${MESSAGE} --rcpt user3@example.com
Check Rspamc ${result} SIMPLE_VIRTUAL (10
Should Contain ${result.stdout} EXPLICIT_VIRTUAL (10
Should Not Contain ${result.stdout} SIMPLE_TEST
Should Not Contain ${result.stdout} SIMPLE_VIRTUAL1
Should Not Contain ${result.stdout} DEP_REAL
Should Not Contain ${result.stdout} SIMPLE_POST
Should Not Contain ${result.stdout} SIMPLE_PRE
SETTINGS ID - ANGLED RECIPIENT
${result} = Scan Message With Rspamc ${MESSAGE} --rcpt <user3@example.com>
Check Rspamc ${result} SIMPLE_VIRTUAL (10
Should Contain ${result.stdout} EXPLICIT_VIRTUAL (10
Should Not Contain ${result.stdout} SIMPLE_TEST
Should Not Contain ${result.stdout} SIMPLE_VIRTUAL1
Should Not Contain ${result.stdout} DEP_REAL
Should Not Contain ${result.stdout} SIMPLE_POST
Should Not Contain ${result.stdout} SIMPLE_PRE
SETTINGS ID - VIRTUAL HEADER MATCH
${result} = Scan Message With Rspamc ${MESSAGE_7BIT}
Check Rspamc ${result} SIMPLE_VIRTUAL (10
Should Contain ${result.stdout} EXPLICIT_VIRTUAL (10
Should Not Contain ${result.stdout} SIMPLE_TEST
Should Not Contain ${result.stdout} SIMPLE_VIRTUAL1
Should Not Contain ${result.stdout} DEP_REAL
Should Not Contain ${result.stdout} SIMPLE_POST
Should Not Contain ${result.stdout} SIMPLE_PRE
SETTINGS ID - VIRTUAL HEADER EXISTS
${result} = Scan Message With Rspamc ${MESSAGE_CUSTOM_HDR}
Check Rspamc ${result} SIMPLE_VIRTUAL (10
Should Not Contain ${result.stdout} SIMPLE_TEST
Should Not Contain ${result.stdout} SIMPLE_VIRTUAL1
Should Not Contain ${result.stdout} DEP_REAL
Should Not Contain ${result.stdout} SIMPLE_POST
Should Not Contain ${result.stdout} SIMPLE_PRE
SETTINGS ID - VIRTUAL HEADER ABSENT
${result} = Scan Message With Rspamc ${MESSAGE_ABSENT_MIME}
Check Rspamc ${result} SIMPLE_VIRTUAL (10
Should Not Contain ${result.stdout} SIMPLE_TEST
Should Not Contain ${result.stdout} SIMPLE_VIRTUAL1
Should Not Contain ${result.stdout} DEP_REAL
Should Not Contain ${result.stdout} SIMPLE_POST
Should Not Contain ${result.stdout} SIMPLE_PRE
SETTINGS ID - VIRTUAL REQUEST HEADER
${result} = Scan Message With Rspamc ${MESSAGE} --header Test=passed
Check Rspamc ${result} SIMPLE_VIRTUAL (10
Should Not Contain ${result.stdout} SIMPLE_TEST
Should Not Contain ${result.stdout} SIMPLE_VIRTUAL1
Should Not Contain ${result.stdout} DEP_REAL
Should Not Contain ${result.stdout} SIMPLE_POST
Should Not Contain ${result.stdout} SIMPLE_PRE
SETTINGS ID - VIRTUAL DEP
${result} = Scan Message With Rspamc ${MESSAGE} --header Settings-Id=id_virtual1
Check Rspamc ${result} EXPLICIT_VIRTUAL1
Should Contain ${result.stdout} DEP_VIRTUAL
Should Contain ${result.stdout} DEP_REAL
Should Not Contain ${result.stdout} SIMPLE_TEST
Should Not Contain ${result.stdout} SIMPLE_VIRTUAL
Should Not Contain ${result.stdout} SIMPLE_POST
Should Not Contain ${result.stdout} SIMPLE_PRE
PRIORITY
${result} = Scan Message With Rspamc ${MESSAGE_PRIORITY} --header Settings-Id=id_virtual_group --from user@test.com
Should Contain ${result.stdout} PRIORITY_2
*** Keywords ***
Settings Setup
Copy File ${TESTDIR}/data/bayes.spam.sqlite3 /tmp/bayes.spam.sqlite3
Copy File ${TESTDIR}/data/bayes.ham.sqlite3 /tmp/bayes.ham.sqlite3
${PLUGIN_CONFIG} = Get File ${TESTDIR}/configs/settings.conf
Set Suite Variable ${PLUGIN_CONFIG}
Generic Setup PLUGIN_CONFIG
Settings Teardown
Normal Teardown
|