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