summaryrefslogtreecommitdiffstats
path: root/test/lua/unit/rspamd_resolver.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/rspamd_resolver.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/rspamd_resolver.lua')
-rw-r--r--test/lua/unit/rspamd_resolver.lua31
1 files changed, 31 insertions, 0 deletions
diff --git a/test/lua/unit/rspamd_resolver.lua b/test/lua/unit/rspamd_resolver.lua
new file mode 100644
index 0000000..e987ff0
--- /dev/null
+++ b/test/lua/unit/rspamd_resolver.lua
@@ -0,0 +1,31 @@
+-- Rspamd resolver Lua tests
+
+context("Check punycoding UTF-8 URL", function()
+ local rspamd_resolver = require "rspamd_resolver"
+ local rspamd_util = require "rspamd_util"
+
+ local resolver = rspamd_resolver.init(rspamd_util.create_event_base(), rspamd_config)
+
+ local cases = {
+ -- https://unicode.org/reports/tr46/#Deviations
+ ['faß.de'] = 'fass.de', -- IDNA2008 result: xn--fa-hia.de
+ ['βόλος.com'] = 'xn--nxasmq6b.com', -- IDNA2008 result: xn--nxasmm1c.com
+ ['نامه‌ای.com'] = 'xn--mgba3gch31f.com', -- IDNA2008 result: xn--mgba3gch31f060k.com
+ ['ශ්‍රී.com'] = 'xn--10cl1a0b.com', -- IDNA2008 result: xn--10cl1a0b660p.com
+
+ -- https://unicode.org/reports/tr46/#Table_Example_Processing
+ ['日本語。JP'] = 'xn--wgv71a119e.jp', -- Fullwidth characters are remapped, including 。
+ --['u¨.com'] = 'xn--tda.com', -- Normalize changes u + umlaut to ü
+ ['☕.us'] = 'xn--53h.us', -- Post-Unicode 3.2 characters are allowed
+
+ -- Other
+ ['example.рф'] = 'example.xn--p1ai',
+ }
+
+ for k, v in pairs(cases) do
+ test(string.format("punycode %s -> %s", k, v), function()
+ local res = resolver:idna_convert_utf8(k)
+ assert_equal(res, v)
+ end)
+ end
+end)