aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorAndrew Lewis <nerf@judo.za.org>2016-08-15 10:43:46 +0100
committerAndrew Lewis <nerf@judo.za.org>2016-08-15 10:43:46 +0100
commitf3b286c60f4f88509947be71d5d5cb8750f276b5 (patch)
tree596bee62a1b55dd60376c38a702a1127c8ae2ef4 /test
parentec8deb48a9ee15f9fae84ae0ab4314e8600f7351 (diff)
downloadrspamd-f3b286c60f4f88509947be71d5d5cb8750f276b5.tar.gz
rspamd-f3b286c60f4f88509947be71d5d5cb8750f276b5.zip
[Test] Add test for multimap URL maps & filters
Diffstat (limited to 'test')
-rw-r--r--test/functional/cases/102_multimap.robot59
-rw-r--r--test/functional/configs/multimap.conf30
-rw-r--r--test/functional/messages/url1.eml3
-rw-r--r--test/functional/messages/url2.eml3
-rw-r--r--test/functional/messages/url3.eml3
-rw-r--r--test/functional/messages/url4.eml4
6 files changed, 102 insertions, 0 deletions
diff --git a/test/functional/cases/102_multimap.robot b/test/functional/cases/102_multimap.robot
index 03db8c854..36fdb0166 100644
--- a/test/functional/cases/102_multimap.robot
+++ b/test/functional/cases/102_multimap.robot
@@ -11,6 +11,11 @@ ${MESSAGE} ${TESTDIR}/messages/spam_message.eml
${UTF_MESSAGE} ${TESTDIR}/messages/utf.eml
${REDIS_SCOPE} Suite
${RSPAMD_SCOPE} Suite
+${URL1} ${TESTDIR}/messages/url1.eml
+${URL2} ${TESTDIR}/messages/url2.eml
+${URL3} ${TESTDIR}/messages/url3.eml
+${URL4} ${TESTDIR}/messages/url4.eml
+${URL5} ${TESTDIR}/messages/url5.eml
*** Test Cases ***
MAP - DNSBL HIT
@@ -142,6 +147,60 @@ MAP - REDIS - FROM MISS
${result} = Scan Message With Rspamc ${MESSAGE} --from user@other.com
Check Rspamc ${result} REDIS_FROMADDR inverse=1
+MAP - REDIS - URL TLD - HIT
+ Redis HSET hostname example.com ${EMPTY}
+ ${result} = Scan Message With Rspamc ${URL1}
+ Check Rspamc ${result} REDIS_URL_TLD
+
+MAP - REDIS - URL TLD - MISS
+ ${result} = Scan Message With Rspamc ${URL2}
+ Check Rspamc ${result} REDIS_URL_TLD inverse=1
+
+MAP - REDIS - URL RE FULL - HIT
+ Redis HSET fullurlre html ${EMPTY}
+ ${result} = Scan Message With Rspamc ${URL2}
+ Check Rspamc ${result} REDIS_URL_RE_FULL
+
+MAP - REDIS - URL RE FULL - MISS
+ ${result} = Scan Message With Rspamc ${URL1}
+ Check Rspamc ${result} REDIS_URL_RE_FULL inverse=1
+
+MAP - REDIS - URL FULL - HIT
+ Redis HSET fullurl https://www.example.com/foo?a=b ${EMPTY}
+ ${result} = Scan Message With Rspamc ${URL1}
+ Check Rspamc ${result} REDIS_URL_FULL
+
+MAP - REDIS - URL FULL - MISS
+ ${result} = Scan Message With Rspamc ${URL2}
+ Check Rspamc ${result} REDIS_URL_FULL inverse=1
+
+MAP - REDIS - URL PHISHED - HIT
+ Redis HSET phishedurl www.rspamd.com ${EMPTY}
+ ${result} = Scan Message With Rspamc ${URL3}
+ Check Rspamc ${result} REDIS_URL_PHISHED
+
+MAP - REDIS - URL PHISHED - MISS
+ ${result} = Scan Message With Rspamc ${URL4}
+ Check Rspamc ${result} REDIS_URL_PHISHED inverse=1
+
+MAP - REDIS - URL PLAIN REGEX - HIT
+ Redis HSET urlre www ${EMPTY}
+ ${result} = Scan Message With Rspamc ${URL3}
+ Check Rspamc ${result} REDIS_URL_RE_PLAIN
+
+MAP - REDIS - URL PLAIN REGEX - MISS
+ ${result} = Scan Message With Rspamc ${URL4}
+ Check Rspamc ${result} REDIS_URL_RE_PLAIN inverse=1
+
+MAP - REDIS - URL TLD REGEX - HIT
+ Redis HSET tldre net ${EMPTY}
+ ${result} = Scan Message With Rspamc ${URL5}
+ Check Rspamc ${result} REDIS_URL_RE_TLD
+
+MAP - REDIS - URL TLD REGEX - MISS
+ ${result} = Scan Message With Rspamc ${URL4}
+ Check Rspamc ${result} REDIS_URL_RE_TLD inverse=1
+
*** Keywords ***
Multimap Setup
${PLUGIN_CONFIG} = Get File ${TESTDIR}/configs/multimap.conf
diff --git a/test/functional/configs/multimap.conf b/test/functional/configs/multimap.conf
index 7c75c7a91..e993b1f7d 100644
--- a/test/functional/configs/multimap.conf
+++ b/test/functional/configs/multimap.conf
@@ -62,4 +62,34 @@ multimap {
filter = "email:addr";
map = "redis://emailaddr";
}
+ REDIS_URL_TLD {
+ type = "url";
+ map = "redis://hostname";
+ filter = "tld";
+ }
+ REDIS_URL_RE_FULL {
+ type = "url";
+ map = "redis://fullurlre";
+ filter = "full:regexp:/(html)$/";
+ }
+ REDIS_URL_FULL {
+ type = "url";
+ map = "redis://fullurl";
+ filter = "full";
+ }
+ REDIS_URL_PHISHED {
+ type = "url";
+ map = "redis://phishedurl";
+ filter = "is_phished";
+ }
+ REDIS_URL_RE_TLD {
+ type = "url";
+ map = "redis://tldre";
+ filter = "tld:regexp:/(net)$/";
+ }
+ REDIS_URL_RE_PLAIN {
+ type = "url";
+ map = "redis://urlre";
+ filter = "regexp:/^(www)/";
+ }
}
diff --git a/test/functional/messages/url1.eml b/test/functional/messages/url1.eml
new file mode 100644
index 000000000..42361ae2d
--- /dev/null
+++ b/test/functional/messages/url1.eml
@@ -0,0 +1,3 @@
+Content-Type: text/plain
+
+hello https://www.example.com/foo?a=b hello
diff --git a/test/functional/messages/url2.eml b/test/functional/messages/url2.eml
new file mode 100644
index 000000000..bfa72535f
--- /dev/null
+++ b/test/functional/messages/url2.eml
@@ -0,0 +1,3 @@
+Content-Type: text/plain
+
+hello https://www.rspamd.com/doc/modules/multimap.html hello
diff --git a/test/functional/messages/url3.eml b/test/functional/messages/url3.eml
new file mode 100644
index 000000000..eabfd983b
--- /dev/null
+++ b/test/functional/messages/url3.eml
@@ -0,0 +1,3 @@
+Content-Type: text/html
+
+hello <a href="https://www.rspamd.com/doc/modules/multimap.html">https://www.bank.com</a> hello
diff --git a/test/functional/messages/url4.eml b/test/functional/messages/url4.eml
new file mode 100644
index 000000000..eba4f873e
--- /dev/null
+++ b/test/functional/messages/url4.eml
@@ -0,0 +1,4 @@
+Content-Type: text/html
+
+hello <a href="https://example.com/">https://rspamd.tk</a> hello
+hello <a href="https://rspamd.com/doc/modules/multimap.html">https://rspamd.com</a> hello