File indexing completed on 2024-04-14 05:43:28
0001 #include "kgpgimport.h" 0002 #include "../transactions/kgpgimport.h" 0003 #include "common.h" 0004 0005 #include <QList> 0006 #include <QString> 0007 #include <QStringList> 0008 #include <QSignalSpy> 0009 #include <QTest> 0010 #include <QTextStream> 0011 #include <QUrl> 0012 0013 void KGpgImportTest::init() 0014 { 0015 QVERIFY(resetGpgConf(m_tempdir)); 0016 } 0017 0018 void KGpgImportTest::testImportTextKey() 0019 { 0020 QString key = readFile(QLatin1String("keys/kgpgtest_BA7695F3C550DF14_pub.asc")); 0021 QVERIFY(KGpgImport::isKey(key)); 0022 KGpgImport *transaction = new KGpgImport(this, key); 0023 QSignalSpy spy(transaction, &KGpgImport::done); 0024 QObject::connect(transaction, &KGpgImport::done, [transaction, key](int result) { 0025 QCOMPARE(transaction->getImportedKeys().size(), 1); 0026 QString keyID = QLatin1String("BA7695F3C550DF14"); 0027 QVERIFY(transaction->getImportedKeys().first().startsWith(keyID)); 0028 QCOMPARE(result, static_cast<int>(KGpgTransaction::TS_OK)); 0029 }); 0030 transaction->start(); 0031 QVERIFY(spy.wait(10000)); 0032 } 0033 0034 void KGpgImportTest::testImportKeyFromFile() 0035 { 0036 QList<QUrl> list; 0037 list.append(QUrl::fromLocalFile(QLatin1String("keys/kgpgtest_BA7695F3C550DF14_pub.asc"))); 0038 0039 KGpgImport *transaction = new KGpgImport(this, list); 0040 QSignalSpy spy(transaction, &KGpgImport::done); 0041 QObject::connect(transaction, &KGpgImport::done, [transaction](int result) { 0042 QCOMPARE(transaction->getImportedKeys().size(), 1); 0043 QString keyID = QLatin1String("BA7695F3C550DF14"); 0044 QVERIFY(transaction->getImportedKeys().first().startsWith(keyID)); 0045 QCOMPARE(result, static_cast<int>(KGpgTransaction::TS_OK)); 0046 }); 0047 transaction->start(); 0048 QVERIFY(spy.wait(10000)); 0049 } 0050 0051 void KGpgImportTest::testImportSameKeyTwice() 0052 { 0053 QList<QUrl> list; 0054 list.append(QUrl::fromLocalFile(QLatin1String("keys/kgpgtest_BA7695F3C550DF14_pub.asc"))); 0055 KGpgImport *transaction = new KGpgImport(this, list); 0056 QSignalSpy spy(transaction, &KGpgImport::done); 0057 transaction->start(); 0058 QVERIFY(spy.wait(10000)); 0059 QObject::connect(transaction, &KGpgImport::done, [transaction](int result) { 0060 QCOMPARE(transaction->getImportedKeys().size(), 1); 0061 QString keyID = QLatin1String("BA7695F3C550DF14"); 0062 QString duplicateMsg = QLatin1String("IMPORT_OK 0 FBAF08DD7D9D0921C15DDA9FBA7695F3C550DF14"); 0063 qDebug() << "MESSAGES: " << transaction->getMessages(); 0064 QVERIFY(transaction->getImportedKeys().first().startsWith(keyID)); 0065 QVERIFY(transaction->getMessages().join(QLatin1Char(' ')).contains(duplicateMsg)); 0066 QEXPECT_FAIL("", "Test is broken. Possible bug!", Continue); 0067 QCOMPARE(result, static_cast<int>(KGpgTransaction::TS_OK)); 0068 }); 0069 transaction->start(); 0070 QVERIFY(spy.wait(10000)); 0071 } 0072 0073 void KGpgImportTest::testImportIdsAll() 0074 { 0075 QList<QUrl> list; 0076 list.append(QUrl::fromLocalFile(QLatin1String("keys/kgpgtest_BA7695F3C550DF14_pub.asc"))); 0077 KGpgImport *transaction = new KGpgImport(this, list); 0078 QSignalSpy spy(transaction, &KGpgImport::done); 0079 QObject::connect(transaction, &KGpgImport::done, [transaction](int result) { 0080 QCOMPARE(transaction->getImportedIds(-1).size(), 1); 0081 QString fingerprint = QLatin1String("FBAF08DD7D9D0921C15DDA9FBA7695F3C550DF14"); 0082 QVERIFY(transaction->getImportedIds(-1).first().compare(fingerprint) == 0); 0083 QCOMPARE(result, static_cast<int>(KGpgTransaction::TS_OK)); 0084 }); 0085 transaction->start(); 0086 QVERIFY(spy.wait(10000)); 0087 } 0088 0089 void KGpgImportTest::testImportIdsUnchanged() 0090 { 0091 addGpgKey(m_tempdir, QLatin1String("keys/kgpgtest_BA7695F3C550DF14_pub.asc")); 0092 QList<QUrl> list; 0093 list.append(QUrl::fromLocalFile(QLatin1String("keys/kgpgtest_BA7695F3C550DF14_pub.asc"))); 0094 KGpgImport *transaction = new KGpgImport(this, list); 0095 QSignalSpy spy(transaction, &KGpgImport::done); 0096 QObject::connect(transaction, &KGpgImport::done, [transaction](int result) { 0097 QCOMPARE(transaction->getImportedIds(0).size(), 1); 0098 QString fingerprint = QLatin1String("FBAF08DD7D9D0921C15DDA9FBA7695F3C550DF14"); 0099 QVERIFY(transaction->getImportedIds(0).first().compare(fingerprint) == 0); 0100 QCOMPARE(result, static_cast<int>(KGpgTransaction::TS_OK)); 0101 }); 0102 transaction->start(); 0103 QVERIFY(spy.wait(10000)); 0104 } 0105 0106 void KGpgImportTest::testLogMessage() 0107 { 0108 QList<QUrl> list; 0109 list.append(QUrl::fromLocalFile(QLatin1String("keys/kgpgtest_BA7695F3C550DF14_pub.asc"))); 0110 KGpgImport *transaction = new KGpgImport(this, list); 0111 QSignalSpy spy(transaction, &KGpgImport::done); 0112 QObject::connect(transaction, &KGpgImport::done, [transaction](int result) { 0113 QString msg = QLatin1String("IMPORT_OK 1 FBAF08DD7D9D0921C15DDA9FBA7695F3C550DF14"); 0114 QVERIFY(transaction->getMessages().join(QLatin1Char(' ')).contains(msg)); 0115 QCOMPARE(result, static_cast<int>(KGpgTransaction::TS_OK)); 0116 }); 0117 transaction->start(); 0118 QVERIFY(spy.wait(10000)); 0119 } 0120 0121 void KGpgImportTest::testImportSecretKey() 0122 { 0123 QList<QUrl> list; 0124 list.append(QUrl::fromLocalFile(QLatin1String("keys/kgpgtest_BA7695F3C550DF14.asc"))); 0125 KGpgImport *transaction = new KGpgImport(this, list); 0126 addPasswordArguments(transaction, 0127 readFile(QLatin1String("keys/kgpgtest_BA7695F3C550DF14.pass"))); 0128 QSignalSpy spy(transaction, &KGpgImport::done); 0129 QObject::connect(transaction, &KGpgImport::done, [transaction]() { 0130 QVERIFY(transaction->getImportedKeys().size() == 1); 0131 QString keyID = QLatin1String("BA7695F3C550DF14"); 0132 QVERIFY(transaction->getImportedKeys().first().startsWith(keyID)); 0133 }); 0134 transaction->start(); 0135 QVERIFY(spy.wait(10000)); 0136 } 0137 0138 QTEST_GUILESS_MAIN(KGpgImportTest)