qt: Fix tofuinfo test when gpg is gpg2
authorAndre Heinecke <aheinecke@intevation.de>
Thu, 25 Aug 2016 13:20:02 +0000 (15:20 +0200)
committerAndre Heinecke <aheinecke@intevation.de>
Thu, 25 Aug 2016 13:20:02 +0000 (15:20 +0200)
* lang/qt/tests/t-support.cpp (QGpgMETest::copyKeyrings): New helper.
* lang/qt/tests/t-support.h: Declare.
* lang/qt/tests/t-encrypt.cpp: use it
* lang/qt/tests/t-tofuinbo.cpp: ditto.

--
New helper takes care of copying the correct files for either
keybox or keyring.

lang/qt/tests/t-encrypt.cpp
lang/qt/tests/t-support.cpp
lang/qt/tests/t-support.h
lang/qt/tests/t-tofuinfo.cpp

index 708c205..44cea96 100644 (file)
@@ -242,11 +242,7 @@ public Q_SLOT:
         Q_ASSERT(agentConf.open(QIODevice::WriteOnly));
         agentConf.write("allow-loopback-pinentry");
         agentConf.close();
-        Q_ASSERT(QFile::copy(gpgHome + QStringLiteral("/pubring.gpg"),
-                 mDir.path() + QStringLiteral("/pubring.gpg")));
-        Q_ASSERT(QFile::copy(gpgHome + QStringLiteral("/secring.gpg"),
-                 mDir.path() + QStringLiteral("/secring.gpg")));
-
+        copyKeyrings(gpgHome, mDir.path());
     }
 
 private:
index ffb0f9e..73e8d5c 100644 (file)
@@ -45,6 +45,31 @@ void QGpgMETest::cleanupTestCase()
     killAgent();
 }
 
+bool QGpgMETest::copyKeyrings(const QString &src, const QString &dest)
+{
+    bool is21dir = QFileInfo(src + QDir::separator() + QStringLiteral("pubring.kbx")).exists();
+    const QString name = is21dir ? QStringLiteral("pubring.kbx") :
+                                  QStringLiteral("pubring.gpg");
+    if (!QFile::copy(src + name, dest + QDir::separator() + name)) {
+        return false;
+    }
+    if (!is21dir) {
+        return (QFile::copy(src + QDir::separator() + QStringLiteral("secring.gpg"),
+                 dest + QDir::separator() + QStringLiteral("secring.gpg")));
+    }
+    QDir dir (src + QDir::separator() + QStringLiteral("private-keys-v1.d"));
+    QDir target(dest);
+    if (!target.mkdir("private-keys-v1.d")) {
+        return false;
+    }
+    foreach (QString f, dir.entryList(QDir::Files)) {
+        if (!QFile::copy(src + QDir::separator() + f, dest + QDir::separator() + f)) {
+            return false;
+        }
+    }
+    return true;
+}
+
 void killAgent(const QString& dir)
 {
     QProcess proc;
@@ -59,4 +84,5 @@ void killAgent(const QString& dir)
     proc.waitForFinished();
 }
 
+
 #include "t-support.hmoc"
index cf0cb26..74163b1 100644 (file)
@@ -55,6 +55,8 @@ void killAgent(const QString &dir = qgetenv("GNUPGHOME"));
 class QGpgMETest : public QObject
 {
     Q_OBJECT
+protected:
+    bool copyKeyrings(const QString &from, const QString& to);
 
 public Q_SLOTS:
     void initTestCase();
index ab466ee..7eea1ea 100644 (file)
@@ -239,11 +239,7 @@ private Q_SLOTS:
         Q_ASSERT(agentConf.open(QIODevice::WriteOnly));
         agentConf.write("allow-loopback-pinentry");
         agentConf.close();
-        Q_ASSERT(QFile::copy(gpgHome + QStringLiteral("/pubring.gpg"),
-                 mDir.path() + QStringLiteral("/pubring.gpg")));
-        Q_ASSERT(QFile::copy(gpgHome + QStringLiteral("/secring.gpg"),
-                 mDir.path() + QStringLiteral("/secring.gpg")));
-
+        copyKeyrings(gpgHome, mDir.path());
     }
 private:
     QTemporaryDir mDir;