Files
fedora-tools/plasma-panel-actions/tests/test-settings.cpp
T

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"