File indexing completed on 2024-03-24 03:56:38
0001 /* 0002 SPDX-License-Identifier: LGPL-2.0-or-later 0003 SPDX-FileCopyrightText: 2021 Harald Sitter <sitter@kde.org> 0004 */ 0005 0006 #include <QTest> 0007 0008 #include "../src/metadata.cpp" 0009 0010 using namespace KCrash; 0011 0012 class MetadataTest : public QObject 0013 { 0014 Q_OBJECT 0015 private Q_SLOTS: 0016 void testEverything() 0017 { 0018 QTemporaryDir tmpDir; 0019 QVERIFY(tmpDir.isValid()); 0020 0021 const QString iniFile = QStringLiteral("%1/foo.ini").arg(tmpDir.path()); 0022 Metadata data("BEFEHL"); 0023 #ifdef Q_OS_LINUX 0024 MetadataINIWriter iniWriter(iniFile.toLocal8Bit()); 0025 data.setAdditionalWriter(&iniWriter); 0026 #endif 0027 data.add("--ABC", "FOO\nBAR"); 0028 data.addBool("--Meow"); 0029 data.close(); 0030 const int argc = data.argc; 0031 QCOMPARE(argc, 4); 0032 QCOMPARE(data.argv.at(0), QStringLiteral("BEFEHL")); // make sure we do stringy comparison 0033 QCOMPARE(data.argv.at(1), QStringLiteral("--ABC")); 0034 QCOMPARE(data.argv.at(2), QStringLiteral("FOO\nBAR")); 0035 QCOMPARE(data.argv.at(3), QStringLiteral("--Meow")); 0036 QCOMPARE(data.argv.at(4), nullptr); // list should be null terminated 0037 0038 #ifdef Q_OS_LINUX 0039 QFile::exists(iniFile); 0040 QFile ini(iniFile); 0041 QVERIFY(ini.open(QFile::ReadOnly)); 0042 QCOMPARE(ini.readLine(), "[KCrash]\n"); 0043 QCOMPARE(ini.readLine(), "ABC=FOO\\nBAR\n"); 0044 QCOMPARE(ini.readLine(), "Meow=true\n"); 0045 QVERIFY(ini.atEnd()); // nothing after final newline 0046 #endif 0047 } 0048 0049 void testNoFile() 0050 { 0051 // Doesn't explode without writer 0052 Metadata data("BEFEHL"); 0053 data.add("--ABC", "FOO"); 0054 data.close(); 0055 const int argc = data.argc; 0056 QCOMPARE(argc, 3); 0057 } 0058 }; 0059 0060 QTEST_MAIN(MetadataTest) 0061 0062 #include "metadatatest.moc"