From 7d8cbdb9941532cd5bf560b21395f6ed371d1ab5 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Mon, 1 Oct 2018 16:43:18 +0200 Subject: Split off UrlFilter into library - add more adblock filter options --- test/urlfilter/adblocktest.cpp | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'test/urlfilter') diff --git a/test/urlfilter/adblocktest.cpp b/test/urlfilter/adblocktest.cpp index 416bc20..b31d965 100644 --- a/test/urlfilter/adblocktest.cpp +++ b/test/urlfilter/adblocktest.cpp @@ -1,11 +1,12 @@ #include "adblocktest.h" #include -#include "urlfilter/adblockrule.h" +#include "filterrule.h" +#include "formats/adblockrule.h" -inline bool check(const std::vector rules, const QUrl &url) +inline bool check(const std::vector rules, const QUrl &url) { - for(const FilterRule &rule : rules) { - if(rule.matchesDomain(url.host()) && rule.matchesUrl(url)) + for(const AdBlockRule &rule : rules) { + if(rule.matchesDomain(qHash(url.host())) && rule.matchesUrl(url)) return true; } return false; @@ -13,9 +14,10 @@ inline bool check(const std::vector rules, const QUrl &url) void AdBlockTest::parseList() { - std::vector rules; + std::vector rules; QFile list("adblock.txt"); + int ruleCount = 0; QCOMPARE(list.open(QIODevice::ReadOnly | QIODevice::Text), true); { QTextStream l(&list); @@ -24,6 +26,7 @@ void AdBlockTest::parseList() AdBlockRule rule(line); if(rule.isEnabled()) { rules.emplace_back(std::move(rule)); + ruleCount++; qDebug("added rule: %s", qUtf8Printable(line)); } } @@ -31,7 +34,7 @@ void AdBlockTest::parseList() list.close(); // there should be 3 rules - QCOMPARE(rules.size(), 3); + QCOMPARE(rules.size(), ruleCount); // block by address part QCOMPARE(check(rules, QUrl("http://example.com/banner/foo/img")), true); @@ -48,11 +51,15 @@ void AdBlockTest::parseList() QCOMPARE(check(rules, QUrl("http://ads.example.com.ua/foo.gif")), false); QCOMPARE(check(rules, QUrl("http://example.com/redirect/http://ads.example.com/")), false); - // block exact address QCOMPARE(check(rules, QUrl("http://example.com/")), true); QCOMPARE(check(rules, QUrl("http://example.com/foo.gif")), false); QCOMPARE(check(rules, QUrl("http://example.info/redirect/http://example.com/")), false); + + // regular expression + QCOMPARE(check(rules, QUrl("http://another.com/banner123")), true); + QCOMPARE(check(rules, QUrl("http://another.com/banner321")), true); + QCOMPARE(check(rules, QUrl("http://another.com/banners")), false); } QTEST_GUILESS_MAIN(AdBlockTest) -- cgit v1.2.1