aboutsummaryrefslogtreecommitdiff
path: root/lib/urlfilter/test/matcher.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/urlfilter/test/matcher.cpp')
-rw-r--r--lib/urlfilter/test/matcher.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/lib/urlfilter/test/matcher.cpp b/lib/urlfilter/test/matcher.cpp
new file mode 100644
index 0000000..1c1efbf
--- /dev/null
+++ b/lib/urlfilter/test/matcher.cpp
@@ -0,0 +1,42 @@
+#include "urlfilter.h"
+#include "matcher.h"
+#include <gtest/gtest.h>
+
+TEST(Matcher, StringContains) {
+ ContentsMatcher<QStringMatcher> matcher("spam-pattern", UrlFilter::StringContains);
+ EXPECT_TRUE(matcher.hasMatch("this string contains a spam-pattern"));
+ EXPECT_FALSE(matcher.hasMatch("this string does not contain the pattern"));
+}
+
+TEST(Matcher, StringStartsWith) {
+ ContentsMatcher<QStringMatcher> matcher("beginning", UrlFilter::StringStartsWith);
+ EXPECT_TRUE(matcher.hasMatch("beginning this string is the pattern"));
+ EXPECT_FALSE(matcher.hasMatch("ending this string is the pattern, the word beginning"));
+ EXPECT_FALSE(matcher.hasMatch("this would be a string where the pattern cannot be found"));
+}
+
+TEST(Matcher, StringEndsWith) {
+ ContentsMatcher<QStringMatcher> matcher("ending", UrlFilter::StringEndsWith);
+ EXPECT_TRUE(matcher.hasMatch("this string has the proper ending"));
+ EXPECT_FALSE(matcher.hasMatch("and this string doesn't"));
+}
+
+TEST(Matcher, StringEquals) {
+ ContentsMatcher<QStringMatcher> matcher("string-to-match", UrlFilter::StringEquals);
+ EXPECT_TRUE(matcher.hasMatch("string-to-match"));
+ EXPECT_FALSE(matcher.hasMatch("same-len-string"));
+ EXPECT_FALSE(matcher.hasMatch("not the string-to-match"));
+}
+
+TEST(Matcher, RegularExpression) {
+ ContentsMatcher<QRegularExpression> matcher("banner\\d+", UrlFilter::RegularExpressionMatch);
+ EXPECT_TRUE(matcher.hasMatch("http://another.com/banner123"));
+ EXPECT_TRUE(matcher.hasMatch("http://another.com/banner321"));
+ EXPECT_FALSE(matcher.hasMatch("http://another.com/banners"));
+
+}
+
+int main(int argc, char **argv) {
+ testing::InitGoogleTest(&argc, argv);
+ return RUN_ALL_TESTS();
+}