File indexing completed on 2024-04-28 09:46:03

0001 #include "kgpgverify.h"
0002 #include "../transactions/kgpgverify.h"
0003 #include "common.h"
0004 
0005 #include <QList>
0006 #include <QString>
0007 #include <QSignalSpy>
0008 #include <QTest>
0009 #include <QUrl>
0010 
0011 void KGpgVerifyTest::init()
0012 {
0013     QVERIFY(resetGpgConf(m_tempdir));
0014 }
0015 
0016 void KGpgVerifyTest::testVerifySignedText()
0017 {
0018     addGpgKey(m_tempdir, QLatin1String("keys/kgpgtest_BA7695F3C550DF14.asc"));
0019     QString text = readFile(QLatin1String("keys/signed_text"));
0020     KGpgVerify *transaction = new KGpgVerify(this, text);
0021     QSignalSpy spy(transaction, &KGpgVerify::done);
0022     QObject::connect(transaction, &KGpgVerify::done,
0023              [](int result) { QCOMPARE(result, static_cast<int>(KGpgTransaction::TS_OK)); });
0024     transaction->start();
0025     QVERIFY(spy.wait(10000));
0026 }
0027 
0028 void KGpgVerifyTest::testVerifySignedFile()
0029 {
0030     addGpgKey(m_tempdir, QLatin1String("keys/kgpgtest_BA7695F3C550DF14.asc"));
0031     QList<QUrl> list;
0032     list.append(QUrl::fromLocalFile(QLatin1String("keys/signed_text")));
0033     KGpgVerify *transaction = new KGpgVerify(this, list);
0034     QSignalSpy spy(transaction, &KGpgVerify::done);
0035     QObject::connect(transaction, &KGpgVerify::done,
0036              [](int result) { QCOMPARE(result, static_cast<int>(KGpgTransaction::TS_OK)); });
0037     transaction->start();
0038     QVERIFY(spy.wait(10000));
0039 }
0040 
0041 void KGpgVerifyTest::testVerifyReturnMissingKey()
0042 {
0043     QList<QUrl> list;
0044     list.append(QUrl::fromLocalFile(QLatin1String("keys/signed_text")));
0045     KGpgVerify *transaction = new KGpgVerify(this, list);
0046     QSignalSpy spy(transaction, &KGpgVerify::done);
0047     QObject::connect(transaction, &KGpgVerify::done,
0048              [](int result) { QCOMPARE(result, static_cast<int>(KGpgVerify::TS_MISSING_KEY)); });
0049     transaction->start();
0050     QVERIFY(spy.wait(10000));
0051 }
0052 
0053 void KGpgVerifyTest::testVerifyMissingId()
0054 {
0055     QList<QUrl> list;
0056     list.append(QUrl::fromLocalFile(QLatin1String("keys/signed_text")));
0057     KGpgVerify *transaction = new KGpgVerify(this, list);
0058     QSignalSpy spy(transaction, &KGpgVerify::done);
0059     QObject::connect(transaction, &KGpgVerify::done, [transaction]() {
0060         QString keyID = QLatin1String("7882C615210F1022");
0061         QVERIFY(transaction->missingId().compare(keyID) == 0);
0062     });
0063     transaction->start();
0064     QVERIFY(spy.wait(10000));
0065 }
0066 
0067 void KGpgVerifyTest::testVerifyReturnBadSignature()
0068 {
0069     QList<QUrl> list;
0070     addGpgKey(m_tempdir, QLatin1String("keys/kgpgtest_BA7695F3C550DF14.asc"));
0071     list.append(QUrl::fromLocalFile(QLatin1String("keys/signed_bad_sig")));
0072     KGpgVerify *transaction = new KGpgVerify(this, list);
0073     QSignalSpy spy(transaction, &KGpgVerify::done);
0074     QObject::connect(transaction, &KGpgVerify::done,
0075              [](int result) { QCOMPARE(result, static_cast<int>(KGpgVerify::TS_BAD_SIGNATURE)); });
0076     transaction->start();
0077     QVERIFY(spy.wait(10000));
0078 }
0079 
0080 QTEST_GUILESS_MAIN(KGpgVerifyTest)