SPDX-FileCopyrightText: 2022 Nicolas Fella <nicolas.fella@gmx.de>
SPDX-License-Identifier: LGPL-2.0-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
*/
#include <KCMultiDialog>
#include <QObject>
#include <QTest>
#include <QTimer>
class KCMultiDialogTest : public QObject
{
Q_OBJECT
const KPluginMetaData fakekcm{QStringLiteral("plasma/kcms/systemsettings_qwidgets/fakekcm")};
void sleep(int ms)
{
QEventLoop l;
QTimer::singleShot(ms, this, [&l]() {
l.quit();
});
l.exec();
}
private Q_SLOTS:
void testClear()
{
KCMultiDialog dialog;
dialog.addModule(fakekcm);
dialog.clear();
}
void testLoadKcm()
{
KCMultiDialog dialog;
QCOMPARE(dialog.property("loadcalled").toInt(), 0);
auto page1 = dialog.addModule(fakekcm);
sleep(1);
auto page2 = dialog.addModule(fakekcm);
dialog.setCurrentPage(page2);
sleep(1);
QCOMPARE(dialog.property("loadcalled").toInt(), 2);
dialog.setCurrentPage(page1);
sleep(1);
QCOMPARE(dialog.property("loadcalled").toInt(), 2);
}
};
QTEST_MAIN(KCMultiDialogTest)
#include "kcmultidialogtest.moc"