diff options
Diffstat (limited to 'lib/adblock/test/filtertest.cpp')
-rw-r--r-- | lib/adblock/test/filtertest.cpp | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/lib/adblock/test/filtertest.cpp b/lib/adblock/test/filtertest.cpp new file mode 100644 index 0000000..c778bc7 --- /dev/null +++ b/lib/adblock/test/filtertest.cpp @@ -0,0 +1,63 @@ +#include "filtertest.h" +#include <QtTest/QtTest> +#include "../filterrule.h" +#include <QUrl> + +FilterTest::FilterTest(QObject *parent) : QObject(parent) +{ +} + +void FilterTest::initTestCase() +{ + addressRule = new FilterRule("/banner/*/img^"); + QVERIFY(addressRule->isValid() == true); + QVERIFY(addressRule->isException() == false); + + domainRule = new FilterRule("||ads.example.com^"); + QVERIFY(domainRule->isValid() == true); + QVERIFY(domainRule->isException() == false); + + exactAddressRule = new FilterRule("|http://example.com/|"); + QVERIFY(exactAddressRule->isValid() == true); + QVERIFY(exactAddressRule->isException() == false); +} + +void FilterTest::testAddressBlock() +{ + // This rule blocks: + QVERIFY(addressRule->shouldBlock(QUrl("http://example.com/banner/foo/img")) == true); + QVERIFY(addressRule->shouldBlock(QUrl("http://example.com/banner/foo/bar/img?param")) == true); + QVERIFY(addressRule->shouldBlock(QUrl("http://example.com/banner//img/foo")) == true); + + // This rule doesn't block: + QVERIFY(addressRule->shouldBlock(QUrl("http://example.com/banner/img")) == false); + QVERIFY(addressRule->shouldBlock(QUrl("http://example.com/banner/foo/imgraph")) == false); + QVERIFY(addressRule->shouldBlock(QUrl("http://example.com/banner/foo/img.gif")) == false); +} + +void FilterTest::testDomainBlock() +{ + // This rule blocks: + QVERIFY(domainRule->shouldBlock(QUrl("http://ads.example.com/foo.gif")) == true); + QVERIFY(domainRule->shouldBlock(QUrl("http://server1.ads.example.com/foo.gif")) == true); + QVERIFY(domainRule->shouldBlock(QUrl("https://ads.example.com:8000/")) == true); + + // This rule doesn't block: + QVERIFY(domainRule->shouldBlock(QUrl("http://ads.example.com.ua/foo.gif")) == false); + QVERIFY(domainRule->shouldBlock(QUrl("http://example.com/redirect/http://ads.example.com/")) == false); +} + +void FilterTest::testExactAddressBlock() +{ + // This rule blocks: + QVERIFY(exactAddressRule->shouldBlock(QUrl("http://example.com/")) == true); + + // This rule doesn't block: + QVERIFY(exactAddressRule->shouldBlock(QUrl("http://example.com/foo.gif")) == false); + QVERIFY(exactAddressRule->shouldBlock(QUrl("http://example.info/redirect/http://example.com/")) == false); +} + +void FilterTest::cleanupTestCase() +{ + delete addressRule; +} |