#include "urlfilter.h" #include "matcher.h" #include TEST(Matcher, StringContains) { ContentsMatcher 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 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 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 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 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(); }