diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 494069c6..edff91a9 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,51 +1,52 @@ 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) create_test(kgpg-encrypt kgpgencrypt.h kgpgencrypt.cpp) create_test(kgpg-decrypt kgpgdecrypt.h kgpgdecrypt.cpp) create_test(kgpg-del-key kgpgdelkey.h kgpgdelkey.cpp) create_test(kgpg-add-photo kgpgaddphoto.h kgpgaddphoto.cpp) +create_test(kgpg-add-uid kgpgadduid.h kgpgadduid.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 keys/image.jpg ) 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/kgpgadduid.cpp b/tests/kgpgadduid.cpp new file mode 100644 index 00000000..68ab5398 --- /dev/null +++ b/tests/kgpgadduid.cpp @@ -0,0 +1,42 @@ +#include "kgpgadduid.h" +#include "../transactions/kgpgadduid.h" +#include "../kgpginterface.h" +#include "../kgpgsettings.h" +#include "common.h" + +#include +#include +#include +#include + +void KGpgAddUidTest::init() +{ + QVERIFY(resetGpgConf()); +} + +void KGpgAddUidTest::testAddUid() +{ + QString passphrase = readFile(QLatin1String("keys/kgpgtest_BA7695F3C550DF14.pass")); + addGpgKey(QLatin1String("keys/kgpgtest_BA7695F3C550DF14_pub.asc")); + addGpgKey(QLatin1String("keys/kgpgtest_BA7695F3C550DF14.asc"), passphrase); + QString keyId = QLatin1String("BA7695F3C550DF14"); + QString name = QLatin1String("Test name"); + QString email = QLatin1String("test@kde.org"); + QString comment = QLatin1String("Test comment"); + KGpgAddUid *transaction = new KGpgAddUid(this, keyId, name, email, comment); + addPasswordArguments(transaction, passphrase); + QObject::connect(transaction, &KGpgAddUid::done, + [](int result) { QCOMPARE(result, KGpgTransaction::TS_OK); }); + QSignalSpy spy(transaction, &KGpgAddUid::done); + transaction->start(); + QVERIFY(spy.wait()); + KgpgCore::KgpgKeyList keyList = KgpgInterface::readPublicKeys(); + QCOMPARE(keyList.size(), 1); + KgpgCore::KgpgKey key = keyList.first(); + QCOMPARE(key.name(), name); + QCOMPARE(key.email(), email); + QCOMPARE(key.comment(), comment); + QCOMPARE(key.fullId(), keyId); +} + +QTEST_MAIN(KGpgAddUidTest) diff --git a/tests/kgpgadduid.h b/tests/kgpgadduid.h new file mode 100644 index 00000000..d48d21a5 --- /dev/null +++ b/tests/kgpgadduid.h @@ -0,0 +1,13 @@ +#ifndef KGPGADDUID_TEST_H +#define KGPGADDUID_TEST_H + +#include + +class KGpgAddUidTest : public QObject { + Q_OBJECT +private slots: + void init(); + void testAddUid(); +}; + +#endif