aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2018-04-08 14:52:40 +0200
committerAqua-sama <aqua@iserlohn-fortress.net>2018-04-08 14:52:40 +0200
commitbadceb8dfa8b54ff6da55e9a2188da53ad1aa8e8 (patch)
tree5332436d7e74723db680d7430adf3b483e3daaae /test
parentAdd FeatureSummary to CMakeLists (diff)
downloadsmolbote-badceb8dfa8b54ff6da55e9a2188da53ad1aa8e8.tar.xz
Multithreading UrlRequestInterceptor
- Add parse() free function to UrlRequestInterceptor - hostlists are loaded in parallel via QtConcurrent
Diffstat (limited to 'test')
-rw-r--r--test/CMakeLists.txt17
-rw-r--r--test/HostlistTest.cpp25
-rw-r--r--test/HostlistTest.h16
-rw-r--r--test/autotests.qrc5
-rw-r--r--test/data/hostlist.txt2
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