From baaa02cda2542d0c161e473d6be22cf9b4c2e439 Mon Sep 17 00:00:00 2001 From: sithlord48 Date: Thu, 3 Apr 2025 09:33:53 -0400 Subject: [PATCH] refactor: port deskflow/LanguageMangerTests to QtTests --- src/unittests/deskflow/CMakeLists.txt | 10 +++++ .../deskflow}/LanguageManagerTests.cpp | 38 +++++++++++-------- src/unittests/deskflow/LanguageManagerTests.h | 26 +++++++++++++ 3 files changed, 59 insertions(+), 15 deletions(-) rename src/{test/unittests/deskflow/languages => unittests/deskflow}/LanguageManagerTests.cpp (51%) create mode 100644 src/unittests/deskflow/LanguageManagerTests.h diff --git a/src/unittests/deskflow/CMakeLists.txt b/src/unittests/deskflow/CMakeLists.txt index b2333b22e..d89c6ff8e 100644 --- a/src/unittests/deskflow/CMakeLists.txt +++ b/src/unittests/deskflow/CMakeLists.txt @@ -12,3 +12,13 @@ create_test( SOURCE ConfigTests.cpp WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/src/lib/deskflow" ) + +create_test( + NAME LanguageManagerTests + DEPENDS app + LIBS arch base ${extra_libs} + SOURCE LanguageManagerTests.cpp + WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/src/lib/deskflow" +) + + diff --git a/src/test/unittests/deskflow/languages/LanguageManagerTests.cpp b/src/unittests/deskflow/LanguageManagerTests.cpp similarity index 51% rename from src/test/unittests/deskflow/languages/LanguageManagerTests.cpp rename to src/unittests/deskflow/LanguageManagerTests.cpp index be7fb7c23..4a805a2ad 100644 --- a/src/test/unittests/deskflow/languages/LanguageManagerTests.cpp +++ b/src/unittests/deskflow/LanguageManagerTests.cpp @@ -1,56 +1,64 @@ /* * Deskflow -- mouse and keyboard sharing utility + * SPDX-FileCopyrightText: (C) 2025 Chris Rizzitello * SPDX-FileCopyrightText: (C) 2014 - 2024 Symless Ltd. * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception */ -#include "deskflow/languages/LanguageManager.h" +#include "LanguageManagerTests.h" -#include +#include "../../lib/deskflow/languages/LanguageManager.h" -TEST(LanguageManager, RemoteLanguagesTest) +void LanguageManagerTests::initTestCase() +{ + m_arch.init(); + m_log.setFilter(kDEBUG2); +} + +void LanguageManagerTests::remoteLanguages() { std::string remoteLanguages = "ruenuk"; deskflow::languages::LanguageManager manager({"ru", "en", "uk"}); manager.setRemoteLanguages(remoteLanguages); - EXPECT_EQ((std::vector{"ru", "en", "uk"}), manager.getRemoteLanguages()); + QCOMPARE(manager.getRemoteLanguages(), (std::vector{"ru", "en", "uk"})); manager.setRemoteLanguages(std::string()); - EXPECT_TRUE(manager.getRemoteLanguages().empty()); + QVERIFY(manager.getRemoteLanguages().empty()); } -TEST(LanguageManager, LocalLanguagesTest) +void LanguageManagerTests::localLanguage() { std::vector localLanguages = {"ru", "en", "uk"}; deskflow::languages::LanguageManager manager(localLanguages); - - EXPECT_EQ((std::vector{"ru", "en", "uk"}), manager.getLocalLanguages()); + QCOMPARE(manager.getLocalLanguages(), (std::vector{"ru", "en", "uk"})); } -TEST(LanguageManager, MissedLanguagesTest) +void LanguageManagerTests::missedLanguage() { std::string remoteLanguages = "ruenuk"; std::vector localLanguages = {"en"}; deskflow::languages::LanguageManager manager(localLanguages); manager.setRemoteLanguages(remoteLanguages); - EXPECT_EQ("ru, uk", manager.getMissedLanguages()); + QCOMPARE(manager.getMissedLanguages(), "ru, uk"); } -TEST(LanguageManager, SerializeLocalLanguagesTest) +void LanguageManagerTests::languageInstall() { std::vector localLanguages = {"ru", "en", "uk"}; deskflow::languages::LanguageManager manager(localLanguages); - EXPECT_EQ("ruenuk", manager.getSerializedLocalLanguages()); + QVERIFY(!manager.isLanguageInstalled("us")); + QVERIFY(manager.isLanguageInstalled("en")); } -TEST(LanguageManager, LanguageInstalledTest) +void LanguageManagerTests::serializeLocalLanguages() { std::vector localLanguages = {"ru", "en", "uk"}; deskflow::languages::LanguageManager manager(localLanguages); - EXPECT_FALSE(manager.isLanguageInstalled("us")); - EXPECT_TRUE(manager.isLanguageInstalled("en")); + QCOMPARE(manager.getSerializedLocalLanguages(), "ruenuk"); } + +QTEST_MAIN(LanguageManagerTests) diff --git a/src/unittests/deskflow/LanguageManagerTests.h b/src/unittests/deskflow/LanguageManagerTests.h new file mode 100644 index 000000000..88bfe5f09 --- /dev/null +++ b/src/unittests/deskflow/LanguageManagerTests.h @@ -0,0 +1,26 @@ +/* + * Deskflow -- mouse and keyboard sharing utility + * SPDX-FileCopyrightText: (C) 2025 Chris Rizzitello + * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception + */ + +#include "base/Log.h" + +#include + +class LanguageManagerTests : public QObject +{ + Q_OBJECT +private slots: + void initTestCase(); + // Test are run in order top to bottom + void remoteLanguages(); + void localLanguage(); + void missedLanguage(); + void serializeLocalLanguages(); + void languageInstall(); + +private: + Arch m_arch; + Log m_log; +};