diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/CMakeLists.txt | 17 | ||||
-rw-r--r-- | test/HostlistTest.cpp | 25 | ||||
-rw-r--r-- | test/HostlistTest.h | 16 | ||||
-rw-r--r-- | test/autotests.qrc | 5 | ||||
-rw-r--r-- | test/data/hostlist.txt | 2 |
5 files changed, 65 insertions, 0 deletions
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 0000000..29c95ff --- /dev/null +++ b/test/CMakeLists.txt @@ -0,0 +1,17 @@ +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) + +macro(create_test testname) + add_executable(${testname} + ${testname}.cpp ${testname}.h + autotests.qrc + ${ARGN}) + + target_include_directories(${testname} PRIVATE ../src) + target_link_libraries(${testname} Qt5::Test Qt5::Concurrent Qt5::WebEngineWidgets) + + add_test(NAME smolbote-${testname} COMMAND ${testname}) +endmacro() + +create_test(HostlistTest ../src/webengine/urlinterceptor.cpp ../src/webengine/urlinterceptor.h)
\ No newline at end of file diff --git a/test/HostlistTest.cpp b/test/HostlistTest.cpp new file mode 100644 index 0000000..31ae11c --- /dev/null +++ b/test/HostlistTest.cpp @@ -0,0 +1,25 @@ +#include "HostlistTest.h" + +void HostlistTest::initTestCase() +{ + rules = parse(":/autotests/data/hostlist.txt"); +} + +void HostlistTest::parse_ruleCount() +{ + QVERIFY(rules.count() == 3); +} + +void HostlistTest::parse_blockSomehost() +{ + QVERIFY(rules.contains("somehost.org")); + QVERIFY(rules.value("somehost.org").isBlocking); +} + +void HostlistTest::parse_blockHost2() +{ + QVERIFY(rules.contains("host2.org")); + QVERIFY(rules.value("host2.org").isBlocking); +} + +QTEST_MAIN(HostlistTest) diff --git a/test/HostlistTest.h b/test/HostlistTest.h new file mode 100644 index 0000000..dcfd5a3 --- /dev/null +++ b/test/HostlistTest.h @@ -0,0 +1,16 @@ +#include <QtTest/QtTest> +#include "webengine/urlinterceptor.h" + +class HostlistTest : public QObject +{ + Q_OBJECT + +private slots: + void initTestCase(); + void parse_ruleCount(); + void parse_blockSomehost(); + void parse_blockHost2(); + +private: + QHash<QString, UrlRequestInterceptor::HostRule> rules; +}; diff --git a/test/autotests.qrc b/test/autotests.qrc new file mode 100644 index 0000000..5817c00 --- /dev/null +++ b/test/autotests.qrc @@ -0,0 +1,5 @@ +<RCC> + <qresource prefix="/autotests"> + <file>data/hostlist.txt</file> + </qresource> +</RCC>
\ No newline at end of file diff --git a/test/data/hostlist.txt b/test/data/hostlist.txt new file mode 100644 index 0000000..d228e1d --- /dev/null +++ b/test/data/hostlist.txt @@ -0,0 +1,2 @@ +0.0.0.0 somehost.org +0.0.0.0 host1.org host2.org |