diff --git a/src/test/unittests/gui/LoggerTests.cpp b/src/test/unittests/gui/LoggerTests.cpp deleted file mode 100644 index 8ead4627f..000000000 --- a/src/test/unittests/gui/LoggerTests.cpp +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Deskflow -- mouse and keyboard sharing utility - * SPDX-FileCopyrightText: (C) 2024 Symless Ltd. - * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception - */ - -#include "gui/Logger.h" - -#include "gmock/gmock.h" -#include - -using namespace testing; -using namespace deskflow::gui; - -TEST(LoggerTests, handleMessage_withDebugEnvVarOn_emitsNewLine) -{ - Logger logger; - std::string newLineEmitted; - QObject::connect( - &logger, &Logger::newLine, // - [&newLineEmitted](const QString &line) { newLineEmitted = line.toStdString(); } - ); - qputenv("DESKFLOW_GUI_DEBUG", "true"); - logger.loadEnvVars(); - - logger.handleMessage(QtDebugMsg, "stub", "test"); - - EXPECT_THAT(newLineEmitted, HasSubstr("test")); - - qputenv("DESKFLOW_GUI_DEBUG", ""); -} - -TEST(LoggerTests, handleMessage_withDebugEnvVarOff_doesNotEmitNewLine) -{ - Logger logger; - bool newLineEmitted = false; - QObject::connect( - &logger, &Logger::newLine, // - [&newLineEmitted](const QString &line) { newLineEmitted = true; } - ); - qputenv("DESKFLOW_GUI_DEBUG", "false"); - logger.loadEnvVars(); - - logger.handleMessage(QtDebugMsg, "stub", "test"); - - EXPECT_FALSE(newLineEmitted); - - qputenv("DESKFLOW_GUI_DEBUG", ""); -} diff --git a/src/unittests/gui/CMakeLists.txt b/src/unittests/gui/CMakeLists.txt index 73bd98cea..2146b5570 100644 --- a/src/unittests/gui/CMakeLists.txt +++ b/src/unittests/gui/CMakeLists.txt @@ -9,3 +9,10 @@ create_test( SOURCE DotEnvTests.cpp WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/src/lib/gui" ) + +create_test( + NAME LoggerTests + DEPENDS gui + SOURCE LoggerTests.cpp + WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/src/lib/gui" +) diff --git a/src/unittests/gui/LoggerTests.cpp b/src/unittests/gui/LoggerTests.cpp new file mode 100644 index 000000000..674149d1e --- /dev/null +++ b/src/unittests/gui/LoggerTests.cpp @@ -0,0 +1,49 @@ +/* + * Deskflow -- mouse and keyboard sharing utility + * SPDX-FileCopyrightText: (C) 2025 Chris Rizzitello + * SPDX-FileCopyrightText: (C) 2024 Symless Ltd. + * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception + */ + +#include "LoggerTests.h" + +#include "../../lib/gui/Logger.h" + +#include + +using namespace deskflow::gui; + +void LoggerTests::newLine() +{ + Logger logger; + + QSignalSpy spy(&logger, &Logger::newLine); + QVERIFY(spy.isValid()); + + qputenv("DESKFLOW_GUI_DEBUG", "true"); + logger.loadEnvVars(); + + logger.handleMessage(QtDebugMsg, "stub", "test"); + + QCOMPARE(spy.count(), 1); + QVERIFY(qvariant_cast(spy.takeFirst().at(0)).contains("test")); + qputenv("DESKFLOW_GUI_DEBUG", ""); +} + +void LoggerTests::noNewLine() +{ + Logger logger; + bool newLineEmitted = false; + + QSignalSpy spy(&logger, &Logger::newLine); + QVERIFY(spy.isValid()); + + qputenv("DESKFLOW_GUI_DEBUG", "false"); + logger.loadEnvVars(); + logger.handleMessage(QtDebugMsg, "stub", "test"); + QCOMPARE(spy.count(), 0); + QVERIFY(!newLineEmitted); + qputenv("DESKFLOW_GUI_DEBUG", ""); +} + +QTEST_MAIN(LoggerTests) diff --git a/src/unittests/gui/LoggerTests.h b/src/unittests/gui/LoggerTests.h new file mode 100644 index 000000000..5fb80ef90 --- /dev/null +++ b/src/unittests/gui/LoggerTests.h @@ -0,0 +1,16 @@ +/* + * 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 LoggerTests : public QObject +{ + Q_OBJECT +private slots: + // Test are run in order top to bottom + void newLine(); + void noNewLine(); +};