aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkorgoth1 <vladislav.stakhov@gmail.com>2020-03-17 20:04:47 +0300
committerkorgoth1 <vladislav.stakhov@gmail.com>2020-03-17 20:04:47 +0300
commite910604df1660331394786f24edbb30c82e776bb (patch)
tree4437571fec66e2c18e65bc5ee995841dbd6b38ff
parentd0c76391f02b171b053a431b8496b48b9134ca3b (diff)
downloadrspamd-e910604df1660331394786f24edbb30c82e776bb.tar.gz
rspamd-e910604df1660331394786f24edbb30c82e776bb.zip
[TEST] Force Actions Settings
-rw-r--r--test/functional/cases/360_force_actions.robot54
-rw-r--r--test/functional/configs/force_actions.conf86
-rw-r--r--test/functional/configs/plugins.conf1
3 files changed, 141 insertions, 0 deletions
diff --git a/test/functional/cases/360_force_actions.robot b/test/functional/cases/360_force_actions.robot
new file mode 100644
index 000000000..8ef19584d
--- /dev/null
+++ b/test/functional/cases/360_force_actions.robot
@@ -0,0 +1,54 @@
+*** Settings ***
+Suite Setup Force Actions Setup
+Suite Teardown Force Actions Teardown
+Library ${TESTDIR}/lib/rspamd.py
+Resource ${TESTDIR}/lib/rspamd.robot
+Variables ${TESTDIR}/lib/vars.py
+
+*** Variables ***
+${CONFIG} ${TESTDIR}/configs/plugins.conf
+${URL_TLD} ${TESTDIR}/../lua/unit/test_tld.dat
+${MESSAGE} ${TESTDIR}/messages/url7.eml
+${RSPAMD_SCOPE} Suite
+
+*** Test Cases ***
+FORCE ACTIONS from reject to add header
+ ${result} = Scan Message With Rspamc ${MESSAGE} --header Settings-Id=id_reject
+ Check Rspamc ${result} Action: add header
+ Should Contain ${result.stdout} FORCE_ACTION_FORCE_REJECT_TO_ADD_HEADER
+
+FORCE ACTIONS from reject to no action
+ ${result} = Scan Message With Rspamc ${MESSAGE} --header Settings-Id=id_reject_no_action
+ Check Rspamc ${result} Action: no action
+ Should Contain ${result.stdout} FORCE_ACTION_FORCE_REJECT_TO_NO_ACTION
+
+FORCE ACTIONS from no action to reject
+ ${result} = Scan Message With Rspamc ${MESSAGE} --header Settings-Id=id_no_action
+ Check Rspamc ${result} Action: reject
+ Should Contain ${result.stdout} FORCE_ACTION_FORCE_NO_ACTION_TO_REJECT
+
+FORCE ACTIONS from no action to add header
+ ${result} = Scan Message With Rspamc ${MESSAGE} --header Settings-Id=id_no_action_to_add_header
+ Check Rspamc ${result} Action: add header
+ Should Contain ${result.stdout} FORCE_ACTION_FORCE_NO_ACTION_TO_ADD_HEADER
+
+FORCE ACTIONS from add header to no action
+ ${result} = Scan Message With Rspamc ${MESSAGE} --header Settings-Id=id_add_header
+ Check Rspamc ${result} Action: no action
+ Should Contain ${result.stdout} FORCE_ACTION_FORCE_ADD_HEADER_TO_NO_ACTION
+
+FORCE ACTIONS from add header to reject
+ ${result} = Scan Message With Rspamc ${MESSAGE} --header Settings-Id=id_add_header_to_reject
+ Check Rspamc ${result} Action: reject
+ Should Contain ${result.stdout} FORCE_ACTION_FORCE_ADD_HEADER_TO_REJECT
+
+
+*** Keywords ***
+Force Actions Setup
+ ${PLUGIN_CONFIG} = Get File ${TESTDIR}/configs/force_actions.conf
+ Set Suite Variable ${PLUGIN_CONFIG}
+ Generic Setup PLUGIN_CONFIG
+
+Force Actions Teardown
+ Normal Teardown
+ Terminate All Processes kill=True \ No newline at end of file
diff --git a/test/functional/configs/force_actions.conf b/test/functional/configs/force_actions.conf
new file mode 100644
index 000000000..61732c4ac
--- /dev/null
+++ b/test/functional/configs/force_actions.conf
@@ -0,0 +1,86 @@
+force_actions {
+ rules {
+ FORCE_REJECT_TO_ADD_HEADER {
+ action = "add header";
+ expression = "UBER_REJECT";
+ require_action = ["reject"];
+ }
+ FORCE_REJECT_TO_NO_ACTION {
+ action = "no action";
+ expression = "UBER_REJECT2";
+ require_action = ["reject"];
+ }
+ FORCE_NO_ACTION_TO_REJECT {
+ action = "reject";
+ expression = "UBER_HAM";
+ require_action = ["no action"];
+ }
+ FORCE_NO_ACTION_TO_ADD_HEADER {
+ action = "add header";
+ expression = "UBER_HAM2";
+ require_action = ["no action"];
+ }
+ FORCE_ADD_HEADER_TO_NO_ACTION {
+ action = "no action";
+ expression = "UBER_ADD_HEADER";
+ require_action = ["add header"];
+ }
+ FORCE_ADD_HEADER_TO_REJECT {
+ action = "reject";
+ expression = "UBER_ADD_HEADER2";
+ require_action = ["add header"];
+ }
+ }
+}
+
+
+settings {
+ id_reject {
+ id = "id_reject";
+ apply {
+ symbols {
+ UBER_REJECT = 100500.0;
+ }
+ }
+ }
+ id_reject_no_action {
+ id = "id_reject_no_action";
+ apply {
+ symbols {
+ UBER_REJECT2 = 100500.0;
+ }
+ }
+ }
+ id_no_action {
+ id = "id_no_action";
+ apply {
+ symbols {
+ UBER_HAM = 1.0;
+ }
+ }
+ }
+ id_no_action_to_add_header {
+ id = "id_no_action_to_add_header";
+ apply {
+ symbols {
+ UBER_HAM2 = 1.0;
+ }
+ }
+ }
+ id_add_header {
+ id = "id_add_header";
+ apply {
+ symbols {
+ UBER_ADD_HEADER = 50500.0;
+ }
+ }
+ }
+ id_add_header_to_reject {
+ id = "id_add_header_to_reject";
+ apply {
+ symbols {
+ UBER_ADD_HEADER2 = 50500.0;
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/test/functional/configs/plugins.conf b/test/functional/configs/plugins.conf
index e74ddd73d..b1885eeb6 100644
--- a/test/functional/configs/plugins.conf
+++ b/test/functional/configs/plugins.conf
@@ -724,6 +724,7 @@ metric = {
name = "default",
actions = {
reject = 100500,
+ add_header = 50500,
}
unknown_weight = 1
}