From badceb8dfa8b54ff6da55e9a2188da53ad1aa8e8 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Sun, 8 Apr 2018 14:52:40 +0200 Subject: Multithreading UrlRequestInterceptor - Add parse() free function to UrlRequestInterceptor - hostlists are loaded in parallel via QtConcurrent --- test/CMakeLists.txt | 17 +++++++++++++++++ test/HostlistTest.cpp | 25 +++++++++++++++++++++++++ test/HostlistTest.h | 16 ++++++++++++++++ test/autotests.qrc | 5 +++++ test/data/hostlist.txt | 2 ++ 5 files changed, 65 insertions(+) create mode 100644 test/CMakeLists.txt create mode 100644 test/HostlistTest.cpp create mode 100644 test/HostlistTest.h create mode 100644 test/autotests.qrc create mode 100644 test/data/hostlist.txt (limited to 'test') 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 +#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 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 @@ + + + data/hostlist.txt + + \ 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 -- cgit v1.2.1