File indexing completed on 2024-04-21 05:50:40

0001 #include "kgpgdelkey.h"
0002 #include "../core/kgpgkey.h"
0003 #include "../core/KGpgRootNode.h"
0004 #include "../kgpginterface.h"
0005 #include "../model/kgpgitemmodel.h"
0006 #include "../transactions/kgpgdelkey.h"
0007 #include "common.h"
0008 
0009 #include <QSignalSpy>
0010 #include <QTest>
0011 
0012 void KGpgDelKeyTest::init()
0013 {
0014     resetGpgConf(m_tempdir);
0015 }
0016 
0017 void KGpgDelKeyTest::testDeleteKey()
0018 {
0019     QFETCH(QString, passphrase);
0020     addGpgKey(m_tempdir, QLatin1String("keys/kgpgtest_BA7695F3C550DF14.asc"), passphrase);
0021     QString keyId = QLatin1String("BA7695F3C550DF14");
0022     KGpgItemModel *model = new KGpgItemModel(this);
0023     KGpgRootNode *rootNode = new KGpgRootNode(model);
0024     rootNode->addKeys(QStringList(keyId));
0025     KGpgKeyNode *keyNode = rootNode->findKey(keyId);
0026     QVERIFY(keyNode != nullptr);
0027     KGpgDelKey *transaction = new KGpgDelKey(this, keyNode);
0028     QObject::connect(transaction, &KGpgDelKey::done,
0029              [](int result) { QCOMPARE(result, static_cast<int>(KGpgTransaction::TS_OK)); });
0030     QSignalSpy spy(transaction, &KGpgDelKey::done);
0031     transaction->addArgument(QStringLiteral("--yes"));
0032     transaction->start();
0033     QVERIFY(spy.wait(10000));
0034     QCOMPARE(KgpgInterface::readSecretKeys().size(), 0);
0035     QCOMPARE(KgpgInterface::readPublicKeys().size(), 0);
0036 }
0037 
0038 void KGpgDelKeyTest::testDeleteKey_data()
0039 {
0040     QTest::addColumn<QString>("passphrase");
0041     QTest::newRow("public") << QString();
0042     QTest::newRow("secret")
0043         << readFile(QLatin1String("keys/kgpgtest_BA7695F3C550DF14.pass"));
0044 }
0045 
0046 QTEST_GUILESS_MAIN(KGpgDelKeyTest)