/*! * \brief Unit tests for \ref GeneralSettings * * \copyright Copyright (c) 2014-2019 Governikus GmbH & Co. KG, Germany */ #include #include #include #include #include "GeneralSettings.h" using namespace governikus; class test_GeneralSettings : public QObject { Q_OBJECT QScopedPointer mSettings; private Q_SLOTS: void init() { AbstractSettings::mTestDir.clear(); mSettings.reset(new GeneralSettings()); } void testAutoCloseWindowAfterAuthentication() { bool initial = mSettings->isAutoCloseWindowAfterAuthentication(); bool newValue = !initial; mSettings->setAutoCloseWindowAfterAuthentication(newValue); QCOMPARE(mSettings->isAutoCloseWindowAfterAuthentication(), newValue); mSettings->save(); mSettings->setAutoCloseWindowAfterAuthentication(initial); QCOMPARE(mSettings->isAutoCloseWindowAfterAuthentication(), initial); mSettings->save(); } void testAutoCheck() { bool initial = mSettings->isAutoUpdateCheck(); mSettings->setAutoUpdateCheck(!initial); QCOMPARE(mSettings->isAutoUpdateCheck(), !initial); mSettings->save(); mSettings->setAutoUpdateCheck(initial); QCOMPARE(mSettings->isAutoUpdateCheck(), initial); mSettings->save(); } void testAutoStart() { #if defined(Q_OS_WIN) || defined(Q_OS_MACOS) bool initial = mSettings->isAutoStart(); mSettings->setAutoStart(!initial); QCOMPARE(mSettings->isAutoStart(), !initial); mSettings->save(); mSettings->setAutoStart(initial); QCOMPARE(mSettings->isAutoStart(), initial); mSettings->save(); #else QSKIP("Autostart currently only on windows and mac os"); #endif } void testUseScreenKeyboard() { bool initial = mSettings->isUseScreenKeyboard(); mSettings->setUseScreenKeyboard(!initial); QCOMPARE(mSettings->isUseScreenKeyboard(), !initial); mSettings->save(); mSettings->setUseScreenKeyboard(initial); QCOMPARE(mSettings->isUseScreenKeyboard(), initial); mSettings->save(); } void testDefaultValues() { QCOMPARE(mSettings->isAutoCloseWindowAfterAuthentication(), true); QCOMPARE(mSettings->isAutoStart(), GENERAL_SETTINGS_DEFAULT_AUTOSTART); QCOMPARE(mSettings->isAutoUpdateCheck(), true); QCOMPARE(mSettings->isUseScreenKeyboard(), false); QCOMPARE(mSettings->isShowSetupAssistant(), true); QCOMPARE(mSettings->isRemindUserToClose(), true); QCOMPARE(mSettings->isTransportPinReminder(), true); QCOMPARE(mSettings->getPersistentSettingsVersion(), QString()); QCOMPARE(mSettings->isDeveloperMode(), false); QCOMPARE(mSettings->useSelfAuthTestUri(), false); QCOMPARE(mSettings->getLastReaderPluginType(), QString()); } void testRemindStartupWizard() { bool initial = mSettings->isShowSetupAssistant(); bool newValue = !initial; mSettings->setShowSetupAssistant(newValue); QCOMPARE(mSettings->isShowSetupAssistant(), newValue); mSettings->save(); mSettings->setShowSetupAssistant(initial); QCOMPARE(mSettings->isShowSetupAssistant(), initial); mSettings->save(); } void testRemindUserToClose() { bool initial = mSettings->isRemindUserToClose(); bool newValue = !initial; mSettings->setRemindUserToClose(newValue); QCOMPARE(mSettings->isRemindUserToClose(), newValue); mSettings->save(); mSettings->setRemindUserToClose(initial); QCOMPARE(mSettings->isRemindUserToClose(), initial); mSettings->save(); } void testPersistentSettingsVersion() { QCoreApplication::setApplicationVersion(QStringLiteral("X.Y.Z")); // the persistent settings version contains the application version number // last saving the settings --> in this test the settings have // never been saved, so the empty string is expected QCOMPARE(mSettings->getPersistentSettingsVersion(), QString()); mSettings->save(); QCOMPARE(mSettings->getPersistentSettingsVersion(), QCoreApplication::applicationVersion()); } void testTransportPinReminder() { bool initialValue = mSettings->isTransportPinReminder(); bool newValue = !initialValue; mSettings->save(); mSettings->setTransportPinReminder(newValue); QCOMPARE(mSettings->isTransportPinReminder(), newValue); mSettings->save(); mSettings->setTransportPinReminder(initialValue); QCOMPARE(mSettings->isTransportPinReminder(), initialValue); mSettings->save(); } void testLanguage() { const QLocale::Language initialValue = mSettings->getLanguage(); const QLocale::Language newValue = QLocale::English; mSettings->save(); mSettings->setLanguage(newValue); QCOMPARE(mSettings->getLanguage(), newValue); mSettings->save(); mSettings->setLanguage(initialValue); QCOMPARE(mSettings->getLanguage(), initialValue); } void testLastReaderPluginType() { QString initial = mSettings->getLastReaderPluginType(); QCOMPARE(initial, QString()); QSignalSpy spy(mSettings.data(), &GeneralSettings::fireSettingsChanged); QString newValue; mSettings->setLastReaderPluginType(newValue); QCOMPARE(mSettings->getLastReaderPluginType(), newValue); mSettings->save(); QCOMPARE(spy.count(), 0); newValue = QStringLiteral("REMOTE"); mSettings->setLastReaderPluginType(newValue); QCOMPARE(mSettings->getLastReaderPluginType(), newValue); QCOMPARE(spy.count(), 1); mSettings->save(); } void testStoreFeedbackRequested() { #if defined(Q_OS_IOS) QCOMPARE(mSettings->isRequestStoreFeedback(), false); #else QCOMPARE(mSettings->isRequestStoreFeedback(), false); #endif mSettings->setRequestStoreFeedback(true); mSettings->save(); QCOMPARE(mSettings->isRequestStoreFeedback(), true); mSettings->setRequestStoreFeedback(false); mSettings->save(); QCOMPARE(mSettings->isRequestStoreFeedback(), false); } }; QTEST_GUILESS_MAIN(test_GeneralSettings) #include "test_GeneralSettings.moc"