diff options
author | Ingo Klöcker <[email protected]> | 2024-06-12 09:34:41 +0000 |
---|---|---|
committer | Ingo Klöcker <[email protected]> | 2024-06-12 09:34:41 +0000 |
commit | 2187a4de8c1731d8621a4b056baf84ee29e0ff00 (patch) | |
tree | 5e24f6e767143f6d0c1093a6dc63986ac41b5419 /lang/qt/tests/t-import.cpp | |
parent | tests: Add --import-filter option to usage info of run-import (diff) | |
download | gpgme-2187a4de8c1731d8621a4b056baf84ee29e0ff00.tar.gz gpgme-2187a4de8c1731d8621a4b056baf84ee29e0ff00.zip |
qt: Allow specifying import options when importing keys
* lang/qt/src/importjob.cpp, lang/qt/src/importjob.h (class ImportJob):
Add member functions setImportOptions and importOptions.
* lang/qt/src/importjob_p.h (struct ImportJobPrivate): Add member
m_importOptions.
* lang/qt/src/qgpgmeimportjob.cpp (import_qba): Add arg importOptions
and adjust the callers. Set import options context flag.
* lang/qt/tests/t-import.cpp (ImportTest): Add member function
testImportWithImportOptions.
--
GnuPG-bug-id: 7152
Diffstat (limited to '')
-rw-r--r-- | lang/qt/tests/t-import.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/lang/qt/tests/t-import.cpp b/lang/qt/tests/t-import.cpp index 91d5bcbd..79edf4d1 100644 --- a/lang/qt/tests/t-import.cpp +++ b/lang/qt/tests/t-import.cpp @@ -121,6 +121,48 @@ private Q_SLOTS: QCOMPARE(key.userID(0).id(), "[email protected]"); } + void testImportWithImportOptions() + { + if (GpgME::engineInfo(GpgME::GpgEngine).engineVersion() < "2.1.23") { + QSKIP("gpg does not yet support --import-options show-only"); + } + + // pub ed25519 2024-06-12 [SC] + // A52F4947AF1506F3A7572EFC140278B773CA7C16 + // uid [email protected] + static const char keyFpr[] = "A52F4947AF1506F3A7572EFC140278B773CA7C16"; + static const char keyData[] = + "-----BEGIN PGP PUBLIC KEY BLOCK-----\n" + "\n" + "mDMEZmlpmBYJKwYBBAHaRw8BAQdAZaSopKwccTwnMlJBVCWMT6et1T1WF9EkXdJi\n" + "gzI74xW0GWltcG9ydE9wdGlvbnNAZXhhbXBsZS5uZXSIkwQTFgoAOxYhBKUvSUev\n" + "FQbzp1cu/BQCeLdzynwWBQJmaWmYAhsDBQsJCAcCAiICBhUKCQgLAgQWAgMBAh4H\n" + "AheAAAoJEBQCeLdzynwWjmQBAP4dQEN/M4/dKIAlxNAbWzIkV+eSoUFLJszOJ/xx\n" + "FwJzAP43gkdXkUsHZt/U3mLZqtiHJFd7JxVm7hKRoAVBhZZYDw==\n" + "=7Z1j\n" + "-----END PGP PUBLIC KEY BLOCK-----\n"; + + auto *job = openpgp()->importJob(); + job->setImportOptions(QLatin1String{"show-only"}); + connect(job, &ImportJob::result, this, + [this](ImportResult result, QString, Error) + { + QVERIFY(!result.error()); + QCOMPARE(result.numConsidered(), 0); + QCOMPARE(result.numImported(), 0); + QVERIFY(result.imports().empty()); + Q_EMIT asyncDone(); + }); + job->start(QByteArray{keyData}); + QSignalSpy spy (this, SIGNAL(asyncDone())); + QVERIFY(spy.wait()); + + auto ctx = std::unique_ptr<GpgME::Context>(Context::createForProtocol(GpgME::OpenPGP)); + GpgME::Error err; + const auto key = ctx->key(keyFpr, err, false); + QVERIFY(key.isNull()); + } + void testImportWithKeyOrigin() { if (GpgME::engineInfo(GpgME::GpgEngine).engineVersion() < "2.1.22") { |