#include "adblocktest.h" #include #include "formats/adblockrule.h" void AdBlockTest::parseRule() { FilterLeaf *rule = loadRule("spamdomain"); QCOMPARE(rule != nullptr, true); } /*void AdBlockTest::parseList() { std::vector rules; QFile list("adblock.txt"); int ruleCount = 0; QCOMPARE(list.open(QIODevice::ReadOnly | QIODevice::Text), true); { QTextStream l(&list); QString line; while(l.readLineInto(&line)) { AdBlockRule rule(line); if(rule.isEnabled()) { rules.emplace_back(std::move(rule)); ruleCount++; qDebug("added rule: %s", qUtf8Printable(line)); } } } list.close(); // there should be 3 rules QCOMPARE(rules.size(), ruleCount); // block by address part QCOMPARE(check(rules, QUrl("http://example.com/banner/foo/img")), true); QCOMPARE(check(rules, QUrl("http://example.com/banner/foo/bar/img?param")), true); QCOMPARE(check(rules, QUrl("http://example.com/banner//img/foo")), true); QCOMPARE(check(rules, QUrl("http://example.com/banner/img")), false); QCOMPARE(check(rules, QUrl("http://example.com/banner/foo/imgraph")), false); QCOMPARE(check(rules, QUrl("http://example.com/banner/foo/img.gif")), false); // block by domain QCOMPARE(check(rules, QUrl("http://ads.example.com/foo.gif")), true); QCOMPARE(check(rules, QUrl("http://server1.ads.example.com/foo.gif")), true); QCOMPARE(check(rules, QUrl("https://ads.example.com:8000/")), true); 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)