Qt: Add a unit test for qgpgme

* configure.ac: Configure test Makefile.
* m4/qt.m4: Look up Qt5Test flags.
* lang/qt/tests/t-keylist.cpp: New. Simple keylist check.
* lang/qt/tests/Makefile.am: New. General test framework.

--
This test mostly checks that it basically compiles / works and
adds a test framework.
This commit is contained in:
Andre Heinecke 2016-04-03 01:48:46 -08:00
parent b7b9e38399
commit faf987dd62
5 changed files with 104 additions and 1 deletions

View File

@ -678,6 +678,7 @@ AC_CONFIG_FILES(lang/cpp/src/GpgmeppConfigVersion.cmake)
AC_CONFIG_FILES(lang/qt/Makefile lang/qt/src/Makefile)
AC_CONFIG_FILES(lang/qt/src/QGpgmeConfig.cmake.in)
AC_CONFIG_FILES(lang/qt/src/QGpgmeConfigVersion.cmake)
AC_CONFIG_FILES(lang/qt/tests/Makefile)
AC_CONFIG_FILES([lang/Makefile lang/cl/Makefile lang/cl/gpgme.asd])
AC_OUTPUT

View File

@ -18,6 +18,6 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA
SUBDIRS = src
SUBDIRS = src tests
EXTRA_DIST = README

66
lang/qt/tests/Makefile.am Normal file
View File

@ -0,0 +1,66 @@
# Makefile.am - Makefile for GPGME Qt tests.
# Copyright (C) 2016 Intevation GmbH
#
# This file is part of GPGME.
#
# GPGME is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation; either version 2.1 of the
# License, or (at your option) any later version.
#
# GPGME is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
# Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, see <http://www.gnu.org/licenses/>.
## Process this file with automake to produce Makefile.in
GPG = gpg
TESTS_ENVIRONMENT = GNUPGHOME=$(abs_builddir)
TESTS = t-keylist
moc_files = t-keylist.moc
AM_LDFLAGS = -no-install
LDADD = ../../cpp/src/libgpgmepp.la ../src/libqgpgme.la \
../../../src/libgpgme.la @GPGME_QT_LIBS@ @GPG_ERROR_LIBS@ \
@GPGME_QTTEST_LIBS@
AM_CPPFLAGS = -I$(top_builddir)/src @GPG_ERROR_CFLAGS@ \
@GPGME_QT_CFLAGS@ @GPG_ERROR_CFLAGS@ @LIBASSUAN_CFLAGS@ \
@GPGME_QTTEST_CFLAGS@ \
-I$(top_srcdir)/lang/cpp/src -I$(top_srcdir)/lang/qt/src \
-DTOP_SRCDIR="$(top_srcdir)"
check-local: ./t-keylist ./pubring-stamp
t_keylist_SOURCES = t-keylist.cpp t-keylist.h
nodist_t_keylist_SOURCES = $(moc_files)
BUILT_SOURCES = $(moc_files)
noinst_PROGRAMS = t-keylist
CLEANFILES = secring.gpg pubring.gpg pubring.kbx trustdb.gpg dirmngr.conf \
gpg-agent.conf pubring.kbx~ S.gpg-agent gpg.conf pubring.gpg~ \
random_seed S.gpg-agent .gpg-v21-migrated pubring-stamp $(moc_files)
export GNUPGHOME := $(abs_builddir)
./pubring-stamp: $(top_srcdir)/tests/gpg/pubdemo.asc \
$(top_srcdir)/tests/gpg/secdemo.asc
$(GPG) --no-permission-warning \
--import $(top_srcdir)/tests/gpg/pubdemo.asc
-$(GPG) --no-permission-warning \
--import $(top_srcdir)/tests/gpg/secdemo.asc
touch ./pubring-stamp
.cpp.moc:
$(MOC) `test -f '$<' || echo '$(srcdir)/'`$< -o $@

View File

@ -0,0 +1,31 @@
#include <QDebug>
#include <QTest>
#include "keylistjob.h"
#include "qgpgmebackend.h"
#include "keylistresult.h"
using namespace QGpgME;
class KeyListTest : public QObject
{
Q_OBJECT
private Q_SLOTS:
void testSingleKeyListSync()
{
QGpgMEBackend backend;
KeyListJob *job = backend.openpgp()->keyListJob(false, false, false);
std::vector<GpgME::Key> keys;
GpgME::KeyListResult result = job->exec(QStringList() << QStringLiteral("alfa@example.net"),
false, keys);
Q_ASSERT (!result.error());
Q_ASSERT (keys.size() == 1);
const QString kId = QLatin1String(keys.front().keyID());
Q_ASSERT (kId == QStringLiteral("2D727CC768697734"));
}
};
QTEST_MAIN(KeyListTest)
#include "t-keylist.moc"

View File

@ -18,6 +18,11 @@ AC_DEFUN([FIND_QT],
[have_qt5_libs="yes"],
[have_qt5_libs="no"])
PKG_CHECK_MODULES(GPGME_QTTEST,
Qt5Test >= 5.0.0,
[have_qt5test_libs="yes"],
[have_qt5test_libs="no"])
if "$PKG_CONFIG" --variable qt_config Qt5Core | grep -q "reduce_relocations"; then
GPGME_QT_CFLAGS="$GPGME_QT_CFLAGS -fpic"
fi