1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#include "hostlisttest.h"
#include <QtTest/QtTest>
void HostlistTest::parseList()
{
//FilterTree tree;
// load filters
QFile hostlist("hostlist.txt");
QCOMPARE(hostlist.open(QIODevice::ReadOnly | QIODevice::Text), true);
QCOMPARE(loadHostlist(hostlist, &tree), true);
QCOMPARE(tree.branches().length(), 1);
}
void HostlistTest::checkRules()
{
// test block
QVector<const FilterLeaf *> block = tree.match(QString(), "blockeddomain.com");
QCOMPARE(block.length(), 1);
QCOMPARE(block.constFirst()->action(), FilterLeaf::Block);
// test redirect
QVector<const FilterLeaf *> redirectResult = tree.match(QString(), "localhost.localdomain");
QCOMPARE(redirectResult.length(), 1);
QCOMPARE(redirectResult.at(0)->action(), FilterLeaf::Redirect);
QCOMPARE(redirectResult.at(0)->redirect(), "127.0.0.1");
// two domains on one line
QVector<const FilterLeaf *> blockFirst = tree.match(QString(), "blockeddomain.first");
QCOMPARE(blockFirst.length(), 1);
QCOMPARE(blockFirst.constFirst()->action(), FilterLeaf::Block);
QVector<const FilterLeaf *> blockSecond = tree.match(QString(), "blockeddomain.second");
QCOMPARE(blockSecond.length(), 1);
QCOMPARE(blockSecond.constFirst()->action(), FilterLeaf::Block);
// domain not on list
QVector<const FilterLeaf *> missing = tree.match(QString(), "other.domain");
QCOMPARE(missing.length(), 0);
}
QTEST_GUILESS_MAIN(HostlistTest)
|