From c9f52b7223685d2e7fca925594171f94dd8c6e3b Mon Sep 17 00:00:00 2001 From: TrickyLeifa Date: Wed, 15 May 2024 00:00:17 +0200 Subject: Ported to CMake, ... * Ported the project to CMake * Android and Mac support dropped for the time being. * Tests, BASS and Discord-RPC are now options * Restructured and reformated the project. * Merged `include` and `src` * Renamed `resource` to `data` * Renamed various files * External libraries headers are no longer included in `src` * Replaced header guards with #pragma once * Multiple refactors (keywords, headers) * Added Qt6 compatibility * Removed various unused functions and headers * Reworked AOPacket * When content is passed to AOPacket, it should be ensured that the content is already decoded. * Encoding/decoding are now static methods. * Fixed various memory leaks * Removed animation code for AOImage * AOImage is always using static images * Simplified ChatLogPiece --- test/test_aopacket.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'test/test_aopacket.cpp') diff --git a/test/test_aopacket.cpp b/test/test_aopacket.cpp index 0b318213..42ff778e 100644 --- a/test/test_aopacket.cpp +++ b/test/test_aopacket.cpp @@ -3,27 +3,32 @@ #include "aopacket.h" -TEST_CASE("AOPacket construct", "[aopacket]") { +TEST_CASE("AOPacket construct", "[aopacket]") +{ // Parameters QString packet_string = "CT#MY_OOC_NAME#/doc https://docs.google.com/document/d/123/edit##%"; - SECTION("Packet string") { + SECTION("Packet string") + { AOPacket p(packet_string); REQUIRE(p.to_string() == packet_string); } - SECTION("Header and contents") { + SECTION("Header and contents") + { QStringList contents = {"MY_OOC_NAME", "/doc https://docs.google.com/document/d/123/edit#"}; AOPacket p("CT", contents); REQUIRE(p.to_string() == packet_string); } } -TEST_CASE("AOPacket encode/decode", "[aopacket]") { +TEST_CASE("AOPacket encode/decode", "[aopacket]") +{ // Parameters QString packet_string = "CT#MY_OOC_NAME#/doc https://docs.google.com/document/d/%$&/edit##%"; QString good_encode = "CT#MY_OOC_NAME#/doc https://docs.google.com/document/d//edit#%"; - SECTION("Bad encode/decode because packet string constructor splits the '#' after 'edit'") { + SECTION("Bad encode/decode because packet string constructor splits the '#' after 'edit'") + { AOPacket p(packet_string); p.net_encode(); REQUIRE(p.to_string() != good_encode); @@ -32,7 +37,8 @@ TEST_CASE("AOPacket encode/decode", "[aopacket]") { REQUIRE(p.to_string() == packet_string); } - SECTION("Good encode/decode with header and contents constructor") { + SECTION("Good encode/decode with header and contents constructor") + { QStringList contents = {"MY_OOC_NAME", "/doc https://docs.google.com/document/d/%$&/edit#"}; AOPacket p("CT", contents); -- cgit From 657145035cd66c18ae777e1272fd5221dddca0ef Mon Sep 17 00:00:00 2001 From: TrickyLeifa Date: Fri, 17 May 2024 23:54:41 +0200 Subject: Reimplemented unit tests, ... * Reimplemented unit tests and simplified addition of new tests * Minimal support of Qt is now 5.15 --- test/test_aopacket.cpp | 89 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 54 insertions(+), 35 deletions(-) (limited to 'test/test_aopacket.cpp') diff --git a/test/test_aopacket.cpp b/test/test_aopacket.cpp index 42ff778e..4a24dcd3 100644 --- a/test/test_aopacket.cpp +++ b/test/test_aopacket.cpp @@ -1,51 +1,70 @@ -#define CATCH_CONFIG_MAIN -#include - #include "aopacket.h" -TEST_CASE("AOPacket construct", "[aopacket]") +#include +#include + +class test_AOPacket : public QObject { - // Parameters - QString packet_string = "CT#MY_OOC_NAME#/doc https://docs.google.com/document/d/123/edit##%"; + Q_OBJECT + +private: + const QMap SYMBOL_MAP{ + {"#", ""}, + {"%", ""}, + {"$", ""}, + {"&", ""}, + }; - SECTION("Packet string") +private Q_SLOTS: + void constructPacket_data() { - AOPacket p(packet_string); - REQUIRE(p.to_string() == packet_string); + QTest::addColumn("header"); + QTest::addColumn("content"); + QTest::addColumn("result"); + + QTest::newRow("Basic Packet") << "CT" << QStringList{"MY_OOC_NAME", "/doc https://docs.google.com/document/d/123/edit"} << "CT#MY_OOC_NAME#/doc https://docs.google.com/document/d/123/edit#%"; } - SECTION("Header and contents") + + void constructPacket() { - QStringList contents = {"MY_OOC_NAME", "/doc https://docs.google.com/document/d/123/edit#"}; - AOPacket p("CT", contents); - REQUIRE(p.to_string() == packet_string); - } -} + QFETCH(QString, header); + QFETCH(QStringList, content); + QFETCH(QString, result); -TEST_CASE("AOPacket encode/decode", "[aopacket]") -{ - // Parameters - QString packet_string = "CT#MY_OOC_NAME#/doc https://docs.google.com/document/d/%$&/edit##%"; - QString good_encode = "CT#MY_OOC_NAME#/doc https://docs.google.com/document/d//edit#%"; + AOPacket packet(header, content); + QVERIFY(packet.toString(true) == result); + } - SECTION("Bad encode/decode because packet string constructor splits the '#' after 'edit'") + void encodeDecodeData_data() { - AOPacket p(packet_string); - p.net_encode(); - REQUIRE(p.to_string() != good_encode); + QTest::addColumn("what"); + QTest::addColumn("result"); + QTest::addColumn("encode"); - p.net_decode(); - REQUIRE(p.to_string() == packet_string); + for (auto it = SYMBOL_MAP.begin(); it != SYMBOL_MAP.end(); ++it) + { + QTest::newRow(QString("Encode %1").arg(it.key()).toUtf8()) << it.key() << it.value() << true; + QTest::newRow(QString("Decode %1").arg(it.value()).toUtf8()) << it.value() << it.key() << false; + } } - SECTION("Good encode/decode with header and contents constructor") + void encodeDecodeData() { - QStringList contents = {"MY_OOC_NAME", "/doc https://docs.google.com/document/d/%$&/edit#"}; - AOPacket p("CT", contents); - - p.net_encode(); - REQUIRE(p.to_string() == good_encode); + QFETCH(QString, what); + QFETCH(QString, result); + QFETCH(bool, encode); - p.net_decode(); - REQUIRE(p.to_string() == packet_string); + if (encode) + { + QVERIFY(AOPacket::encode(what) == result); + } + else + { + QVERIFY(AOPacket::decode(what) == result); + } } -} +}; + +#include "test/test_aopacket.moc" + +QTEST_MAIN(test_AOPacket) -- cgit