- Dual clock (primary/secondary time zone) with IANA picker, persisted in XML - AutoStartManager: macOS LaunchAgent (com.clouck.clock, RunAtLoad) - Tray icon: template image, light/dark adaptation, toggle + quit menu - ConfigManager: default path moved to QStandardPaths::AppConfigLocation - Qt Test suite (ConfigManager, AutoStartManager) wired into CTest - GitHub origin renamed to upstream; private Gitea repo as origin
41 lines
1.0 KiB
C++
41 lines
1.0 KiB
C++
#include "config_manager.h"
|
|
|
|
#include <QDir>
|
|
#include <QTemporaryDir>
|
|
#include <QtTest>
|
|
|
|
class ConfigManagerTest : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
private slots:
|
|
void roundTripsBothClockTimeZones();
|
|
void usesAnAbsoluteDefaultSettingsPath();
|
|
};
|
|
|
|
void ConfigManagerTest::roundTripsBothClockTimeZones()
|
|
{
|
|
QTemporaryDir directory;
|
|
QVERIFY(directory.isValid());
|
|
|
|
const QString filename = directory.filePath("config.xml");
|
|
ConfigManager writer;
|
|
writer.setPrimaryTimeZoneId("Europe/Bucharest");
|
|
writer.setSecondaryTimeZoneId("America/Los_Angeles");
|
|
QVERIFY(writer.saveSettings(filename));
|
|
|
|
ConfigManager reader;
|
|
QVERIFY(reader.loadSettings(filename));
|
|
QCOMPARE(reader.primaryTimeZoneId(), QString("Europe/Bucharest"));
|
|
QCOMPARE(reader.secondaryTimeZoneId(), QString("America/Los_Angeles"));
|
|
}
|
|
|
|
void ConfigManagerTest::usesAnAbsoluteDefaultSettingsPath()
|
|
{
|
|
QVERIFY(QDir::isAbsolutePath(ConfigManager::defaultSettingsPath()));
|
|
}
|
|
|
|
QTEST_APPLESS_MAIN(ConfigManagerTest)
|
|
|
|
#include "config_manager_test.moc"
|