Web lists-archives.com

Re: How to temporarily change KConfig-data for a unit test?

Am 2018-02-13 15:42, schrieb Aleix Pol:
On Tue, Feb 13, 2018 at 1:14 PM, Michael Heidelbach <ottwolt@xxxxxxxxx> wrote:

Currently I'm working on baloo-widgets. For a unit test I need to
temporarily change KConfig data.

My approach would be like this:


    KConfig config("baloofileinformationrc", KConfig::NoGlobals);
    KConfigGroup settings = config.group("Show");

        set everything to true here.

Revert the changes incleanupTestCase();

How is this done most efficiently and without messing too much with

Ideally you should QStandardPaths::setTestModeEnabled(true), then you
can do as you please with config files which should end up in

A different approach could be to use a
KSharedConfig::openConfig(QString(), KConfig::SimpleConfig)

This creates an in-memory KConfig not backed by a file. That's what I use in KWin to mock config. All the objects interacting with config have a setConfig(KSharedConfigPtr) method which I can use to inject the mocked config.