--- /dev/null
+*** Settings ***
+Suite Setup Rspamd Setup
+Suite Teardown Rspamd Teardown
+Library ${RSPAMD_TESTDIR}/lib/rspamd.py
+Resource ${RSPAMD_TESTDIR}/lib/rspamd.robot
+Variables ${RSPAMD_TESTDIR}/lib/vars.py
+
+*** Variables ***
+${CONFIG} ${RSPAMD_TESTDIR}/configs/milter_headers.conf
+${MESSAGE} ${RSPAMD_TESTDIR}/messages/zip.eml
+${RSPAMD_SCOPE} Suite
+${RSPAMD_URL_TLD} ${RSPAMD_TESTDIR}/../lua/unit/test_tld.dat
+${SETTINGS_NOSYMBOLS} {symbols_enabled = []}
+${SETTINGS_TEST} {symbols_enabled = [SIMPLE_TEST]}
+
+*** Test Cases ***
+CHECK HEADERS WITH TEST SYMBOL
+ Scan File ${MESSAGE} Settings=${SETTINGS_TEST}
+ Expect Removed Header X-Virus
+ Expect Added Header X-Virus Fires always
--- /dev/null
+lua = "{= env.TESTDIR =}/lua/simple.lua"
+
+.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
+
+milter_headers {
+
+ use = ["x-virus"];
+
+ routines {
+ x-virus {
+ symbols = ["SIMPLE_TEST"];
+ }
+ }
+
+}
[Arguments] ${action}
Should Be Equal ${SCAN_RESULT}[action] ${action}
+Expect Added Header
+ [Arguments] ${header_name} ${header_value} ${pos}=-1
+ Dictionary Should Contain Key ${SCAN_RESULT} milter
+ ... msg=milter block was not present in protocol response
+ Dictionary Should Contain Key ${SCAN_RESULT}[milter] add_headers
+ ... msg=add_headers block was not present in protocol response
+ Dictionary Should Contain Key ${SCAN_RESULT}[milter][add_headers] ${header_name}
+ ... msg=${header_name} was not added
+ Should Be Equal ${SCAN_RESULT}[milter][add_headers][${header_name}][value] ${header_value}
+ Should Be Equal as Numbers ${SCAN_RESULT}[milter][add_headers][${header_name}][order] ${pos}
+
Expect Email
[Arguments] ${email}
List Should Contain Value ${SCAN_RESULT}[emails] ${email}
+Expect Removed Header
+ [Arguments] ${header_name} ${pos}=0
+ Dictionary Should Contain Key ${SCAN_RESULT} milter
+ ... msg=milter block was not present in protocol response
+ Dictionary Should Contain Key ${SCAN_RESULT}[milter] remove_headers
+ ... msg=remove_headers block was not present in protocol response
+ Dictionary Should Contain Key ${SCAN_RESULT}[milter][remove_headers] ${header_name}
+ ... msg=${header_name} was not removed
+ Should Be Equal as Numbers ${SCAN_RESULT}[milter][remove_headers][${header_name}] ${pos}
+
Expect Required Score
[Arguments] ${required_score}
Should Be Equal As Numbers ${SCAN_RESULT}[required_score] ${required_score}