${CONFIG} ${TESTDIR}/configs/lua_test.conf
${MESSAGE} ${TESTDIR}/messages/spam_message.eml
${RSPAMD_SCOPE} Test
+${URL_TLD} ${TESTDIR}/../lua/unit/test_tld.dat
*** Test Cases ***
Flags
... -r rcpt3@foobar -r rcpt4@foobar
Check Rspamc ${result} TEST_RCPT (1.00)[rcpt1@foobar,rcpt2@foobar,rcpt3@foobar,rcpt4@foobar]
+TLD parts
+ [Setup] TLD Setup ${TESTDIR}/lua/tlds.lua
+ ${result} = Scan Message With Rspamc ${MESSAGE}
+ Check Rspamc ${result} TEST_TLD (1.00)[no worry]
+
*** Keywords ***
Lua Setup
[Arguments] ${LUA_SCRIPT}
Set Test Variable ${LUA_SCRIPT}
Generic Setup
+
+TLD Setup
+ [Arguments] ${LUA_SCRIPT}
+ Set Test Variable ${URL_TLD} ${TESTDIR}/../../contrib/publicsuffix/effective_tld_names.dat
+ Lua Setup ${LUA_SCRIPT}
--- /dev/null
+rspamd_config:register_symbol({
+ name = 'TEST_TLD',
+ score = 1.0,
+ callback = function(task)
+ local prefixes = {
+ '',
+ 'example.'
+ }
+ local test_domains = {
+ 'example.ac',
+ 'example.b.br',
+ 'example.co',
+ 'example.city.kawasaki.jp',
+ 'example.com',
+ 'example.co.za',
+ 'example.in.net',
+ 'example.kawasaki.jp',
+ 'example.net',
+ 'example.net.in',
+ 'example.nom.br',
+ 'example.org',
+ 'example.org.ac',
+ 'example.ru.com',
+ 'example.za.net',
+ 'example.za.org',
+ 'org.org.za',
+ }
+ local worry = {}
+ local rspamd_mempool = require 'rspamd_mempool'
+ local rspamd_url = require 'rspamd_url'
+ local rspamd_util = require 'rspamd_util'
+ local pool = rspamd_mempool.create()
+ for _, d in ipairs(test_domains) do
+ (function()
+ for _, p in ipairs(prefixes) do
+ local test = rspamd_util.get_tld(p .. d)
+ if (test ~= d) then
+ table.insert(worry, 'util.get_tld:' .. p .. d .. ':' .. test)
+ return
+ end
+ local u = rspamd_url.create(pool, p .. d)
+ local test = u:get_tld()
+ if (test ~= d) then
+ table.insert(worry, 'url.get_tld:' .. p .. d .. ':' .. test)
+ return
+ end
+ end
+ end)()
+ end
+ if (#worry == 0) then
+ return true, "no worry"
+ else
+ return true, table.concat(worry, ",")
+ end
+ end
+})