/*! * \brief Unit tests for \ref LogHandler * * \copyright Copyright (c) 2014-2018 Governikus GmbH & Co. KG, Germany */ #include "LogHandler.h" #include using namespace governikus; class test_LogHandler : public QObject { Q_OBJECT private Q_SLOTS: void initTestCase() { Env::getSingleton()->init(); } void cleanup() { Env::getSingleton()->resetBacklog(); } void benchmark() { QBENCHMARK { qDebug() << "Add some dummy" << "messages" << "in different" << "strings"; } } void checkBacklog() { Env::getSingleton()->resetBacklog(); QByteArray blog = Env::getSingleton()->getBacklog(); QCOMPARE(blog.size(), 0); QByteArray msg("dummy message with some useless information ... 123456"); qDebug() << msg; blog = Env::getSingleton()->getBacklog(); QVERIFY(blog.size() > 0); QVERIFY(blog.contains(msg)); Env::getSingleton()->resetBacklog(); blog = Env::getSingleton()->getBacklog(); QCOMPARE(blog.size(), 0); } void fireLog() { QSignalSpy spy(Env::getSingleton(), &LogHandler::fireLog); qDebug() << "hallo"; qDebug() << "test nachricht"; QCOMPARE(spy.count(), 2); auto param1 = spy.takeFirst(); auto param2 = spy.takeLast(); #ifdef Q_OS_WIN const QLatin1String lineBreak("\r\n"); #else const QLatin1Char lineBreak('\n'); #endif QVERIFY(param1.at(0).toString().endsWith(QStringLiteral("hallo") + lineBreak)); QVERIFY(param2.at(0).toString().endsWith(QStringLiteral("test nachricht") + lineBreak)); } void otherLogFilesWithoutCurrent() { auto list = Env::getSingleton()->getOtherLogfiles(); QVERIFY(!list.contains(Env::getSingleton()->mLogFile)); } void debugStream() { QSignalSpy spy(Env::getSingleton(), &LogHandler::fireLog); qDebug() << *Env::getSingleton(); QCOMPARE(spy.count(), 1); auto param = spy.takeFirst(); QVERIFY(param.at(0).toString().contains(Env::getSingleton()->mLogFile.fileName())); } void copyFile() { qDebug() << "dummy"; QVERIFY(!Env::getSingleton()->copy(QString())); QVERIFY(!Env::getSingleton()->copy(QStringLiteral(" "))); } void initReset() { QVERIFY(Env::getSingleton()->isInitialized()); QSignalSpy spy(Env::getSingleton(), &LogHandler::fireLog); qDebug() << "dummy"; QCOMPARE(spy.count(), 1); const auto& backlog = Env::getSingleton()->getBacklog(); QVERIFY(!backlog.isEmpty()); spy.clear(); Env::getSingleton()->reset(); QVERIFY(!Env::getSingleton()->isInitialized()); qDebug() << "dummy"; QCOMPARE(spy.count(), 0); QCOMPARE(Env::getSingleton()->getBacklog(), backlog); Env::getSingleton()->init(); QVERIFY(Env::getSingleton()->isInitialized()); qDebug() << "dummy"; QCOMPARE(spy.count(), 1); QVERIFY(Env::getSingleton()->getBacklog().size() > backlog.size()); } void useLogfile() { const auto& logger = Env::getSingleton(); logger->resetBacklog(); QVERIFY(logger->useLogfile()); // will backlog qDebug() << "dummy"; QVERIFY(logger->getBacklog().contains(QByteArrayLiteral("dummy"))); // enable already enabled one logger->setLogfile(true); QVERIFY(logger->useLogfile()); QVERIFY(logger->getBacklog().contains(QByteArrayLiteral("dummy"))); // disable it logger->setLogfile(false); qDebug() << "another dummy"; QVERIFY(!logger->useLogfile()); QVERIFY(logger->getBacklog().isNull()); QVERIFY(!logger->getCurrentLogfileDate().isValid()); logger->resetBacklog(); QVERIFY(logger->getBacklog().isNull()); // disable already disabled one logger->setLogfile(false); QVERIFY(!logger->useLogfile()); QVERIFY(logger->getBacklog().isNull()); QVERIFY(!logger->getCurrentLogfileDate().isValid()); // enable again logger->setLogfile(true); QVERIFY(logger->getBacklog().isEmpty()); qDebug() << "another yummy"; QVERIFY(logger->useLogfile()); QVERIFY(logger->getBacklog().contains(QByteArrayLiteral("another yummy"))); QVERIFY(logger->getCurrentLogfileDate().isValid()); } }; QTEST_GUILESS_MAIN(test_LogHandler) #include "test_LogHandler.moc"