47 lines
1.9 KiB
C++
47 lines
1.9 KiB
C++
// SPDX-License-Identifier: MIT
|
|
#include "settings.h"
|
|
#include <QTemporaryDir>
|
|
#include <QTest>
|
|
|
|
class SettingsTest : public QObject
|
|
{
|
|
Q_OBJECT
|
|
private Q_SLOTS:
|
|
void savesWithoutAWidget()
|
|
{
|
|
QTemporaryDir directory;
|
|
QVERIFY(directory.isValid());
|
|
qputenv("XDG_CONFIG_HOME", directory.path().toUtf8());
|
|
Settings settings;
|
|
auto values = settings.values();
|
|
QCOMPARE(values.value(QStringLiteral("spacerLength")).toInt(), 48);
|
|
QCOMPARE(values.value(QStringLiteral("tasksAction")).toString(), QStringLiteral("volume"));
|
|
values[QStringLiteral("tasksAction")] = QStringLiteral("normal");
|
|
values[QStringLiteral("spacerLength")] = 128;
|
|
QVERIFY(settings.save(values));
|
|
Settings reopened;
|
|
QCOMPARE(reopened.values(), values);
|
|
auto invalid = values;
|
|
invalid[QStringLiteral("tasksAction")] = QStringLiteral("invalid");
|
|
QVERIFY(!settings.save(invalid));
|
|
QCOMPARE(settings.values(), values);
|
|
auto launch = values;
|
|
launch[QStringLiteral("leftDoubleClick")] = QStringLiteral("command");
|
|
QVERIFY(!settings.save(launch)); // empty command cannot be enabled
|
|
launch[QStringLiteral("leftDoubleClickCommand")] = QStringLiteral("true");
|
|
QVERIFY(settings.save(launch));
|
|
QCOMPARE(settings.values(), launch);
|
|
launch[QStringLiteral("middleDoubleClick")] = QStringLiteral("application");
|
|
QVERIFY(!settings.save(launch));
|
|
launch[QStringLiteral("middleDoubleClickApplication")] = QStringLiteral("org.kde.plasma-systemmonitor.desktop");
|
|
QVERIFY(settings.save(launch));
|
|
QCOMPARE(settings.values(), launch);
|
|
invalid = values;
|
|
invalid[QStringLiteral("spacerLength")] = -1;
|
|
QVERIFY(!settings.save(invalid));
|
|
QCOMPARE(settings.values(), launch);
|
|
}
|
|
};
|
|
QTEST_GUILESS_MAIN(SettingsTest)
|
|
#include "test-settings.moc"
|