aboutsummaryrefslogtreecommitdiffstats
path: root/lang/qt/tests/t-support.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lang/qt/tests/t-support.cpp')
-rw-r--r--lang/qt/tests/t-support.cpp28
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);