1 /* 2 SPDX-FileCopyrightText: 2017-2021 Laurent Montel <montel@kde.org> 3 4 SPDX-License-Identifier: LGPL-2.0-or-later 5 6 */ 7 8 #include "saverulesjobtest.h" 9 #include "loadcategoriesjob.h" 10 #include "saverulesjob.h" 11 12 #include <QProcess> 13 #include <QTest> 14 QTEST_GUILESS_MAIN(SaveRulesJobTest)15QTEST_GUILESS_MAIN(SaveRulesJobTest) 16 17 void compareFile(const QString &name) 18 { 19 const QString refFile = QLatin1String(KDEBUGSETTINGS_DATA_DIR) + QLatin1Char('/') + name + QStringLiteral(".ref"); 20 const QString generatedFile = QLatin1String(KDEBUGSETTINGS_BINARY_DATA_DIR) + QLatin1Char('/') + name + QStringLiteral("-generated.ref"); 21 22 // compare to reference file 23 QStringList args = QStringList() << QStringLiteral("-u") << refFile << generatedFile; 24 QProcess proc; 25 proc.setProcessChannelMode(QProcess::ForwardedChannels); 26 proc.start(QStringLiteral("diff"), args); 27 QVERIFY(proc.waitForFinished()); 28 QCOMPARE(proc.exitCode(), 0); 29 } 30 SaveRulesJobTest(QObject * parent)31SaveRulesJobTest::SaveRulesJobTest(QObject *parent) 32 : QObject(parent) 33 { 34 } 35 shouldSaveLoadRules_data()36void SaveRulesJobTest::shouldSaveLoadRules_data() 37 { 38 QTest::addColumn<QString>("filename"); 39 QTest::newRow("oneelementwarning.ini") << QStringLiteral("oneelementwarning"); 40 QTest::newRow("oneelementall.ini") << QStringLiteral("oneelementall"); 41 QTest::newRow("oneelementinfo.ini") << QStringLiteral("oneelementinfo"); 42 QTest::newRow("oneelementonelineoff.ini") << QStringLiteral("oneelementonelineoff"); 43 QTest::newRow("oneelementonelinecritical.ini") << QStringLiteral("oneelementonelinecritical"); 44 } 45 shouldSaveLoadRules()46void SaveRulesJobTest::shouldSaveLoadRules() 47 { 48 QFETCH(QString, filename); 49 LoadCategoriesJob job; 50 job.setFileName(QLatin1String(KDEBUGSETTINGS_DATA_DIR) + QLatin1Char('/') + filename + QStringLiteral(".ini")); 51 job.start(); 52 53 const LoggingCategory::List customCategories = job.customCategories(); 54 55 const LoggingCategory::List qtKdeCategories = job.qtKdeCategories(); 56 57 SaveRulesJob saveJob; 58 QDir().mkpath(QLatin1String(KDEBUGSETTINGS_BINARY_DATA_DIR)); 59 saveJob.setFileName(QLatin1String(KDEBUGSETTINGS_BINARY_DATA_DIR) + QLatin1Char('/') + filename + QStringLiteral("-generated.ref")); 60 qDebug() << " save " << saveJob.fileName(); 61 saveJob.setListCustom(customCategories); 62 saveJob.setListKde(qtKdeCategories); 63 QVERIFY(saveJob.start()); 64 compareFile(filename); 65 } 66