From 0b0a4464fb3d1145eb612b1ab7edacfa9581c8c9 Mon Sep 17 00:00:00 2001 From: Alexander Lohnau Date: Tue, 14 Sep 2021 07:30:32 +0200 Subject: Allow KConfigXT to use KSharedConfig::openStateConfig Otherwise we force consumers to use the config location for state data, which is what we are trying to avoid. Task: https://phabricator.kde.org/T12549 --- .../kconfig_compiler/test_state_config_main.cpp | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 autotests/kconfig_compiler/test_state_config_main.cpp (limited to 'autotests/kconfig_compiler/test_state_config_main.cpp') diff --git a/autotests/kconfig_compiler/test_state_config_main.cpp b/autotests/kconfig_compiler/test_state_config_main.cpp new file mode 100644 index 00000000..07044bb5 --- /dev/null +++ b/autotests/kconfig_compiler/test_state_config_main.cpp @@ -0,0 +1,41 @@ +/* + SPDX-FileCopyrightText: 2021 Alexander Lohnau + + SPDX-License-Identifier: MIT +*/ + +#include "test_state_config.h" +#include + +class TestStateConfig : public QObject +{ + Q_OBJECT + +private Q_SLOTS: + void testStateConfig() + { + auto stateConfig = KSharedConfig::openStateConfig(QStringLiteral("test_statedatarc")); + + // Clean the group at every start + stateConfig->deleteGroup("General"); + stateConfig->sync(); + + // It should have the default value + QCOMPARE(MyStateConfig().someStateData(), 0); + + // the updated value should be read from the generated config class + stateConfig->group("General").writeEntry("SomeStateData", 1); + QCOMPARE(MyStateConfig().someStateData(), 1); + + // Make sure writing the value works as expected + MyStateConfig cfg; + cfg.setSomeStateData(2); + QVERIFY(cfg.isSaveNeeded()); + cfg.save(); + stateConfig->reparseConfiguration(); + QCOMPARE(stateConfig->group("General").readEntry("SomeStateData", -1), 2); + } +}; +QTEST_MAIN(TestStateConfig) + +#include "test_state_config_main.moc" -- cgit v1.2.1