diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 363abc36..b7559225 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,43 +1,44 @@ find_package(Qt5Test REQUIRED) set(test_LIBS kgpg_lib Qt5::Test) set(COMMON common.h common.cpp) function(create_test name) add_executable(${name} ${ARGN} ${COMMON}) target_link_libraries(${name} ${test_LIBS}) add_test(NAME ${name} COMMAND ${name}) set_property(TEST ${name} PROPERTY ENVIRONMENT "XDG_CONFIG_HOME=${CMAKE_BINARY_DIR}/tests") set_property(TEST ${name} PROPERTY RUN_SERIAL TRUE) #since gpg config home is shared between each test add_dependencies(${name} test-data) endfunction() create_test(kgpg-import kgpgimport.h kgpgimport.cpp) create_test(kgpg-verify kgpgverify.h kgpgverify.cpp) +create_test(kgpg-change-trust kgpgchangetrust.h kgpgchangetrust.cpp) set(GpgConf .gnupg/gpg.conf) set(KgpgConf kgpgrc) set(Keys keys/kgpgtest_BA7695F3C550DF14.asc keys/kgpgtest_BA7695F3C550DF14.pass keys/kgpgtest_BA7695F3C550DF14_pub.asc keys/signed_bad_sig keys/signed_text keys/encrypted_text.txt keys/encrypted_text_hide_key_id.txt ) add_custom_target(test-data) add_custom_command(TARGET test-data PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/tests/.gnupg ${CMAKE_BINARY_DIR}/tests/gnupg) add_custom_command(TARGET test-data PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/tests/keys ${CMAKE_BINARY_DIR}/tests/keys) add_custom_command(TARGET test-data PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/tests/kgpgrc ${CMAKE_BINARY_DIR}/tests/kgpgrc) diff --git a/tests/kgpgchangetrust.cpp b/tests/kgpgchangetrust.cpp new file mode 100644 index 00000000..a5ec7f99 --- /dev/null +++ b/tests/kgpgchangetrust.cpp @@ -0,0 +1,39 @@ +#include "kgpgchangetrust.h" +#include "../transactions/kgpgchangetrust.h" +#include "../kgpginterface.h" +#include "common.h" + +#include +#include + +void KGpgChangeTrustTest::init() +{ + QVERIFY(resetGpgConf()); +} + +void KGpgChangeTrustTest::testChangeTrust() +{ + QFETCH(gpgme_validity_t, target_trust); + QLatin1String keyID("BA7695F3C550DF14"); + addGpgKey(QLatin1String("keys/kgpgtest_BA7695F3C550DF14.asc")); + KGpgChangeTrust *transaction = new KGpgChangeTrust(this, keyID, target_trust); + QSignalSpy spy(transaction, &KGpgChangeTrust::done); + QObject::connect(transaction, &KGpgChangeTrust::done, + [](int result) { QCOMPARE(result, KGpgTransaction::TS_OK); }); + transaction->start(); + QVERIFY(spy.wait()); + KgpgCore::KgpgKeyList keyList = KgpgInterface::readPublicKeys(QStringList(keyID)); + QCOMPARE(keyList.first().ownerTrust(), target_trust); +} + +void KGpgChangeTrustTest::testChangeTrust_data() +{ + QTest::addColumn("target_trust"); + QTest::newRow("ultimate") << GPGME_VALIDITY_ULTIMATE; + QTest::newRow("full") << GPGME_VALIDITY_FULL; + QTest::newRow("marginal") << GPGME_VALIDITY_MARGINAL; + QTest::newRow("never") << GPGME_VALIDITY_NEVER; +} + +// #include "kgpgchangetrust.moc" +QTEST_MAIN(KGpgChangeTrustTest) diff --git a/tests/kgpgchangetrust.h b/tests/kgpgchangetrust.h new file mode 100644 index 00000000..4e9ce52e --- /dev/null +++ b/tests/kgpgchangetrust.h @@ -0,0 +1,16 @@ +#ifndef KGPGCHANGETRUST_TEST_H +#define KGPGCHANGETRUST_TEST_H +#include +#include + +class KGpgChangeTrustTest : public QObject { + Q_OBJECT +private slots: + void init(); + void testChangeTrust(); + void testChangeTrust_data(); + +}; + +Q_DECLARE_METATYPE(gpgme_validity_t) +#endif