1 #include "kgpgdelkey.h"
2 #include "../core/kgpgkey.h"
3 #include "../core/KGpgRootNode.h"
4 #include "../kgpginterface.h"
5 #include "../model/kgpgitemmodel.h"
6 #include "../transactions/kgpgdelkey.h"
7 #include "common.h"
8
9 #include <QSignalSpy>
10 #include <QTest>
11
init()12 void KGpgDelKeyTest::init()
13 {
14 resetGpgConf(m_tempdir);
15 }
16
testDeleteKey()17 void KGpgDelKeyTest::testDeleteKey()
18 {
19 QFETCH(QString, passphrase);
20 addGpgKey(m_tempdir, QLatin1String("keys/kgpgtest_BA7695F3C550DF14.asc"), passphrase);
21 QString keyId = QLatin1String("BA7695F3C550DF14");
22 KGpgItemModel *model = new KGpgItemModel(this);
23 KGpgRootNode *rootNode = new KGpgRootNode(model);
24 rootNode->addKeys(QStringList(keyId));
25 KGpgKeyNode *keyNode = rootNode->findKey(keyId);
26 QVERIFY(keyNode != nullptr);
27 KGpgDelKey *transaction = new KGpgDelKey(this, keyNode);
28 QObject::connect(transaction, &KGpgDelKey::done,
29 [](int result) { QCOMPARE(result, static_cast<int>(KGpgTransaction::TS_OK)); });
30 QSignalSpy spy(transaction, &KGpgDelKey::done);
31 transaction->addArgument(QStringLiteral("--yes"));
32 transaction->start();
33 QVERIFY(spy.wait(10000));
34 QCOMPARE(KgpgInterface::readSecretKeys().size(), 0);
35 QCOMPARE(KgpgInterface::readPublicKeys().size(), 0);
36 }
37
testDeleteKey_data()38 void KGpgDelKeyTest::testDeleteKey_data()
39 {
40 QTest::addColumn<QString>("passphrase");
41 QTest::newRow("public") << QString();
42 QTest::newRow("secret")
43 << readFile(QLatin1String("keys/kgpgtest_BA7695F3C550DF14.pass"));
44 }
45
46 QTEST_GUILESS_MAIN(KGpgDelKeyTest)
47