123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- local msg
- context("Selectors test", function()
- local rspamd_task = require "rspamd_task"
- local logger = require "rspamd_logger"
- local lua_selectors = require "lua_selectors"
- local ffi = require "ffi"
- local cfg = rspamd_config
-
- local task
-
- ffi.cdef[[
- void rspamd_url_init (const char *tld_file);
- ]]
-
- local test_dir = string.gsub(debug.getinfo(1).source, "^@(.+/)[^/]+$", "%1")
-
- ffi.C.rspamd_url_init(string.format('%s/%s', test_dir, "test_tld.dat"))
-
- before(function()
- local res
- res,task = rspamd_task.load_from_string(msg, cfg)
- task:set_from_ip("198.172.22.91")
- task:set_user("cool user name")
- task:set_helo("hello mail")
- task:set_request_header("hdr1", "value1")
- task:process_message()
- task:get_mempool():set_variable("int_var", 1)
- task:get_mempool():set_variable("str_var", "str 1")
- if not res then
- assert_true(false, "failed to load message")
- end
- end)
-
- local function check_selector(selector_string)
- local sels = lua_selectors.parse_selector(cfg, selector_string)
- local elts = lua_selectors.process_selectors(task, sels)
- return elts
- end
-
- -- Selectors which should not be parse
- local cases = {
- ["random string"] = {
- selector = "'xxx'"},
-
- ["random nonsense"] = {
- selector = "13 / sd 42 x"},
-
- ["unknown selector"] = {
- selector = "unknownselector"},
-
- ["unknown transformation"] = {
- selector = "urls.somethingnew"},
- }
-
- for case_name, case in pairs(cases) do
- test("case " .. case_name, function()
- local sels = lua_selectors.parse_selector(cfg, case.selector)
- print(logger.slog("%1", sels))
- assert_nil(sels)
- end)
- end
- end)
-
-
- --[=========[ ******************* message ******************* ]=========]
- msg = [[
- Received: from ca-18-193-131.service.infuturo.it ([151.18.193.131] helo=User)
- by server.chat-met-vreemden.nl with esmtpa (Exim 4.76)
- (envelope-from <upwest201diana@outlook.com>)
- id 1ZC1sl-0006b4-TU; Mon, 06 Jul 2015 10:36:08 +0200
- From: <whoknows@nowhere.com>
- To: <nobody@example.com>, <no-one@example.com>
- Date: Wed, 19 Sep 2018 14:36:51 +0100 (BST)
- subject: Second, lower-cased header subject
- Subject: Test subject
- Content-Type: multipart/alternative;
- boundary="_000_6be055295eab48a5af7ad4022f33e2d0_"
-
- --_000_6be055295eab48a5af7ad4022f33e2d0_
- Content-Type: text/plain; charset="utf-8"
- Content-Transfer-Encoding: base64
-
- Hello world
-
-
- --_000_6be055295eab48a5af7ad4022f33e2d0_
- Content-Type: text/html; charset="utf-8"
-
- <html><body>
- <a href="http://example.net">http://example.net</a>
- <a href="mailto:test@example.net">mail me</a>
- </html>
-
-
- --_000_6be055295eab48a5af7ad4022f33e2d0_
- Content-Type: application/zip; name=f.zip
- Content-Disposition: attachment; size=166; filename=f.zip
- Content-Transfer-Encoding: base64
-
- UEsDBAoAAAAAAINe6kgAAAAAAAAAAAAAAAAIABwAZmFrZS5leGVVVAkAA8YaglfGGoJXdXgLAAEE
- 6AMAAAToAwAAUEsBAh4DCgAAAAAAg17qSAAAAAAAAAAAAAAAAAgAGAAAAAAAAAAAALSBAAAAAGZh
- a2UuZXhlVVQFAAPGGoJXdXgLAAEE6AMAAAToAwAAUEsFBgAAAAABAAEATgAAAEIAAAAAAA==
-
-
- --_000_6be055295eab48a5af7ad4022f33e2d0_
- Content-Type: application/zip; name=f.zip
- Content-Disposition: attachment; size=166; filename=f2.zip
- Content-Transfer-Encoding: base64
-
- UEsDBAoAAAAAAINe6kgAAAAAAAAAAAAAAAAIABwAZmFrZS5leGVVVAkAA8YaglfGGoJXdXgLAAEE
- 6AMAAAToAwAAUEsBAh4DCgAAAAAAg17qSAAAAAAAAAAAAAAAAAgAGAAAAAAAAAAAALSBAAAAAGZh
- a2UuZXhlVVQFAAPGGoJXdXgLAAEE6AMAAAToAwAAUEsFBgAAAAABAAEATgAAAEIAAAAAAA==
- ]]
|