Browse Source

[Test] Add SURBL tests

tags/2.0
Vsevolod Stakhov 4 years ago
parent
commit
91443f3b8a

+ 52
- 0
test/functional/cases/340_surbl.robot View File

@@ -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

+ 33
- 2
test/functional/configs/plugins.conf View 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"];
},
];
}
}

+ 42
- 0
test/functional/configs/surbl.conf View File

@@ -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;
}
}
}
}

+ 3
- 0
test/functional/messages/url6.eml View File

@@ -0,0 +1,3 @@
Content-Type: text/html

hello <a href = "https://www.example.org/?">hello</a>

+ 3
- 0
test/functional/messages/url7.eml View File

@@ -0,0 +1,3 @@
Content-Type: text/html

hello <a href = "https://example.ru/?">hello</a>

Loading…
Cancel
Save