From 63e87c16d13fae0e5fe9c270556417403796ee70 Mon Sep 17 00:00:00 2001 From: sithlord48 Date: Fri, 9 May 2025 23:18:26 -0400 Subject: [PATCH] refactor: port ServerAppTests to QtTests --- src/unittests/deskflow/CMakeLists.txt | 10 ++++ src/unittests/deskflow/ServerAppTests.cpp | 40 ++++++++++++++ src/unittests/deskflow/ServerAppTests.h | 15 ++++++ .../legacytests/deskflow/ServerAppTests.cpp | 53 ------------------- 4 files changed, 65 insertions(+), 53 deletions(-) create mode 100644 src/unittests/deskflow/ServerAppTests.cpp create mode 100644 src/unittests/deskflow/ServerAppTests.h delete mode 100644 src/unittests/legacytests/legacytests/deskflow/ServerAppTests.cpp diff --git a/src/unittests/deskflow/CMakeLists.txt b/src/unittests/deskflow/CMakeLists.txt index d09065bd9..418ea68be 100644 --- a/src/unittests/deskflow/CMakeLists.txt +++ b/src/unittests/deskflow/CMakeLists.txt @@ -61,7 +61,17 @@ create_test( WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/src/lib/deskflow" ) + if(UNIX AND NOT APPLE) + #this test does not work properly on windows / mac os + create_test( + NAME ServerAppTests + DEPENDS app + LIBS arch base + SOURCE ServerAppTests.cpp + WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/src/lib/deskflow" + ) + create_test( NAME X11LayoutParserTests DEPENDS app diff --git a/src/unittests/deskflow/ServerAppTests.cpp b/src/unittests/deskflow/ServerAppTests.cpp new file mode 100644 index 000000000..7fb4f7ce8 --- /dev/null +++ b/src/unittests/deskflow/ServerAppTests.cpp @@ -0,0 +1,40 @@ +/* + * Deskflow -- mouse and keyboard sharing utility + * SPDX-FileCopyrightText: (C) 2025 Chris Rizzitello + * SPDX-FileCopyrightText: (C) 2014 - 2016 Symless Ltd. + * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception + */ + +#include "ServerAppTests.h" + +#include "deskflow/ServerApp.h" +#include "deskflow/ServerArgs.h" + +#include + +class MockServerApp : public ServerApp +{ +public: + MockServerApp() : ServerApp(nullptr) + { + } +}; + +void ServerAppTests::version() +{ + MockServerApp app; + QVERIFY(!app.args().m_config); + + std::stringstream buffer; + std::streambuf *old = std::cout.rdbuf(buffer.rdbuf()); + + app.version(); + + std::cout.rdbuf(old); + + static QRegularExpression yearReg(".*[0-9]{4}-[0-9]{4} Deskflow Devs.*"); + auto result = yearReg.match(QString::fromLatin1(buffer.str())); + QVERIFY(result.hasMatch()); +} + +QTEST_MAIN(ServerAppTests) diff --git a/src/unittests/deskflow/ServerAppTests.h b/src/unittests/deskflow/ServerAppTests.h new file mode 100644 index 000000000..1f421fb48 --- /dev/null +++ b/src/unittests/deskflow/ServerAppTests.h @@ -0,0 +1,15 @@ +/* + * Deskflow -- mouse and keyboard sharing utility + * SPDX-FileCopyrightText: (C) 2025 Chris Rizzitello + * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception + */ + +#include + +class ServerAppTests : public QObject +{ + Q_OBJECT +private slots: + // Test are run in order top to bottom + void version(); +}; diff --git a/src/unittests/legacytests/legacytests/deskflow/ServerAppTests.cpp b/src/unittests/legacytests/legacytests/deskflow/ServerAppTests.cpp deleted file mode 100644 index a575e43c1..000000000 --- a/src/unittests/legacytests/legacytests/deskflow/ServerAppTests.cpp +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Deskflow -- mouse and keyboard sharing utility - * SPDX-FileCopyrightText: (C) 2014 - 2016 Symless Ltd. - * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception - */ - -#include "deskflow/ArgParser.h" -#include "deskflow/ServerApp.h" -#include "deskflow/ServerArgs.h" - -#include -#include - -using ::testing::NiceMock; - -class MockServerApp : public ServerApp -{ -public: - MockServerApp() : ServerApp(nullptr) - { - } -}; - -TEST(ServerAppTests, runInner_will_handle_configuration_lifetime) -{ - NiceMock app; - - EXPECT_FALSE(app.args().m_config); - - const char *argv[]{"deskflow-server"}; - app.runInner(1, const_cast(argv), [](int, char **) { return 0; }); - - EXPECT_TRUE(app.args().m_config); -} - -TEST(ServerAppTests, version_printsYear) -{ - NiceMock app; - std::stringstream buffer; - std::streambuf *old = std::cout.rdbuf(buffer.rdbuf()); - - app.version(); - - std::cout.rdbuf(old); - -#ifdef WIN32 - // regex is god awful on windows, so just check that there is a copyright - EXPECT_THAT(buffer.str(), testing::HasSubstr("Deskflow Devs")); -#else - std::string expectedPattern = ".*[0-9]{4}-[0-9]{4} Deskflow Devs.*"; - EXPECT_THAT(buffer.str(), testing::MatchesRegex(expectedPattern)); -#endif // WIN32 -}