]> source.dussan.org Git - rspamd.git/commitdiff
[Test] Some tests for whitelist module
authorAndrew Lewis <nerf@judo.za.org>
Tue, 5 Sep 2017 13:08:51 +0000 (15:08 +0200)
committerAndrew Lewis <nerf@judo.za.org>
Tue, 5 Sep 2017 13:14:22 +0000 (15:14 +0200)
test/functional/cases/123_whitelist.robot [new file with mode: 0644]
test/functional/configs/maps/domains.list
test/functional/configs/whitelist.conf [new file with mode: 0644]

diff --git a/test/functional/cases/123_whitelist.robot b/test/functional/cases/123_whitelist.robot
new file mode 100644 (file)
index 0000000..9ca57b9
--- /dev/null
@@ -0,0 +1,52 @@
+*** Settings ***
+Suite Setup     Whitelist Setup
+Suite Teardown  Normal Teardown
+Library         ${TESTDIR}/lib/rspamd.py
+Resource        ${TESTDIR}/lib/rspamd.robot
+Variables       ${TESTDIR}/lib/vars.py
+
+*** Variables ***
+${CONFIG}       ${TESTDIR}/configs/plugins.conf
+${M_DMARC_OK}   ${TESTDIR}/messages/dmarc/pass_none.eml
+${M_DMARC_BAD}  ${TESTDIR}/messages/dmarc/fail_none.eml
+${UTF_MESSAGE}  ${TESTDIR}/messages/utf.eml
+${RSPAMD_SCOPE}  Suite
+${URL_TLD}      ${TESTDIR}/../lua/unit/test_tld.dat
+
+*** Test Cases ***
+WHITELISTS
+  ${result} =  Scan Message With Rspamc  ${M_DMARC_OK}  -i  8.8.4.4  -F  foo@spf.cacophony.za.org
+  Check Rspamc  ${result}  WHITELIST_DKIM (-1
+  Should Contain  ${result.stdout}  STRICT_DMARC (-3
+  Should Contain  ${result.stdout}  WHITELIST_DDS (-3
+  Should Contain  ${result.stdout}  WHITELIST_DMARC (-2
+  Should Contain  ${result.stdout}  WHITELIST_DMARC_DKIM (-2
+  Should Contain  ${result.stdout}  WHITELIST_SPF (-1
+  Should Not Contain  ${result.stdout}  BLACKLIST_SPF (
+  Should Not Contain  ${result.stdout}  BLACKLIST_DKIM (
+  Should Not Contain  ${result.stdout}  BLACKLIST_DMARC (
+
+BLACKLIST SHOULD FIRE IF ANY CONSTRAINT FAILED
+  ${result} =  Scan Message With Rspamc  ${M_DMARC_OK}  -i  9.8.4.4  -F  foo@spf.cacophony.za.org
+  Check Rspamc  ${result}  BLACKLIST_DDS (3
+  Should Not Contain  ${result.stdout}  WHITELIST_DDS (
+  Should Not Contain  ${result.stdout}  WHITELIST_SPF (
+
+BLACKLISTS
+  ${result} =  Scan Message With Rspamc  ${M_DMARC_BAD}  -i  9.8.4.4  -F  foo@cacophony.za.org
+  Check Rspamc  ${result}  BLACKLIST_SPF (3
+  Should Contain  ${result.stdout}  BLACKLIST_SPF (3
+  Should Contain  ${result.stdout}  STRICT_DMARC (3
+  Should Contain  ${result.stdout}  BLACKLIST_DDS (3
+  Should Contain  ${result.stdout}  BLACKLIST_DMARC (3
+  Should Not Contain  ${result.stdout}  WHITELIST_DDS (
+  Should Not Contain  ${result.stdout}  WHITELIST_SPF (
+  Should Not Contain  ${result.stdout}  WHITEIST_DKIM (
+  Should Not Contain  ${result.stdout}  WHITELIST_DMARC (
+  Should Not Contain  ${result.stdout}  WHITELIST_DMARC_DKIM (
+
+*** Keywords ***
+Whitelist Setup
+  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/whitelist.conf
+  Set Suite Variable  ${PLUGIN_CONFIG}
+  Generic Setup  PLUGIN_CONFIG
index 2d8e6387de51c0d592b0571ea6b19298af45c6ad..f0b6358527b94764f65989e90a2d42743b3dc0ba 100644 (file)
@@ -1,2 +1,3 @@
 example.com
-#other.com
\ No newline at end of file
+cacophony.za.org
+#other.com
diff --git a/test/functional/configs/whitelist.conf b/test/functional/configs/whitelist.conf
new file mode 100644 (file)
index 0000000..9b8c3af
--- /dev/null
@@ -0,0 +1,101 @@
+dmarc {}
+
+whitelist {
+
+  rules {
+        "BLACKLIST_DDS" = {
+            blacklist = true;
+            valid_dkim = true;
+            valid_dmarc = true;
+            valid_spf = true;
+            domains = [
+                "${TESTDIR}/configs/maps/domains.list",
+            ];
+            score = 3.0
+        }
+
+        "WHITELIST_DDS" = {
+            valid_dkim = true;
+            valid_dmarc = true;
+            valid_spf = true;
+            domains = [
+                "${TESTDIR}/configs/maps/domains.list",
+            ];
+            score = -3.0
+        }
+
+        "WHITELIST_DKIM" = {
+            valid_dkim = true;
+            domains = [
+                "${TESTDIR}/configs/maps/domains.list",
+            ];
+            description = "Mail comes from the whitelisted domain and has a valid DKIM signature";
+            score = -1.0
+        }
+
+        "BLACKLIST_DKIM" = {
+            blacklist = true;
+            valid_dkim = true;
+            domains = [
+                "${TESTDIR}/configs/maps/domains.list",
+            ];
+            score = 3.0
+        }
+
+        "WHITELIST_SPF" = {
+            valid_spf = true;
+            domains = [
+                "${TESTDIR}/configs/maps/domains.list",
+            ];
+            score = -1.0
+            description = "Mail comes from the whitelisted domain and has a valid SPF policy";
+        }
+
+        "BLACKLIST_SPF" = {
+            blacklist = true;
+            valid_spf = true;
+            domains = [
+                "${TESTDIR}/configs/maps/domains.list",
+            ];
+            score = 3.0
+        }
+
+        "WHITELIST_DMARC_DKIM" = {
+            valid_dmarc = true;
+            valid_dkim = true;
+            domains = [
+                "${TESTDIR}/configs/maps/domains.list",
+            ];
+            score = -2.0;
+            description = "Mail comes from the whitelisted domain and has valid DMARC and DKIM policies";
+        }
+
+        "WHITELIST_DMARC" = {
+            valid_dmarc = true;
+            domains = [
+                "${TESTDIR}/configs/maps/domains.list",
+            ];
+            score = -2.0;
+            description = "Mail comes from the whitelisted domain and has valid DMARC policy";
+        }
+
+        "BLACKLIST_DMARC" = {
+            blacklist = true;
+            valid_dmarc = true;
+            domains = [
+                "${TESTDIR}/configs/maps/domains.list",
+            ];
+            score = 3.0;
+        }
+
+        "STRICT_DMARC" = {
+            strict = true;
+            valid_dmarc = true;
+            domains = [
+                "${TESTDIR}/configs/maps/domains.list",
+            ];
+            score = -3.0;
+        }
+
+  }
+}