From 6e25da6a193339e5a75c3c1ae118c2bcddfba4a1 Mon Sep 17 00:00:00 2001 From: Christian Kieschnick Date: Fri, 4 Jan 2019 12:04:46 +0100 Subject: [PATCH] Fixed issues detected by test suite and ci Fixed serialization for KeeShareSettings::ScopedCertificate Fixed tests for KeeShareSettings serialization Fixed tests Cli features - tests translation for recycle bin since the tests are executed with the system locale Fixed initialization issue in ShareObserver --- src/keeshare/KeeShareSettings.cpp | 21 +++++++++------------ src/keeshare/ShareObserver.cpp | 6 +++--- tests/TestCli.cpp | 10 +++++----- tests/TestSharing.cpp | 6 +++--- 4 files changed, 20 insertions(+), 23 deletions(-) diff --git a/src/keeshare/KeeShareSettings.cpp b/src/keeshare/KeeShareSettings.cpp index bfc2f2fd..ff34ed07 100644 --- a/src/keeshare/KeeShareSettings.cpp +++ b/src/keeshare/KeeShareSettings.cpp @@ -308,15 +308,14 @@ namespace KeeShareSettings void ScopedCertificate::serialize(QXmlStreamWriter& writer, const ScopedCertificate& scopedCertificate) { writer.writeAttribute("Path", scopedCertificate.path); + QString trust = "Ask"; if(scopedCertificate.trust == KeeShareSettings::Trust::Trusted) { - writer.writeAttribute("Trust", "Trusted"); + trust = "Trusted"; } - else if(scopedCertificate.trust == KeeShareSettings::Trust::Untrusted){ - writer.writeAttribute("Trust", "Untrusted"); - } - else { - writer.writeAttribute("Trust", "Ask"); + if(scopedCertificate.trust == KeeShareSettings::Trust::Untrusted){ + trust = "Untrusted"; } + writer.writeAttribute("Trust", trust); Certificate::serialize(writer, scopedCertificate.certificate); } @@ -324,16 +323,14 @@ namespace KeeShareSettings { ScopedCertificate scopedCertificate; scopedCertificate.path = reader.attributes().value("Path").toString(); - auto trust = reader.attributes().value("Trusted").toString(); - if(trust.compare("Trusted", Qt::CaseInsensitive)) { + scopedCertificate.trust = KeeShareSettings::Trust::Ask; + auto trust = reader.attributes().value("Trust").toString(); + if(trust.compare("Trusted", Qt::CaseInsensitive) == 0) { scopedCertificate.trust = KeeShareSettings::Trust::Trusted; } - if(trust.compare("Unrusted", Qt::CaseInsensitive)) { + if(trust.compare("Untrusted", Qt::CaseInsensitive) == 0) { scopedCertificate.trust = KeeShareSettings::Trust::Untrusted; } - else { - scopedCertificate.trust = KeeShareSettings::Trust::Ask; - } scopedCertificate.certificate = Certificate::deserialize(reader); return scopedCertificate; } diff --git a/src/keeshare/ShareObserver.cpp b/src/keeshare/ShareObserver.cpp index 8b41397e..edebd306 100644 --- a/src/keeshare/ShareObserver.cpp +++ b/src/keeshare/ShareObserver.cpp @@ -80,7 +80,7 @@ QPair check(QByteArray& data, certificate = sign.certificate; auto key = sign.certificate.sshKey(); key.openKey(QString()); - const Signature signer; + const auto signer = Signature{}; if (!signer.verify(data, sign.signature, key)) { qCritical("Invalid signature for sharing container %s.", qPrintable(reference.path)); return {Invalid, KeeShareSettings::Certificate()}; @@ -212,7 +212,7 @@ void ShareObserver::reinitialize() QStringList success; QStringList warning; QStringList error; - for (Update update : updated) { + for (const auto& update : updated) { if (!update.oldReference.path.isEmpty()) { m_fileWatcher->removePath(update.oldReference.path); } @@ -222,7 +222,7 @@ void ShareObserver::reinitialize() } if (update.newReference.isImporting()) { - const Result result = this->importFromReferenceContainer(update.newReference.path); + const auto result = this->importFromReferenceContainer(update.newReference.path); if (!result.isValid()) { // tolerable result - blocked import or missing source continue; diff --git a/tests/TestCli.cpp b/tests/TestCli.cpp index 6a4ed339..ef633d26 100644 --- a/tests/TestCli.cpp +++ b/tests/TestCli.cpp @@ -919,7 +919,7 @@ void TestCli::testRemove() readBack.close(); QVERIFY(readBackDb); QVERIFY(!readBackDb->rootGroup()->findEntryByPath("/Sample Entry")); - QVERIFY(readBackDb->rootGroup()->findEntryByPath("/Recycle Bin/Sample Entry")); + QVERIFY(readBackDb->rootGroup()->findEntryByPath(QString("/%1/Sample Entry").arg(Group::tr("Recycle Bin")))); pos = m_stdoutFile->pos(); @@ -937,7 +937,7 @@ void TestCli::testRemove() readBack.close(); QVERIFY(readBackDb); QVERIFY(!readBackDb->rootGroup()->findEntryByPath("/Sample Entry")); - QVERIFY(!readBackDb->rootGroup()->findEntryByPath("/Recycle Bin/Sample Entry")); + QVERIFY(!readBackDb->rootGroup()->findEntryByPath(QString("/%1/Sample Entry").arg(Group::tr("Recycle Bin")))); pos = m_stdoutFile->pos(); @@ -977,13 +977,13 @@ void TestCli::testRemoveQuiet() readBack.close(); QVERIFY(readBackDb); QVERIFY(!readBackDb->rootGroup()->findEntryByPath("/Sample Entry")); - QVERIFY(readBackDb->rootGroup()->findEntryByPath("/Recycle Bin/Sample Entry")); + QVERIFY(readBackDb->rootGroup()->findEntryByPath(QString("/%1/Sample Entry").arg(Group::tr("Recycle Bin")))); pos = m_stdoutFile->pos(); // remove the entry completely Utils::Test::setNextPassword("a"); - removeCmd.execute({"rm", "-q", m_dbFile->fileName(), "/Recycle Bin/Sample Entry"}); + removeCmd.execute({"rm", "-q", m_dbFile->fileName(), QString("/%1/Sample Entry").arg(Group::tr("Recycle Bin"))}); m_stdoutFile->seek(pos); QCOMPARE(m_stdoutFile->readAll(), QByteArray("")); @@ -994,7 +994,7 @@ void TestCli::testRemoveQuiet() readBack.close(); QVERIFY(readBackDb); QVERIFY(!readBackDb->rootGroup()->findEntryByPath("/Sample Entry")); - QVERIFY(!readBackDb->rootGroup()->findEntryByPath("/Recycle Bin/Sample Entry")); + QVERIFY(!readBackDb->rootGroup()->findEntryByPath(QString("/%1/Sample Entry").arg(Group::tr("Recycle Bin")))); } void TestCli::testShow() diff --git a/tests/TestSharing.cpp b/tests/TestSharing.cpp index b1e85edb..d49e585b 100644 --- a/tests/TestSharing.cpp +++ b/tests/TestSharing.cpp @@ -301,12 +301,12 @@ void TestSharing::testSettingsSerialization_data() QTest::addColumn("exporting"); QTest::addColumn("ownCertificate"); QTest::addColumn("ownKey"); - QTest::addColumn>("foreignCertificates"); + QTest::addColumn>("foreignCertificates"); QTest::newRow("1") << false << false << KeeShareSettings::Certificate() << KeeShareSettings::Key() << QList(); QTest::newRow("2") << true << false << KeeShareSettings::Certificate() << KeeShareSettings::Key() << QList(); QTest::newRow("3") << true << true << KeeShareSettings::Certificate() << KeeShareSettings::Key() << QList({ certificate0, certificate1 }); - QTest::newRow("4") << false << true << certificate0 << key0 << QList(); - QTest::newRow("5") << false << false << certificate0 << key0 << QList({ certificate1 }); + QTest::newRow("4") << false << true << certificate0.certificate << key0 << QList(); + QTest::newRow("5") << false << false << certificate0.certificate << key0 << QList({ certificate1 }); } const OpenSSHKey& TestSharing::stubkey(int index)