From 4b1798f0cdf87361869e7cf2b341acacd056c410 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Wed, 5 Apr 2017 15:04:00 +0200 Subject: Moved cpp code into src directory --- .../domain/mimetreeparser/tests/gpgerrortest.cpp | 214 --------------------- 1 file changed, 214 deletions(-) delete mode 100644 framework/domain/mimetreeparser/tests/gpgerrortest.cpp (limited to 'framework/domain/mimetreeparser/tests/gpgerrortest.cpp') diff --git a/framework/domain/mimetreeparser/tests/gpgerrortest.cpp b/framework/domain/mimetreeparser/tests/gpgerrortest.cpp deleted file mode 100644 index 4254d972..00000000 --- a/framework/domain/mimetreeparser/tests/gpgerrortest.cpp +++ /dev/null @@ -1,214 +0,0 @@ -/* - Copyright (c) 2016 Sandro Knauß - - This library is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published by - the Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This library 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 Library General Public - License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. -*/ - -#include "interface.h" -#include "interface_p.h" - -#include -#include -#include -#include - -#include -#include -#include -#include - -QByteArray readMailFromFile(const QString &mailFile) -{ - QFile file(QLatin1String(MAIL_DATA_DIR) + QLatin1Char('/') + mailFile); - file.open(QIODevice::ReadOnly); - Q_ASSERT(file.isOpen()); - return file.readAll(); -} - -void killAgent(const QString& dir) -{ - QProcess proc; - proc.setProgram(QStringLiteral("gpg-connect-agent")); - QStringList arguments; - arguments << "-S " << dir + "/S.gpg-agent"; - proc.start(); - proc.waitForStarted(); - proc.write("KILLAGENT\n"); - proc.write("BYE\n"); - proc.closeWriteChannel(); - proc.waitForFinished(); -} - -class GpgErrorTest : public QObject -{ - Q_OBJECT - -private slots: - - void testGpgConfiguredCorrectly() - { - setEnv("GNUPGHOME", GNUPGHOME); - - Parser parser(readMailFromFile("openpgp-inline-charset-encrypted.mbox")); - - auto contentPartList = parser.collectContentParts(); - QCOMPARE(contentPartList.size(), 1); - auto contentPart = contentPartList[0]; - QCOMPARE(contentPart->availableContents(), QVector() << "plaintext"); - auto contentList = contentPart->content("plaintext"); - QVERIFY(contentList[0]->content().startsWith("asdasd")); - QCOMPARE(contentList[0]->encryptions().size(), 1); - auto enc = contentList[0]->encryptions()[0]; - QCOMPARE(enc->errorType(), Encryption::NoError); - QCOMPARE(enc->errorString(), QString()); - QCOMPARE((int) enc->recipients().size(), 2); - } - - void testNoGPGInstalled_data() - { - QTest::addColumn("mailFileName"); - - QTest::newRow("openpgp-inline-charset-encrypted") << "openpgp-inline-charset-encrypted.mbox"; - QTest::newRow("openpgp-encrypted-attachment-and-non-encrypted-attachment") << "openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox"; - QTest::newRow("smime-encrypted") << "smime-encrypted.mbox"; - } - - void testNoGPGInstalled() - { - QFETCH(QString, mailFileName); - - setEnv("PATH", "/nonexististing"); - setGpgMEfname("/nonexisting/gpg", ""); - - Parser parser(readMailFromFile(mailFileName)); - auto contentPartList = parser.collectContentParts(); - - QCOMPARE(contentPartList.size(), 1); - auto contentPart = contentPartList[0]; - QCOMPARE(contentPart->availableContents(), QVector() << "plaintext"); - auto contentList = contentPart->content("plaintext"); - QCOMPARE(contentList[0]->encryptions().size(), 1); - QVERIFY(contentList[0]->content().isEmpty()); - auto enc = contentList[0]->encryptions()[0]; - qDebug() << "HUHU"<< enc->errorType(); - QCOMPARE(enc->errorType(), Encryption::UnknownError); - QCOMPARE(enc->errorString(), QString("Crypto plug-in \"OpenPGP\" could not decrypt the data.
Error: No data")); - QCOMPARE((int) enc->recipients().size(), 0); - } - - void testGpgIncorrectGPGHOME_data() - { - QTest::addColumn("mailFileName"); - - QTest::newRow("openpgp-inline-charset-encrypted") << "openpgp-inline-charset-encrypted.mbox"; - QTest::newRow("openpgp-encrypted-attachment-and-non-encrypted-attachment") << "openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox"; - QTest::newRow("smime-encrypted") << "smime-encrypted.mbox"; - } - - void testGpgIncorrectGPGHOME() - { - QFETCH(QString, mailFileName); - setEnv("GNUPGHOME", QByteArray(GNUPGHOME) + QByteArray("noexist")); - - Parser parser(readMailFromFile(mailFileName)); - - auto contentPartList = parser.collectContentParts(); - QCOMPARE(contentPartList.size(), 1); - auto contentPart = contentPartList[0]; - QCOMPARE(contentPart->availableContents(), QVector() << "plaintext"); - auto contentList = contentPart->content("plaintext"); - QCOMPARE(contentList[0]->encryptions().size(), 1); - QCOMPARE(contentList[0]->signatures().size(), 0); - QVERIFY(contentList[0]->content().isEmpty()); - auto enc = contentList[0]->encryptions()[0]; - qDebug() << enc->errorType(); - QCOMPARE(enc->errorType(), Encryption::KeyMissing); - QCOMPARE(enc->errorString(), QString("Crypto plug-in \"OpenPGP\" could not decrypt the data.
Error: Decryption failed")); - QCOMPARE((int) enc->recipients().size(), 2); - } - -public Q_SLOTS: - void init() - { - mResetGpgmeEngine = false; - mModifiedEnv.clear(); - { - QGpgME::openpgp(); // We need to intialize it, otherwise ctx will be a nullpointer - const GpgME::Context *ctx = GpgME::Context::createForProtocol(GpgME::Protocol::OpenPGP); - const auto engineinfo = ctx->engineInfo(); - mGpgmeEngine_fname = engineinfo.fileName(); - } - mEnv = QProcessEnvironment::systemEnvironment(); - unsetEnv("GNUPGHOME"); - } - - void cleanup() - { - QCoreApplication::sendPostedEvents(); - - const QString &gnupghome = qgetenv("GNUPGHOME"); - if (!gnupghome.isEmpty()) { - killAgent(gnupghome); - } - - resetGpgMfname(); - resetEnv(); - } -private: - void unsetEnv(const QByteArray &name) - { - mModifiedEnv << name; - unsetenv(name); - } - - void setEnv(const QByteArray &name, const QByteArray &value) - { - mModifiedEnv << name; - setenv(name, value , 1); - } - - void resetEnv() - { - foreach(const auto &i, mModifiedEnv) { - if (mEnv.contains(i)) { - setenv(i, mEnv.value(i).toUtf8(), 1); - } else { - unsetenv(i); - } - } - } - - void resetGpgMfname() - { - if (mResetGpgmeEngine) { - gpgme_set_engine_info (GPGME_PROTOCOL_OpenPGP, mGpgmeEngine_fname, NULL); - } - } - - void setGpgMEfname(const QByteArray &fname, const QByteArray &homedir) - { - mResetGpgmeEngine = true; - gpgme_set_engine_info (GPGME_PROTOCOL_OpenPGP, fname, homedir); - } - - QSet mModifiedEnv; - QProcessEnvironment mEnv; - bool mResetGpgmeEngine; - QByteArray mGpgmeEngine_fname; -}; - -QTEST_GUILESS_MAIN(GpgErrorTest) -#include "gpgerrortest.moc" -- cgit v1.2.3