refactor: port deskflow/LanguageMangerTests to QtTests

This commit is contained in:
sithlord48
2025-04-03 09:33:53 -04:00
committed by Nick Bolton
parent 231e5c0bc5
commit baaa02cda2
3 changed files with 59 additions and 15 deletions

View File

@ -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"
)

View File

@ -1,56 +1,64 @@
/*
* Deskflow -- mouse and keyboard sharing utility
* SPDX-FileCopyrightText: (C) 2025 Chris Rizzitello <sithlord48@gmail.com>
* 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 <gtest/gtest.h>
#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<std::string>{"ru", "en", "uk"}), manager.getRemoteLanguages());
QCOMPARE(manager.getRemoteLanguages(), (std::vector<std::string>{"ru", "en", "uk"}));
manager.setRemoteLanguages(std::string());
EXPECT_TRUE(manager.getRemoteLanguages().empty());
QVERIFY(manager.getRemoteLanguages().empty());
}
TEST(LanguageManager, LocalLanguagesTest)
void LanguageManagerTests::localLanguage()
{
std::vector<std::string> localLanguages = {"ru", "en", "uk"};
deskflow::languages::LanguageManager manager(localLanguages);
EXPECT_EQ((std::vector<std::string>{"ru", "en", "uk"}), manager.getLocalLanguages());
QCOMPARE(manager.getLocalLanguages(), (std::vector<std::string>{"ru", "en", "uk"}));
}
TEST(LanguageManager, MissedLanguagesTest)
void LanguageManagerTests::missedLanguage()
{
std::string remoteLanguages = "ruenuk";
std::vector<std::string> 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<std::string> 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<std::string> 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)

View File

@ -0,0 +1,26 @@
/*
* Deskflow -- mouse and keyboard sharing utility
* SPDX-FileCopyrightText: (C) 2025 Chris Rizzitello <sithlord48@gmail.com>
* SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
*/
#include "base/Log.h"
#include <QTest>
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;
};