diff options
author | Ingo Klöcker <[email protected]> | 2022-01-13 11:51:38 +0000 |
---|---|---|
committer | Ingo Klöcker <[email protected]> | 2022-01-13 14:18:12 +0000 |
commit | 4d913a8aa5dad1327bed5987dada89e9d7c5d292 (patch) | |
tree | b7c41c831add344aaffa7dc9763da2b08f22e7ff /lang/qt/tests/t-support.cpp | |
parent | qt,tests: Add helper to hook up the test passphrase provider (diff) | |
download | gpgme-4d913a8aa5dad1327bed5987dada89e9d7c5d292.tar.gz gpgme-4d913a8aa5dad1327bed5987dada89e9d7c5d292.zip |
qt: Add job to add existing subkeys to other keys
* lang/qt/src/addexistingsubkeyjob.h,
lang/qt/src/qgpgmeaddexistingsubkeyjob.cpp,
lang/qt/src/qgpgmeaddexistingsubkeyjob.h: New.
* lang/qt/src/protocol.h (class Protocol): Add pure virtual member
function addExistingSubkeyJob.
* lang/qt/src/protocol_p.h (Protocol::addExistingSubkeyJob): Implement.
* lang/qt/src/job.cpp, lang/qt/src/Makefile.am: Update accordingly.
* lang/qt/tests/Makefile.am (the_tests, moc_files, noinst_PROGRAMS):
Add new test.
(t_addexistingsubkey_SOURCES): New.
* lang/qt/tests/t-addexistingsubkey.cpp: New.
* lang/qt/tests/t-support.h (VERIFY_OR_RETURN_VALUE,
COMPARE_OR_RETURN_VALUE, VERIFY_OR_OBJECT, COMPARE_OR_OBJECT,
VERIFY_OR_FALSE, COMPARE_OR_FALSE): New.
* lang/qt/tests/t-support.h, lang/qt/tests/t-support.cpp
(class QQGpgMETest): New member function importSecretKeys.
--
The new job allows adding existing subkeys to other keys as with the
"addkey" edit-key command of gpg. The added subkey will have the same
expiration date (+/- 1 second) as the original subkey.
GnuPG-bug-id: 5770
Diffstat (limited to 'lang/qt/tests/t-support.cpp')
-rw-r--r-- | lang/qt/tests/t-support.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/lang/qt/tests/t-support.cpp b/lang/qt/tests/t-support.cpp index e827b517..6db082fd 100644 --- a/lang/qt/tests/t-support.cpp +++ b/lang/qt/tests/t-support.cpp @@ -36,7 +36,9 @@ #include "t-support.h" +#include "importjob.h" #include "job.h" +#include "protocol.h" #include <QTest> @@ -44,9 +46,11 @@ #include <QCoreApplication> #include <QObject> #include <QDir> +#include <QSignalSpy> #include "context.h" #include "engineinfo.h" +#include "importresult.h" using namespace GpgME; using namespace QGpgME; @@ -97,6 +101,30 @@ bool QGpgMETest::copyKeyrings(const QString &src, const QString &dest) return true; } +bool QGpgMETest::importSecretKeys(const char *keyData, int expectedKeys) +{ + auto job = std::unique_ptr<ImportJob>{openpgp()->importJob()}; + VERIFY_OR_FALSE(job); + hookUpPassphraseProvider(job.get()); + + ImportResult result; + connect(job.get(), &ImportJob::result, + this, [this, &result](const ImportResult &result_) { + result = result_; + Q_EMIT asyncDone(); + }); + VERIFY_OR_FALSE(!job->start(keyData)); + job.release(); // after the job has been started it's on its own + + QSignalSpy spy (this, SIGNAL(asyncDone())); + VERIFY_OR_FALSE(spy.wait(QSIGNALSPY_TIMEOUT)); + VERIFY_OR_FALSE(!result.error()); + VERIFY_OR_FALSE(!result.imports().empty()); + COMPARE_OR_FALSE(result.numSecretKeysImported(), expectedKeys); + + return true; +} + void QGpgMETest::hookUpPassphraseProvider(GpgME::Context *context) { context->setPassphraseProvider(&mPassphraseProvider); |