22#include <QtTest/QtTest> 
   38void AdBlockTest::isMatchingCookieTest_data()
 
   41    QTest::addColumn<QString>(
"filterDomain");
 
   42    QTest::addColumn<QString>(
"siteDomain");
 
   43    QTest::addColumn<bool>(
"result");
 
   45    QTest::newRow(
"test1") << 
"example.com" << 
"www.example.com" << 
true;
 
   46    QTest::newRow(
"test2") << 
"example.com" << 
"example.com" << 
true;
 
   47    QTest::newRow(
"test3") << 
"example.com" << 
"anotherexample.com" << 
false;
 
   48    QTest::newRow(
"test4") << 
"test.example.com" << 
"example.com" << 
false;
 
   49    QTest::newRow(
"test5") << 
"www.example.com" << 
"example.com" << 
false;
 
   50    QTest::newRow(
"test_empty") << 
"www.example.com" << 
"" << 
false;
 
   51    QTest::newRow(
"test_empty2") << 
"" << 
"example.com" << 
false;
 
   54void AdBlockTest::isMatchingCookieTest()
 
   58    QFETCH(QString, filterDomain);
 
   59    QFETCH(QString, siteDomain);
 
   65void AdBlockTest::parseRegExpFilterTest_data()
 
   67    QTest::addColumn<QString>(
"parsedFilter");
 
   68    QTest::addColumn<QStringList>(
"result");
 
   70    QTest::newRow(
"test1") << 
QSL(
"||doubleclick.net/pfadx/tmg.telegraph.")
 
   71                           << (QStringList() << 
QSL(
"doubleclick.net/pfadx/tmg.telegraph."));
 
   72    QTest::newRow(
"test2") << 
QSL(
"||doubleclick.net/pfadx/*.mtvi")
 
   73                           << (QStringList() << 
QSL(
"doubleclick.net/pfadx/") << 
QSL(
".mtvi"));
 
   74    QTest::newRow(
"test3") << 
QSL(
"&prvtof=*&poru=")
 
   75                           << (QStringList() << 
QSL(
"&prvtof=") << 
QSL(
"&poru="));
 
   76    QTest::newRow(
"test4") << 
QSL(
"/addyn|*;adtech;")
 
   77                           << (QStringList() << 
QSL(
"/addyn") << 
QSL(
";adtech;"));
 
   78    QTest::newRow(
"test5") << 
QSL(
"/eas_fif.html^")
 
   79                           << (QStringList() << 
QSL(
"/eas_fif.html"));
 
   80    QTest::newRow(
"test6") << 
QSL(
"://findnsave.^.*/api/groupon.json?")
 
   81                           << (QStringList() << 
QSL(
"://findnsave.") << 
QSL(
"/api/groupon.json?"));
 
   82    QTest::newRow(
"test7") << 
QSL(
"^fp=*&prvtof=")
 
   83                           << (QStringList() << 
QSL(
"fp=") << 
QSL(
"&prvtof="));
 
   84    QTest::newRow(
"test8") << 
QSL(
"|http://ax-d.*/jstag^")
 
   85                           << (QStringList() << 
QSL(
"http://ax-d.") << 
QSL(
"/jstag"));
 
   86    QTest::newRow(
"test9") << 
QSL(
"||reuters.com^*/rcom-wt-mlt.js")
 
   87                           << (QStringList() << 
QSL(
"reuters.com") <<
QSL(
"/rcom-wt-mlt.js"));
 
   88    QTest::newRow(
"test10") << 
QSL(
"||chip.de^*/tracking.js")
 
   89                           << (QStringList() << 
QSL(
"chip.de") << 
QSL(
"/tracking.js"));
 
   90    QTest::newRow(
"ignore1char") << 
QSL(
"/search.php?uid=*.*&src=")
 
   91                           << (QStringList() << 
QSL(
"/search.php?uid=") << 
QSL(
"&src="));
 
   92    QTest::newRow(
"ignoreDuplicates") << 
QSL(
"/search.*.dup.*.dup.*&src=")
 
   93                           << (QStringList() << 
QSL(
"/search.") << 
QSL(
".dup.") << 
QSL(
"&src="));
 
   94    QTest::newRow(
"empty") << QString()
 
   96    QTest::newRow(
"justspaces") << 
QSL(
"       ")
 
   97                           << (QStringList() << 
QSL(
"       "));
 
   98    QTest::newRow(
"spacesWithMetachars") << 
QSL(
"   *    ?")
 
   99                           << (QStringList() << 
QSL(
"   ") << 
QSL(
"    ?"));
 
  102void AdBlockTest::parseRegExpFilterTest()
 
  106    QFETCH(QString, parsedFilter);
 
  107    QFETCH(QStringList, result);
 
  112void AdBlockTest::ignoreEmptyLinesInSubscriptionTest()
 
  115    subscription.setFilePath(
QSL(
":autotests/data/adblock_empty_lines.txt"));
 
  116    subscription.loadSubscription({});
 
  118    QCOMPARE(subscription.allRules().count(), 3);
 
  119    QCOMPARE(subscription.allRules().at(0)->filter(), 
QSL(
"filter.com"));
 
  120    QCOMPARE(subscription.allRules().at(1)->filter(), 
QSL(
"test"));
 
  121    QCOMPARE(subscription.allRules().at(2)->isComment(), 
true);
 
bool isMatchingDomain(const QString &domain, const QString &filter) const
 
QStringList parseRegExpFilter(const QString &parsedFilter)
 
bool isMatchingDomain(const QString &domain, const QString &filter) const
 
QStringList parseRegExpFilter(const QString &filter) const