// SPDX-License-Identifier: MIT #include "settings.h" #include #include 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"