diff options
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); |