aboutsummaryrefslogtreecommitdiffstats
path: root/test/functional/lua/tlds.lua
blob: efaf01af563b0154a60fa2248cc6751171d7a282 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
rspamd_config:register_symbol({
  name = 'TEST_TLD',
  score = 1.0,
  callback = function()
    local prefixes = {
      '',
      'example.'
    }
    local test_domains = {
      'example.ac',
      'example.b.br',
      'example.co',
      '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)
          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
})