summaryrefslogtreecommitdiffstats
path: root/test/lua/unit/selectors.negative.lua
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 21:30:40 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 21:30:40 +0000
commit133a45c109da5310add55824db21af5239951f93 (patch)
treeba6ac4c0a950a0dda56451944315d66409923918 /test/lua/unit/selectors.negative.lua
parentInitial commit. (diff)
downloadrspamd-133a45c109da5310add55824db21af5239951f93.tar.xz
rspamd-133a45c109da5310add55824db21af5239951f93.zip
Adding upstream version 3.8.1.upstream/3.8.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'test/lua/unit/selectors.negative.lua')
-rw-r--r--test/lua/unit/selectors.negative.lua113
1 files changed, 113 insertions, 0 deletions
diff --git a/test/lua/unit/selectors.negative.lua b/test/lua/unit/selectors.negative.lua
new file mode 100644
index 0000000..4262400
--- /dev/null
+++ b/test/lua/unit/selectors.negative.lua
@@ -0,0 +1,113 @@
+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==
+]]