diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index f4c67566..1ce5ece3 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,45 +1,46 @@ 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) create_test(kgpg-disable kgpgchangedisable.h kgpgchangedisable.cpp) +create_test(kgpg-interface kgpginterface.h kgpginterface.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/kgpginterface.cpp b/tests/kgpginterface.cpp new file mode 100644 index 00000000..f02fd874 --- /dev/null +++ b/tests/kgpginterface.cpp @@ -0,0 +1,40 @@ +#include "kgpginterface.h" +#include "../kgpginterface.h" +#include "common.h" + +#include + +void KGpgInterfaceTest::init() +{ + QVERIFY(resetGpgConf()); +} + +void KGpgInterfaceTest::testReadPublicKeys() +{ + addGpgKey(QLatin1String("keys/kgpgtest_BA7695F3C550DF14_pub.asc")); + KgpgCore::KgpgKeyList keys = KgpgInterface::readPublicKeys(); + QString fingerprint = QLatin1String("FBAF 08DD 7D9D 0921 C15D DA9F BA76 95F3 C550 DF14"); + QCOMPARE(keys.size(), 1); + KgpgCore::KgpgKey key = keys.first(); + QVERIFY(fingerprint.compare(key.fingerprint())); +} + +void KGpgInterfaceTest::testReadSecretKeys() +{ + addGpgKey(QLatin1String("keys/kgpgtest_BA7695F3C550DF14.asc"), + readFile(QLatin1String("keys/kgpgtest_BA7695F3C550DF14.pass"))); + KgpgCore::KgpgKeyList keys = KgpgInterface::readSecretKeys(); + QString keyID = QLatin1String("BA7695F3C550DF14"); + QCOMPARE(keys.size(), 1); + QVERIFY(keys.first().fullId().compare(keyID) == 0); +} + +void KGpgInterfaceTest::testReadEmptyKeyring() +{ + KgpgCore::KgpgKeyList keys = KgpgInterface::readSecretKeys(); + KgpgCore::KgpgKeyList pub_keys = KgpgInterface::readPublicKeys(); + QCOMPARE(keys.size(), 0); + QCOMPARE(pub_keys.size(), 0); +} + +QTEST_MAIN(KGpgInterfaceTest) diff --git a/tests/kgpginterface.h b/tests/kgpginterface.h new file mode 100644 index 00000000..11f67574 --- /dev/null +++ b/tests/kgpginterface.h @@ -0,0 +1,16 @@ +#ifndef KGPG_INTERFACE_TEST_H +#define KGPG_INTERFACE_TEST_H +#include + +class KGpgInterfaceTest: public QObject +{ + Q_OBJECT +private slots: + void init(); + void testReadPublicKeys(); + void testReadSecretKeys(); + void testReadEmptyKeyring(); +}; + + +#endif