AusweisApp2/test/qt/settings/test_GeneralSettings.cpp

224 lines
5.8 KiB
C++

/*!
* \brief Unit tests for \ref GeneralSettings
*
* \copyright Copyright (c) 2014-2019 Governikus GmbH & Co. KG, Germany
*/
#include <QCoreApplication>
#include <QFile>
#include <QSignalSpy>
#include <QtTest>
#include "GeneralSettings.h"
using namespace governikus;
class test_GeneralSettings
: public QObject
{
Q_OBJECT
QScopedPointer<GeneralSettings> 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"