aboutsummaryrefslogtreecommitdiffstats
path: root/lang/qt/tests/t-various.cpp
diff options
context:
space:
mode:
authorIngo Klöcker <[email protected]>2020-08-04 14:23:55 +0000
committerIngo Klöcker <[email protected]>2020-08-04 14:53:57 +0000
commit84c6b6e2fea1176991bd89ac421af492d4550d6e (patch)
tree31315f7dfc03fcce4a0b26644cfdcf2af57eafbc /lang/qt/tests/t-various.cpp
parentcpp: Add support for gpgme_op_setexpire (diff)
downloadgpgme-84c6b6e2fea1176991bd89ac421af492d4550d6e.tar.gz
gpgme-84c6b6e2fea1176991bd89ac421af492d4550d6e.zip
qt: Add test for setExpire
* lang/qt/tests/t-various.cpp (TestVarious::testSetExpire): New. -- GnuPG-bug-id: 5003
Diffstat (limited to 'lang/qt/tests/t-various.cpp')
-rw-r--r--lang/qt/tests/t-various.cpp54
1 files changed, 54 insertions, 0 deletions
diff --git a/lang/qt/tests/t-various.cpp b/lang/qt/tests/t-various.cpp
index 76e68063..dc5a2d1c 100644
--- a/lang/qt/tests/t-various.cpp
+++ b/lang/qt/tests/t-various.cpp
@@ -170,6 +170,60 @@ private Q_SLOTS:
QVERIFY(id_revoked);
}
+ void testSetExpire()
+ {
+ if (GpgME::engineInfo(GpgME::GpgEngine).engineVersion() < "2.1.22") {
+ return;
+ }
+ KeyListJob *job = openpgp()->keyListJob(false, true, true);
+ std::vector<GpgME::Key> keys;
+ GpgME::KeyListResult result = job->exec(QStringList() << QStringLiteral("[email protected]"),
+ false, keys);
+ delete job;
+ QVERIFY (!result.error());
+ QVERIFY (keys.size() == 1);
+ Key key = keys.front();
+
+ QVERIFY (key.subkey(0).expirationTime() == time_t(0));
+ QVERIFY (key.subkey(1).expirationTime() == time_t(0));
+
+ auto ctx = Context::createForProtocol(key.protocol());
+ QVERIFY (ctx);
+ TestPassphraseProvider provider;
+ ctx->setPassphraseProvider(&provider);
+ ctx->setPinentryMode(Context::PinentryLoopback);
+
+ // change expiration of the main key
+ QVERIFY(!ctx->setExpire(key, 1000));
+ delete ctx;
+ key.update();
+
+ QVERIFY (key.subkey(0).expirationTime() != time_t(0));
+ QVERIFY (key.subkey(1).expirationTime() == time_t(0));
+ time_t keyExpiration = key.subkey(0).expirationTime();
+
+ // change expiration of all subkeys
+ ctx = Context::createForProtocol(key.protocol());
+ QVERIFY(!ctx->setExpire(key, 2000, std::vector<Subkey>(), Context::SetExpireAllSubkeys));
+ delete ctx;
+ key.update();
+
+ QVERIFY (key.subkey(0).expirationTime() == keyExpiration);
+ QVERIFY (key.subkey(1).expirationTime() != time_t(0));
+ time_t subkeyExpiration = key.subkey(1).expirationTime();
+
+ // change expiration of specific subkey(s)
+ ctx = Context::createForProtocol(key.protocol());
+ std::vector<Subkey> specificSubkeys;
+ specificSubkeys.push_back(key.subkey(1));
+ QVERIFY(!ctx->setExpire(key, 3000, specificSubkeys));
+ delete ctx;
+ key.update();
+
+ QVERIFY (key.subkey(0).expirationTime() == keyExpiration);
+ QVERIFY (key.subkey(1).expirationTime() != subkeyExpiration);
+ }
+
void testVersion()
{
QVERIFY(EngineInfo::Version("2.1.0") < EngineInfo::Version("2.1.1"));