]> source.dussan.org Git - rspamd.git/commitdiff
[Test] Add SURBL tests
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Sat, 24 Aug 2019 18:08:30 +0000 (19:08 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Sat, 24 Aug 2019 18:08:30 +0000 (19:08 +0100)
test/functional/cases/340_surbl.robot [new file with mode: 0644]
test/functional/configs/plugins.conf
test/functional/configs/surbl.conf [new file with mode: 0644]
test/functional/messages/url6.eml [new file with mode: 0644]
test/functional/messages/url7.eml [new file with mode: 0644]

diff --git a/test/functional/cases/340_surbl.robot b/test/functional/cases/340_surbl.robot
new file mode 100644 (file)
index 0000000..40ef985
--- /dev/null
@@ -0,0 +1,52 @@
+*** Settings ***
+Suite Setup     Surbl Setup
+Suite Teardown  Surbl Teardown
+Library         ${TESTDIR}/lib/rspamd.py
+Resource        ${TESTDIR}/lib/rspamd.robot
+Variables       ${TESTDIR}/lib/vars.py
+
+*** Variables ***
+${CONFIG}       ${TESTDIR}/configs/plugins.conf
+${RSPAMD_SCOPE}  Suite
+${URL_TLD}      ${TESTDIR}/../lua/unit/test_tld.dat
+
+*** Test Cases ***
+SURBL Example.com domain
+  ${result} =  Scan Message With Rspamc  ${TESTDIR}/messages/url4.eml
+  Should Contain  ${result.stdout}  RSPAMD_URIBL
+  Should Contain  ${result.stdout}  DBL_SPAM
+  Should Not Contain  ${result.stdout}  DBL_PHISH
+  Should Not Contain  ${result.stdout}  URIBL_BLACK
+
+SURBL Example.net domain
+  ${result} =  Scan Message With Rspamc  ${TESTDIR}/messages/url5.eml
+  Should Contain  ${result.stdout}  DBL_PHISH
+  Should Not Contain  ${result.stdout}  DBL_SPAM
+  Should Not Contain  ${result.stdout}  RSPAMD_URIBL
+  Should Not Contain  ${result.stdout}  URIBL_BLACK
+
+SURBL Example.org domain
+  ${result} =  Scan Message With Rspamc  ${TESTDIR}/messages/url6.eml
+  Should Contain  ${result.stdout}  URIBL_BLACK
+  Should Not Contain  ${result.stdout}  DBL_SPAM
+  Should Not Contain  ${result.stdout}  RSPAMD_URIBL
+  Should Not Contain  ${result.stdout}  DBL_PHISH
+
+SURBL Example.ru domain
+  ${result} =  Scan Message With Rspamc  ${TESTDIR}/messages/url7.eml
+  Should Contain  ${result.stdout}  URIBL_GREY
+  Should Contain  ${result.stdout}  URIBL_RED
+  Should Not Contain  ${result.stdout}  DBL_SPAM
+  Should Not Contain  ${result.stdout}  RSPAMD_URIBL
+  Should Not Contain  ${result.stdout}  DBL_PHISH
+  Should Not Contain  ${result.stdout}  URIBL_BLACK
+
+*** Keywords ***
+Surbl Setup
+  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/surbl.conf
+  Set Suite Variable  ${PLUGIN_CONFIG}
+  Generic Setup  PLUGIN_CONFIG
+
+Surbl Teardown
+  Normal Teardown
+  Terminate All Processes    kill=True
\ No newline at end of file
index bc8fb01ba247a8db1d0894d20b2c3de7aee7177a..05ff16a1e90b9f507c35ea07d773b64d7c481343 100644 (file)
@@ -1,5 +1,5 @@
 options = {
-  filters = ["spf", "dkim", "regexp"]
+  filters = ["spf", "dkim", "regexp", "surbl"]
   url_tld = "${URL_TLD}"
   pidfile = "${TMPDIR}/rspamd.pid"
   lua_path = "${INSTALLROOT}/share/rspamd/lib/?.lua"
@@ -532,7 +532,38 @@ options = {
           name = "131.193.18.151.fake.rbl";
           type = "a";
           replies = ["127.0.0.3"];
-        }
+        },
+        # SURBL tests
+        {
+          name = "rciuosbadgpq6b5wt436nhgnwzmfh9w9.test.uribl";
+          type = a;
+          replies = ["127.0.0.2"];
+        },
+        {
+          name = "example.com.test2.uribl";
+          type = a;
+          replies = ["127.0.1.2"];
+        },
+        {
+          name = "example.net.test2.uribl";
+          type = a;
+          replies = ["127.0.1.4"];
+        },
+        {
+          name = "rspamd.tk.test2.uribl";
+          type = a;
+          replies = ["127.0.1.4"];
+        },
+        {
+          name = "example.org.test3.uribl";
+          type = a;
+          replies = ["127.0.0.2"];
+        },
+        {
+          name = "example.ru.test3.uribl";
+          type = a;
+          replies = ["127.0.0.12"];
+        },
         ];
   }
 }
diff --git a/test/functional/configs/surbl.conf b/test/functional/configs/surbl.conf
new file mode 100644 (file)
index 0000000..944ee74
--- /dev/null
@@ -0,0 +1,42 @@
+
+surbl {
+  rules {
+    "RSPAMD_URIBL" {
+      suffix = "test.uribl";
+      check_dkim = true;
+      check_emails = true;
+      process_script =<<EOD
+function(url, suffix)
+  local cr = require "rspamd_cryptobox_hash"
+  local h = cr.create(url):base32():sub(1, 32)
+  return string.format("%s.%s", h, suffix)
+end
+EOD;
+    }
+    "DBL" {
+      suffix = "test2.uribl";
+      no_ip = true;
+      check_emails = true;
+      check_dkim = true;
+
+      ips = {
+        # spam domain
+        DBL_SPAM = "127.0.1.2";
+        # phish domain
+        DBL_PHISH = "127.0.1.4";
+      }
+    }
+
+    "URIBL_MULTI" {
+      suffix = "test3.uribl";
+      check_dkim = true;
+      check_emails = true;
+      bits {
+        URIBL_BLOCKED = 1;
+        URIBL_BLACK = 2;
+        URIBL_GREY = 4;
+        URIBL_RED = 8;
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/test/functional/messages/url6.eml b/test/functional/messages/url6.eml
new file mode 100644 (file)
index 0000000..7bc0b5b
--- /dev/null
@@ -0,0 +1,3 @@
+Content-Type: text/html
+
+hello <a href = "https://www.example.org/?">hello</a>
diff --git a/test/functional/messages/url7.eml b/test/functional/messages/url7.eml
new file mode 100644 (file)
index 0000000..63d1c53
--- /dev/null
@@ -0,0 +1,3 @@
+Content-Type: text/html
+
+hello <a href = "https://example.ru/?">hello</a>