aboutsummaryrefslogtreecommitdiffstats
path: root/lang/qt/tests/t-revokekey.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lang/qt/tests/t-revokekey.cpp')
-rw-r--r--lang/qt/tests/t-revokekey.cpp61
1 files changed, 61 insertions, 0 deletions
diff --git a/lang/qt/tests/t-revokekey.cpp b/lang/qt/tests/t-revokekey.cpp
index 6586f093..9aec5753 100644
--- a/lang/qt/tests/t-revokekey.cpp
+++ b/lang/qt/tests/t-revokekey.cpp
@@ -39,6 +39,7 @@
#include <revokekeyjob.h>
#include <QProcess>
+#include <QRegularExpression>
#include <QSignalSpy>
#include <QTest>
@@ -196,6 +197,66 @@ private Q_SLOTS:
"0000 1111 2222 3333 4444 5555 6666 7777 8888 9999."});
}
+ void testErrorHandling_nullKey()
+ {
+ {
+ auto job = std::unique_ptr<RevokeKeyJob>{openpgp()->revokeKeyJob()};
+ QTest::ignoreMessage(QtWarningMsg, "Error: Key is null key");
+ const auto result = job->exec(Key{});
+ QVERIFY(result.code() == GPG_ERR_INV_ARG);
+ }
+ {
+ auto job = std::unique_ptr<RevokeKeyJob>{openpgp()->revokeKeyJob()};
+ QTest::ignoreMessage(QtWarningMsg, "Error: Key is null key");
+ const auto result = job->start(Key{});
+ QVERIFY(result.code() == GPG_ERR_INV_ARG);
+ }
+ }
+
+ void testErrorHandling_invalidReason()
+ {
+ // Get the key that shall be revoked
+ auto key = getTestKey("[email protected]");
+ QVERIFY(!key.isNull());
+ QVERIFY(!key.isRevoked());
+
+ {
+ auto job = std::unique_ptr<RevokeKeyJob>{openpgp()->revokeKeyJob()};
+ QTest::ignoreMessage(QtWarningMsg, QRegularExpression{"^Error: Invalid revocation reason"});
+ const auto result = job->exec(key, static_cast<RevocationReason>(-1));
+ QVERIFY(result.code() == GPG_ERR_INV_VALUE);
+ }
+ {
+ auto job = std::unique_ptr<RevokeKeyJob>{openpgp()->revokeKeyJob()};
+ QTest::ignoreMessage(QtWarningMsg, QRegularExpression{"^Error: Invalid revocation reason"});
+ const auto result = job->start(key, static_cast<RevocationReason>(4));
+ QVERIFY(result.code() == GPG_ERR_INV_VALUE);
+ }
+ }
+
+ void testErrorHandling_invalidDescription()
+ {
+ // Get the key that shall be revoked
+ auto key = getTestKey("[email protected]");
+ QVERIFY(!key.isNull());
+ QVERIFY(!key.isRevoked());
+
+ {
+ auto job = std::unique_ptr<RevokeKeyJob>{openpgp()->revokeKeyJob()};
+ QTest::ignoreMessage(QtWarningMsg, "Error: Revocation description contains empty lines or lines with endline characters");
+ const auto result = job->exec(key, RevocationReason::Unspecified,
+ {"line1", "", "line3"});
+ QVERIFY(result.code() == GPG_ERR_INV_VALUE);
+ }
+ {
+ auto job = std::unique_ptr<RevokeKeyJob>{openpgp()->revokeKeyJob()};
+ QTest::ignoreMessage(QtWarningMsg, "Error: Revocation description contains empty lines or lines with endline characters");
+ const auto result = job->start(key, RevocationReason::Unspecified,
+ {"line1\nline2"});
+ QVERIFY(result.code() == GPG_ERR_INV_VALUE);
+ }
+ }
+
private:
Key getTestKey(const char *pattern)
{