From 3ad0b92dcd8eda0ca1e9a718605c20344bb45340 Mon Sep 17 00:00:00 2001 From: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com> Date: Wed, 31 Jan 2024 13:07:26 -0500 Subject: [PATCH] link-preview: use non-ASCII UTF-8 characters in a UTF-8 test Non-ASCII characters in UTF-8 are encoded with multiple bytes. Testing with these characters ensures that the decoder correctly interprets multi-byte sequences. Gitlab: #1536 Change-Id: I0a92ee91b6cd26d70daab1f9baef3a9577aee02e --- tests/unittests/previewengine_unittest.cpp | 25 +++++++++++----------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/tests/unittests/previewengine_unittest.cpp b/tests/unittests/previewengine_unittest.cpp index 70808dfd2..1f87aaa7a 100644 --- a/tests/unittests/previewengine_unittest.cpp +++ b/tests/unittests/previewengine_unittest.cpp @@ -24,15 +24,17 @@ class PreviewEngineFixture : public ::testing::Test public: // Prepare unit test context. Called at // prior each unit test execution - void SetUp() override { + void SetUp() override + { server = new QHttpServer(); // Setup a server that can return an HTML body. server->listen(QHostAddress::LocalHost, 8000); } - // Close unit test context. Called - // after each unit test ending - void TearDown() override { + // Close unit test context. Called + // after each unit test ending + void TearDown() override + { delete server; } @@ -47,9 +49,8 @@ public: TEST_F(PreviewEngineFixture, ParsingALinkEmitsInfoReadySignal) { auto link = QString("http://localhost:8000/test"); - server->route("/test", [] () { - return QString("<meta property=\"og:title\" content=\"Test title\">"); - }); + server->route("/test", + []() { return QString("<meta property=\"og:title\" content=\"Test title\">"); }); QSignalSpy infoReadySpy(globalEnv.previewEngine.data(), &PreviewEngine::infoReady); @@ -70,14 +71,14 @@ TEST_F(PreviewEngineFixture, ParsingALinkEmitsInfoReadySignal) */ TEST_F(PreviewEngineFixture, UTF8CharactersAreParsedCorrectly) { - auto link = QString("http://localhost:8000/test"); - server->route("/test", [] () { - return QString("<meta property=\"og:description\" content=\"Test de caractères Utf-8"); + const auto testString = QString("liberté 自由 自由 свобода Szabadság ŐőŰű 자유 😊 € è ñ"); + server->route("/test", [&]() { + return QString("<meta property=\"og:description\" content=\"%1\">").arg(testString); }); QSignalSpy infoReadySpy(globalEnv.previewEngine.data(), &PreviewEngine::infoReady); - Q_EMIT globalEnv.previewEngine->parseLink("msgId_01", link); + Q_EMIT globalEnv.previewEngine->parseLink("msgId_01", "http://localhost:8000/test"); // Wait for the infoReady signal which should be emitted once. infoReadySpy.wait(); @@ -89,5 +90,5 @@ TEST_F(PreviewEngineFixture, UTF8CharactersAreParsedCorrectly) // Check that the description is parsed correctly. QVariantMap info = infoReadyArguments.at(1).toMap(); EXPECT_TRUE(info.contains("description")); - EXPECT_EQ(info["description"].toString(), "Test de caractères Utf-8"); + EXPECT_EQ(info["description"].toString(), testString); } -- GitLab