AusweisApp2/test/qt/settings/test_GeneralSettings.cpp

228 lines
6.2 KiB
C++
Raw Normal View History

2017-07-03 09:30:10 +02:00
/*!
* \brief Unit tests for \ref GeneralSettings
*
* \copyright Copyright (c) 2014 Governikus GmbH & Co. KG
*/
#include <QCoreApplication>
#include <QFile>
#include <QtTest>
#include "GeneralSettings.h"
using namespace governikus;
class test_GeneralSettings
: public QObject
{
Q_OBJECT
QScopedPointer<GeneralSettings> settings;
private Q_SLOTS:
void init()
{
AbstractSettings::mTestDir.clear();
settings.reset(new GeneralSettings());
}
void testEquals()
{
GeneralSettings otherSettings;
otherSettings.load();
QVERIFY(*settings == otherSettings);
settings->setAutoCloseWindowAfterAuthentication(!settings->isAutoCloseWindowAfterAuthentication());
QVERIFY(*settings != otherSettings);
otherSettings.setAutoCloseWindowAfterAuthentication(settings->isAutoCloseWindowAfterAuthentication());
QVERIFY(*settings == otherSettings);
settings->setAutoUpdateCheck(false);
QVERIFY(*settings != otherSettings);
otherSettings.setAutoUpdateCheck(false);
settings->setAutoStart(!GENERAL_SETTINGS_DEFAULT_AUTOSTART);
QVERIFY(*settings != otherSettings);
otherSettings.setAutoStart(!GENERAL_SETTINGS_DEFAULT_AUTOSTART);
settings->setUseScreenKeyboard(true);
QVERIFY(*settings != otherSettings);
otherSettings.setUseScreenKeyboard(true);
settings->setShowSetupAssistant(!settings->isShowSetupAssistant());
QVERIFY(*settings != otherSettings);
otherSettings.setShowSetupAssistant(settings->isShowSetupAssistant());
QVERIFY(*settings == otherSettings);
settings->setRemindUserToClose(!settings->isRemindUserToClose());
QVERIFY(*settings != otherSettings);
otherSettings.setRemindUserToClose(settings->isRemindUserToClose());
QVERIFY(*settings == otherSettings);
}
void testAutoCloseWindowAfterAuthentication()
{
bool initial = settings->isAutoCloseWindowAfterAuthentication();
bool newValue = !initial;
settings->setAutoCloseWindowAfterAuthentication(newValue);
QCOMPARE(settings->isAutoCloseWindowAfterAuthentication(), newValue);
QVERIFY(settings->isUnsaved());
settings->save();
QVERIFY(!settings->isUnsaved());
settings->setAutoCloseWindowAfterAuthentication(initial);
QCOMPARE(settings->isAutoCloseWindowAfterAuthentication(), initial);
settings->save();
}
void testAutoCheck()
{
bool initial = settings->isAutoUpdateCheck();
settings->setAutoUpdateCheck(!initial);
QCOMPARE(settings->isAutoUpdateCheck(), !initial);
QVERIFY(settings->isUnsaved());
settings->save();
QVERIFY(!settings->isUnsaved());
settings->setAutoUpdateCheck(initial);
QCOMPARE(settings->isAutoUpdateCheck(), initial);
settings->save();
}
void testAutoStart()
{
#if defined(Q_OS_WIN32) || defined(Q_OS_OSX)
bool initial = settings->isAutoStart();
settings->setAutoStart(!initial);
QCOMPARE(settings->isAutoStart(), !initial);
QVERIFY(settings->isUnsaved());
settings->save();
QVERIFY(!settings->isUnsaved());
settings->setAutoStart(initial);
QCOMPARE(settings->isAutoStart(), initial);
settings->save();
#else
QSKIP("Autostart currently only on windows and mac os");
#endif
}
void testUseScreenKeyboard()
{
bool initial = settings->isUseScreenKeyboard();
settings->setUseScreenKeyboard(!initial);
QCOMPARE(settings->isUseScreenKeyboard(), !initial);
QVERIFY(settings->isUnsaved());
settings->save();
QVERIFY(!settings->isUnsaved());
settings->setUseScreenKeyboard(initial);
QCOMPARE(settings->isUseScreenKeyboard(), initial);
settings->save();
}
void testDefaultValues()
{
GeneralSettings defaultSettings;
QCOMPARE(defaultSettings.isAutoCloseWindowAfterAuthentication(), true);
QCOMPARE(defaultSettings.isAutoStart(), GENERAL_SETTINGS_DEFAULT_AUTOSTART);
QCOMPARE(defaultSettings.isAutoUpdateCheck(), true);
QCOMPARE(defaultSettings.isUseScreenKeyboard(), false);
QCOMPARE(defaultSettings.isShowSetupAssistant(), true);
QCOMPARE(defaultSettings.isRemindUserToClose(), true);
QCOMPARE(defaultSettings.isTransportPinReminder(), true);
QCOMPARE(defaultSettings.getPersistentSettingsVersion(), QString());
QCOMPARE(defaultSettings.isDeveloperMode(), false);
QCOMPARE(defaultSettings.useSelfauthenticationTestUri(), false);
}
void testRemindStartupWizard()
{
bool initial = settings->isShowSetupAssistant();
bool newValue = !initial;
settings->setShowSetupAssistant(newValue);
QCOMPARE(settings->isShowSetupAssistant(), newValue);
QVERIFY(settings->isUnsaved());
settings->save();
QVERIFY(!settings->isUnsaved());
settings->setShowSetupAssistant(initial);
QCOMPARE(settings->isShowSetupAssistant(), initial);
QVERIFY(settings->isUnsaved());
settings->save();
}
void testRemindUserToClose()
{
bool initial = settings->isRemindUserToClose();
bool newValue = !initial;
settings->setRemindUserToClose(newValue);
QCOMPARE(settings->isRemindUserToClose(), newValue);
QVERIFY(settings->isUnsaved());
settings->save();
QVERIFY(!settings->isUnsaved());
settings->setRemindUserToClose(initial);
QCOMPARE(settings->isRemindUserToClose(), initial);
QVERIFY(settings->isUnsaved());
settings->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(settings->getPersistentSettingsVersion(), QString());
settings->save();
QCOMPARE(settings->getPersistentSettingsVersion(), QCoreApplication::applicationVersion());
}
void testTransportPinReminder()
{
bool initialValue = settings->isTransportPinReminder();
bool newValue = !initialValue;
QVERIFY(!settings->isUnsaved());
settings->setTransportPinReminder(newValue);
QCOMPARE(settings->isTransportPinReminder(), newValue);
QVERIFY(settings->isUnsaved());
settings->save();
QVERIFY(!settings->isUnsaved());
settings->setTransportPinReminder(initialValue);
QCOMPARE(settings->isTransportPinReminder(), initialValue);
QVERIFY(settings->isUnsaved());
settings->save();
}
};
QTEST_GUILESS_MAIN(test_GeneralSettings)
#include "test_GeneralSettings.moc"