From 3d370559fd9aec2fe4acd6d06662a24115e62b42 Mon Sep 17 00:00:00 2001 From: IgorekLoschinin Date: Wed, 2 Jun 2021 22:27:55 +0300 Subject: [PATCH 01/11] ref #60 Added implementation for method checkSign. --- .../CopyrighFixer/ifilemanager.cpp | 16 +++---- src/CopyrighFixer/CopyrighFixer/signer.cpp | 45 ++++++++++++++++++- 2 files changed, 51 insertions(+), 10 deletions(-) diff --git a/src/CopyrighFixer/CopyrighFixer/ifilemanager.cpp b/src/CopyrighFixer/CopyrighFixer/ifilemanager.cpp index 5a5c260..507bb92 100644 --- a/src/CopyrighFixer/CopyrighFixer/ifilemanager.cpp +++ b/src/CopyrighFixer/CopyrighFixer/ifilemanager.cpp @@ -16,35 +16,35 @@ bool IFileManager::isSupport(const Extension &curExt) const { Extension IFileManager::toExtension(const QString &curExt) const { - if (".cpp" == curExt) { + if ("cpp" == curExt) { return Extension::CPP; } - if (".hpp" == curExt) { + if ("hpp" == curExt) { return Extension::HPP; } - if (".h" == curExt) { + if ("h" == curExt) { return Extension::H; } - if (".cc" == curExt) { + if ("cc" == curExt) { return Extension::CC; } - if (".qml" == curExt) { + if ("qml" == curExt) { return Extension::QML; } - if (".pro" == curExt) { + if ("pro" == curExt) { return Extension::PRO; } - if (".txt" == curExt) { + if ("txt" == curExt) { return Extension::TXT; } - if (".py" == curExt) { + if ("py" == curExt) { return Extension::PY; } diff --git a/src/CopyrighFixer/CopyrighFixer/signer.cpp b/src/CopyrighFixer/CopyrighFixer/signer.cpp index 0628739..02d5383 100644 --- a/src/CopyrighFixer/CopyrighFixer/signer.cpp +++ b/src/CopyrighFixer/CopyrighFixer/signer.cpp @@ -7,13 +7,55 @@ #include "signer.h" #include "CopyrighFixer/ifilemanager.h" +#include namespace CopyrighFixer { Signer::Signer() { } -bool Signer::checkSign(const Config &objConf) { +bool Signer::checkSign(const Config &objConf) { + + Config currConfig = objConf; + + QDir currentFolder(currConfig.getSrcDir()); + currentFolder.setFilter(QDir::Dirs | QDir::Files); + + QFileInfoList folderItems(currentFolder.entryInfoList()); + + for (auto i_file: folderItems) { + + if (i_file.fileName() == "." || i_file.fileName() == "..") { + continue; + } + + if (!i_file.isDir()) { + + IFileManager *currFM = searchFileByExt(i_file.suffix()); + Signature objSing = currConfig.getSignVal(); + + if (currFM == nullptr) { + return false; + } + + bool valRead = currFM->read(i_file.filePath(), objSing); + if (!valRead) { + return false; + } + + currConfig.setSingValue(objSing); + + bool valWrite = currFM->write(i_file.filePath(), objSing); + if (!valWrite) { + return false; + } + + } else { + currConfig.setSourceDir(i_file.filePath()); + checkSign(currConfig); + } + } + return true; } @@ -25,7 +67,6 @@ IFileManager *Signer::searchFileByExt(const QString &extension) { return itemFM; } - } return nullptr; } From 7789c4c17022f101ab1441630963e5c52f585842 Mon Sep 17 00:00:00 2001 From: IgorekLoschinin Date: Sun, 6 Jun 2021 13:45:06 +0300 Subject: [PATCH 02/11] ref #60 Added method mergeSign, unittests. --- src/CopyrighFixer/CopyrighFixer/signer.cpp | 77 +++++++++--- src/CopyrighFixer/CopyrighFixer/signer.h | 8 ++ tests/tstMain.cpp | 2 + tests/units/signertest.cpp | 137 ++++++++++++++++++++- tests/units/signertest.h | 20 +++ 5 files changed, 228 insertions(+), 16 deletions(-) diff --git a/src/CopyrighFixer/CopyrighFixer/signer.cpp b/src/CopyrighFixer/CopyrighFixer/signer.cpp index 02d5383..2a90a00 100644 --- a/src/CopyrighFixer/CopyrighFixer/signer.cpp +++ b/src/CopyrighFixer/CopyrighFixer/signer.cpp @@ -8,6 +8,7 @@ #include "signer.h" #include "CopyrighFixer/ifilemanager.h" #include +#include namespace CopyrighFixer { Signer::Signer() { @@ -19,46 +20,92 @@ bool Signer::checkSign(const Config &objConf) { Config currConfig = objConf; QDir currentFolder(currConfig.getSrcDir()); - currentFolder.setFilter(QDir::Dirs | QDir::Files); + currentFolder.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot); QFileInfoList folderItems(currentFolder.entryInfoList()); for (auto i_file: folderItems) { - if (i_file.fileName() == "." || i_file.fileName() == "..") { - continue; - } + if (i_file.isDir()) { - if (!i_file.isDir()) { + currConfig.setSourceDir(i_file.filePath()); + checkSign(currConfig); + + } else { IFileManager *currFM = searchFileByExt(i_file.suffix()); - Signature objSing = currConfig.getSignVal(); + Signature signFromFile; + Signature signForWrite; if (currFM == nullptr) { return false; } - bool valRead = currFM->read(i_file.filePath(), objSing); - if (!valRead) { + if (!currFM->read(i_file.filePath(), signFromFile)) { return false; } - currConfig.setSingValue(objSing); + signForWrite = mergeSign(currConfig.getSignVal(), signFromFile); - bool valWrite = currFM->write(i_file.filePath(), objSing); - if (!valWrite) { + if (!currFM->write(i_file.filePath(), signForWrite)) { return false; } - - } else { - currConfig.setSourceDir(i_file.filePath()); - checkSign(currConfig); } } return true; } +const Signature Signer::mergeSign(const Signature &userSign, const Signature &fileSign) const { + + if (!fileSign.isValid()) { + return userSign; + } + + if (userSign.getLicenseTitle() == fileSign.getLicenseTitle()) { + + if (!fileSign.isValid()) { + return userSign; + } + + if (userSign.getMapOwn().size() > 1) { + QuasarAppUtils::Params::log("Config signature contains more owners.", + QuasarAppUtils::VerboseLvl::Warning); + return fileSign; + } + + Signature signForSing = fileSign; + if (userSign.getMapOwn().cbegin().value().getOwnerName() == signForSing.getMapOwn().cbegin().value().getOwnerName()) { + + QMap mapOwners = signForSing.getMapOwn(); + mapOwners.remove(fileSign.getMapOwn().cbegin().key()); + mapOwners.insert(userSign.getMapOwn().cbegin().key(), + userSign.getMapOwn().cbegin().value()); + signForSing.setMapOwners(mapOwners); + + return signForSing; + + } else { + + QMap mapOwners = signForSing.getMapOwn(); + mapOwners.insert(userSign.getMapOwn().cbegin().key(), + userSign.getMapOwn().cbegin().value()); + signForSing.setMapOwners(mapOwners); + + return signForSing; + + } + + return fileSign; + + } else { + QuasarAppUtils::Params::log("The signature in the file is different from the config signature.", + QuasarAppUtils::VerboseLvl::Warning); + return fileSign; + } + +} + IFileManager *Signer::searchFileByExt(const QString &extension) { for (auto itemFM: _fileManager) { diff --git a/src/CopyrighFixer/CopyrighFixer/signer.h b/src/CopyrighFixer/CopyrighFixer/signer.h index 9b53858..bfecb85 100644 --- a/src/CopyrighFixer/CopyrighFixer/signer.h +++ b/src/CopyrighFixer/CopyrighFixer/signer.h @@ -28,6 +28,14 @@ public: */ bool checkSign(const Config &objConf); + /** + * @brief mergeSign The method compares two signatures and merges into one. + * @param userSign The signature that is pulled from the configuration. + * @param fileSign The signature that is read from the file. + * @return Returns the signature for signing a file. + */ + const Signature mergeSign(const Signature &userSign, const Signature &fileSign) const; + /** * @brief searchFileByExt The method that searches for files with the desired extension. * @param extension This is the file extension to search. diff --git a/tests/tstMain.cpp b/tests/tstMain.cpp index d8d4c07..953871b 100644 --- a/tests/tstMain.cpp +++ b/tests/tstMain.cpp @@ -8,6 +8,7 @@ #include #include "cfixertest.h" #include "signtest.h" +#include "signertest.h" #include "configparsertest.h" // Use This macros for initialize your own test classes. @@ -34,6 +35,7 @@ private slots: // BEGIN TESTS CASES TestCase(exampleTest, ExampleTest); TestCase(signTest, SignTest); + TestCase(signerTest, SignerTest); TestCase(configParserTest, ConfigParserTest) // END TEST CASES diff --git a/tests/units/signertest.cpp b/tests/units/signertest.cpp index 1438074..3e76af3 100644 --- a/tests/units/signertest.cpp +++ b/tests/units/signertest.cpp @@ -20,7 +20,142 @@ void SignerTest::test() { testSigner(); } -void SignerTest::testSigner() { +CopyrighFixer::Signature SignerTest::genSign(const QString licen, + const QString nOwn, + int tP) const { + + CopyrighFixer::Owner ownerObj; + ownerObj.setName(nOwn); + ownerObj.setTimePoint(tP); + + QMap OwnerMap; + OwnerMap.insert(tP, ownerObj); + + CopyrighFixer::Signature signTest; + signTest.setLicenseTitle(licen); + signTest.setMessage("Distributed under the lgplv3 software license, see the accompany."); + signTest.setMapOwners(OwnerMap); + + return signTest; +} + +CopyrighFixer::Signature SignerTest::genSign(QList numOwns, const QString licen) const { + + QMap OwnerMap; + for (auto itemOwn: numOwns) { + CopyrighFixer::Owner ownerObj; + ownerObj.setName(itemOwn.name); + ownerObj.setTimePoint(itemOwn.timePoint); + + OwnerMap.insert(itemOwn.timePoint, ownerObj); + } + + CopyrighFixer::Signature signTest; + signTest.setLicenseTitle(licen); + signTest.setMessage("Distributed under the lgplv3 software license, see the accompany."); + signTest.setMapOwners(OwnerMap); + + return signTest; +} + + +QList SignerTest::lstSing() const { + + // 1 + // The case when the signatures in the config and the file match. + SignerTest::Signers equalSign; + equalSign.signFormConf = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); + equalSign.signFormFile = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); + equalSign.signAfterMerge = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); + + // 2 + // The Different licenses. + SignerTest::Signers signDiffLic; + signDiffLic.signFormConf = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); + signDiffLic.signFormFile = genSign("Copyright (C) 2019-2020 QuasarApp.", "QuasarApp", 1622657022); + signDiffLic.signAfterMerge = genSign("Copyright (C) 2019-2020 QuasarApp.", "QuasarApp", 1622657022); + + // 3 + // The Different owners. + SignerTest::Signers signDiffOwn; + signDiffOwn.signFormConf = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1700000000); + signDiffOwn.signFormFile = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarAppSdfdf", 1622657022); + + signDiffOwn.signAfterMerge = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarAppSdfdf", 1622657022); + QMap multiSign = signDiffOwn.signAfterMerge.getMapOwn(); + multiSign.insert(1700000000, genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1700000000).getMapOwn().cbegin().value()); + signDiffOwn.signAfterMerge.setMapOwners(multiSign); + + // 4 + // The equal owners. + SignerTest::Signers signEqualOwn; + signEqualOwn.signFormConf = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1700000000); + signEqualOwn.signFormFile = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); + signEqualOwn.signAfterMerge = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1700000000); + + + // 5 + // The signature is missing from the file. + SignerTest::Signers signMissingInFile; + signMissingInFile.signFormConf = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); + signMissingInFile.signFormFile = genSign(); + signMissingInFile.signAfterMerge = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); + + // 6 + // Here are no owners in the file. + SignerTest::Signers signMissOwnInFile; + signMissOwnInFile.signFormConf = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); + signMissOwnInFile.signFormFile = genSign("Copyright (C) 2020-2021 QuasarApp."); + signMissOwnInFile.signAfterMerge = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); + + // 7 + // Generating multiple owners. + QList Owns; + int temp = 0; + for (int i(0); i<3; i++) { + temp++; + + dataOwns lO; + lO.name = QString("QuasarApp%1").arg(temp); + lO.timePoint = 1700000000 + (temp*10); + + Owns.append(lO); + } + + // The number of owners differs. + SignerTest::Signers signDiffNumOwn; + signDiffNumOwn.signFormConf = genSign(Owns, "Copyright (C) 2020-2021 QuasarApp."); + signDiffNumOwn.signFormFile = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1700000000); + signDiffNumOwn.signAfterMerge = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1700000000); + + return {equalSign, signDiffLic, signDiffOwn, signEqualOwn, signMissingInFile, signMissOwnInFile, signDiffNumOwn}; + +} + +void SignerTest::testMergeSign() const { + + QList dfd = lstSing(); + + for (auto itemSign: lstSing()) { + + CopyrighFixer::Signer resSign; + CopyrighFixer::Signature mergeSignUF = resSign.mergeSign(itemSign.signFormConf, + itemSign.signFormFile); + + QVERIFY(mergeSignUF == itemSign.signAfterMerge); + + } + +} + +void SignerTest::testCheckSign() const { qWarning() << "The SignerTest class is not implemented"; QVERIFY(true); } + +void SignerTest::testSigner() { + + testMergeSign(); + testCheckSign(); + +} diff --git a/tests/units/signertest.h b/tests/units/signertest.h index ab8fbff..85e49b5 100644 --- a/tests/units/signertest.h +++ b/tests/units/signertest.h @@ -19,6 +19,26 @@ public: ~SignerTest(); void test(); + + struct dataOwns{ + QString name; + int timePoint; + }; + + struct Signers { + CopyrighFixer::Signature signFormConf; + CopyrighFixer::Signature signFormFile; + CopyrighFixer::Signature signAfterMerge; + }; + + CopyrighFixer::Signature genSign(const QString licen = "", + const QString nOwn = "", + int tP = 0) const; + CopyrighFixer::Signature genSign(QList numOwns, const QString licen = "") const; + + QList lstSing() const; + void testMergeSign() const; + void testCheckSign() const; void testSigner(); }; From ec411c47ebd665a24e5e2a900d3dc651095c6d3b Mon Sep 17 00:00:00 2001 From: IgorekLoschinin Date: Sun, 6 Jun 2021 21:27:13 +0300 Subject: [PATCH 03/11] ref #60 Fixing name varialble. Chanch license. --- src/CopyrighFixer/CopyrighFixer/signer.cpp | 76 ++++++++++------------ tests/units/signertest.cpp | 42 ++++++------ 2 files changed, 57 insertions(+), 61 deletions(-) diff --git a/src/CopyrighFixer/CopyrighFixer/signer.cpp b/src/CopyrighFixer/CopyrighFixer/signer.cpp index 2a90a00..68578b8 100644 --- a/src/CopyrighFixer/CopyrighFixer/signer.cpp +++ b/src/CopyrighFixer/CopyrighFixer/signer.cpp @@ -35,7 +35,7 @@ bool Signer::checkSign(const Config &objConf) { IFileManager *currFM = searchFileByExt(i_file.suffix()); Signature signFromFile; - Signature signForWrite; + Signature resultSign; if (currFM == nullptr) { return false; @@ -45,9 +45,9 @@ bool Signer::checkSign(const Config &objConf) { return false; } - signForWrite = mergeSign(currConfig.getSignVal(), signFromFile); + resultSign = mergeSign(currConfig.getSignVal(), signFromFile); - if (!currFM->write(i_file.filePath(), signForWrite)) { + if (!currFM->write(i_file.filePath(), resultSign)) { return false; } } @@ -62,48 +62,44 @@ const Signature Signer::mergeSign(const Signature &userSign, const Signature &fi return userSign; } - if (userSign.getLicenseTitle() == fileSign.getLicenseTitle()) { - - if (!fileSign.isValid()) { - return userSign; - } - - if (userSign.getMapOwn().size() > 1) { - QuasarAppUtils::Params::log("Config signature contains more owners.", - QuasarAppUtils::VerboseLvl::Warning); - return fileSign; - } - - Signature signForSing = fileSign; - if (userSign.getMapOwn().cbegin().value().getOwnerName() == signForSing.getMapOwn().cbegin().value().getOwnerName()) { - - QMap mapOwners = signForSing.getMapOwn(); - mapOwners.remove(fileSign.getMapOwn().cbegin().key()); - mapOwners.insert(userSign.getMapOwn().cbegin().key(), - userSign.getMapOwn().cbegin().value()); - signForSing.setMapOwners(mapOwners); - - return signForSing; - - } else { - - QMap mapOwners = signForSing.getMapOwn(); - mapOwners.insert(userSign.getMapOwn().cbegin().key(), - userSign.getMapOwn().cbegin().value()); - signForSing.setMapOwners(mapOwners); - - return signForSing; - - } - - return fileSign; - - } else { + if (userSign.getLicenseTitle() != fileSign.getLicenseTitle()) { QuasarAppUtils::Params::log("The signature in the file is different from the config signature.", QuasarAppUtils::VerboseLvl::Warning); return fileSign; } + if (userSign.getMapOwn().size() > 1) { + QuasarAppUtils::Params::log("Config signature contains more owners.", + QuasarAppUtils::VerboseLvl::Warning); + return fileSign; + } + + Signature signForSing = fileSign; + if (userSign.getMapOwn().cbegin().value().getOwnerName() == signForSing.getMapOwn().cbegin().value().getOwnerName()) { + + QMap mapOwners = signForSing.getMapOwn(); + mapOwners.remove(fileSign.getMapOwn().cbegin().key()); + mapOwners.insert(userSign.getMapOwn().cbegin().key(), + userSign.getMapOwn().cbegin().value()); + signForSing.setMapOwners(mapOwners); + + return signForSing; + + } + + if (userSign.getMapOwn().cbegin().value().getOwnerName() != signForSing.getMapOwn().cbegin().value().getOwnerName()) { + + QMap mapOwners = signForSing.getMapOwn(); + mapOwners.insert(userSign.getMapOwn().cbegin().key(), + userSign.getMapOwn().cbegin().value()); + signForSing.setMapOwners(mapOwners); + + return signForSing; + + } + + return fileSign; + } IFileManager *Signer::searchFileByExt(const QString &extension) { diff --git a/tests/units/signertest.cpp b/tests/units/signertest.cpp index 3e76af3..3365dc0 100644 --- a/tests/units/signertest.cpp +++ b/tests/units/signertest.cpp @@ -64,49 +64,49 @@ QList SignerTest::lstSing() const { // 1 // The case when the signatures in the config and the file match. SignerTest::Signers equalSign; - equalSign.signFormConf = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); - equalSign.signFormFile = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); - equalSign.signAfterMerge = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); + equalSign.signFormConf = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); + equalSign.signFormFile = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); + equalSign.signAfterMerge = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); // 2 // The Different licenses. SignerTest::Signers signDiffLic; - signDiffLic.signFormConf = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); - signDiffLic.signFormFile = genSign("Copyright (C) 2019-2020 QuasarApp.", "QuasarApp", 1622657022); - signDiffLic.signAfterMerge = genSign("Copyright (C) 2019-2020 QuasarApp.", "QuasarApp", 1622657022); + signDiffLic.signFormConf = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); + signDiffLic.signFormFile = genSign("MIT License Copyright (C) 2019-2020 QuasarApp.", "QuasarApp", 1622657022); + signDiffLic.signAfterMerge = genSign("MIT License Copyright (C) 2019-2020 QuasarApp.", "QuasarApp", 1622657022); // 3 // The Different owners. SignerTest::Signers signDiffOwn; - signDiffOwn.signFormConf = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1700000000); - signDiffOwn.signFormFile = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarAppSdfdf", 1622657022); + signDiffOwn.signFormConf = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1700000000); + signDiffOwn.signFormFile = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarAppSdfdf", 1622657022); - signDiffOwn.signAfterMerge = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarAppSdfdf", 1622657022); + signDiffOwn.signAfterMerge = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarAppSdfdf", 1622657022); QMap multiSign = signDiffOwn.signAfterMerge.getMapOwn(); - multiSign.insert(1700000000, genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1700000000).getMapOwn().cbegin().value()); + multiSign.insert(1700000000, genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1700000000).getMapOwn().cbegin().value()); signDiffOwn.signAfterMerge.setMapOwners(multiSign); // 4 // The equal owners. SignerTest::Signers signEqualOwn; - signEqualOwn.signFormConf = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1700000000); - signEqualOwn.signFormFile = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); - signEqualOwn.signAfterMerge = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1700000000); + signEqualOwn.signFormConf = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1700000000); + signEqualOwn.signFormFile = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); + signEqualOwn.signAfterMerge = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1700000000); // 5 // The signature is missing from the file. SignerTest::Signers signMissingInFile; - signMissingInFile.signFormConf = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); + signMissingInFile.signFormConf = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); signMissingInFile.signFormFile = genSign(); - signMissingInFile.signAfterMerge = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); + signMissingInFile.signAfterMerge = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); // 6 // Here are no owners in the file. SignerTest::Signers signMissOwnInFile; - signMissOwnInFile.signFormConf = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); - signMissOwnInFile.signFormFile = genSign("Copyright (C) 2020-2021 QuasarApp."); - signMissOwnInFile.signAfterMerge = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); + signMissOwnInFile.signFormConf = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); + signMissOwnInFile.signFormFile = genSign("MIT License Copyright (C) 2020-2021 QuasarApp."); + signMissOwnInFile.signAfterMerge = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); // 7 // Generating multiple owners. @@ -124,9 +124,9 @@ QList SignerTest::lstSing() const { // The number of owners differs. SignerTest::Signers signDiffNumOwn; - signDiffNumOwn.signFormConf = genSign(Owns, "Copyright (C) 2020-2021 QuasarApp."); - signDiffNumOwn.signFormFile = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1700000000); - signDiffNumOwn.signAfterMerge = genSign("Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1700000000); + signDiffNumOwn.signFormConf = genSign(Owns, "MIT License Copyright (C) 2020-2021 QuasarApp."); + signDiffNumOwn.signFormFile = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1700000000); + signDiffNumOwn.signAfterMerge = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1700000000); return {equalSign, signDiffLic, signDiffOwn, signEqualOwn, signMissingInFile, signMissOwnInFile, signDiffNumOwn}; From ff036c87e2ad995956840b45c765e4608c596f15 Mon Sep 17 00:00:00 2001 From: IgorekLoschinin Date: Tue, 8 Jun 2021 21:09:15 +0300 Subject: [PATCH 04/11] ref #60 Fixing method mergeSign, unittests. --- src/CopyrighFixer/CopyrighFixer/signer.cpp | 112 +++++++++++++-------- src/CopyrighFixer/CopyrighFixer/signer.h | 22 +++- tests/units/signertest.cpp | 12 ++- 3 files changed, 95 insertions(+), 51 deletions(-) diff --git a/src/CopyrighFixer/CopyrighFixer/signer.cpp b/src/CopyrighFixer/CopyrighFixer/signer.cpp index 68578b8..4be49b4 100644 --- a/src/CopyrighFixer/CopyrighFixer/signer.cpp +++ b/src/CopyrighFixer/CopyrighFixer/signer.cpp @@ -5,6 +5,7 @@ //# of this license document, but changing it is not allowed. //# +#include #include "signer.h" #include "CopyrighFixer/ifilemanager.h" #include @@ -15,11 +16,10 @@ Signer::Signer() { } -bool Signer::checkSign(const Config &objConf) { - Config currConfig = objConf; +bool Signer::processSign(const QString &pathToFile, const Config &objConf) const { - QDir currentFolder(currConfig.getSrcDir()); + QDir currentFolder(pathToFile); currentFolder.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot); QFileInfoList folderItems(currentFolder.entryInfoList()); @@ -27,35 +27,76 @@ bool Signer::checkSign(const Config &objConf) { for (auto i_file: folderItems) { if (i_file.isDir()) { + processSign(i_file.filePath(), objConf); + } - currConfig.setSourceDir(i_file.filePath()); - checkSign(currConfig); + IFileManager *currFM = searchFileByExt(i_file.suffix()); + Signature signFromFile; + Signature resultSign; - } else { + if (currFM == nullptr) { + return false; + } - IFileManager *currFM = searchFileByExt(i_file.suffix()); - Signature signFromFile; - Signature resultSign; + if (!currFM->read(i_file.filePath(), signFromFile)) { + return false; + } - if (currFM == nullptr) { - return false; - } + resultSign = mergeSign(objConf.getSignVal(), signFromFile); - if (!currFM->read(i_file.filePath(), signFromFile)) { - return false; - } - - resultSign = mergeSign(currConfig.getSignVal(), signFromFile); - - if (!currFM->write(i_file.filePath(), resultSign)) { - return false; - } + if (!currFM->write(i_file.filePath(), resultSign)) { + return false; } } return true; } +bool Signer::checkSign(const Config &objConf) { + + if (!processSign(objConf.getSrcDir(), objConf)) { + return false; + } + + return true; +} + +const Signature Signer::upgradeOwner(const Signature &signConf, const Signature &fileSign) const { + + int unixTime = time(0); + + Signature signForSing = fileSign; + QMap mapOwnersFile = signForSing.getMapOwn(); + mapOwnersFile.remove(fileSign.getMapOwn().cbegin().key()); + + CopyrighFixer::Owner newOwners; + newOwners.setName(signConf.getMapOwn().cbegin().value().getOwnerName()); + newOwners.setTimePoint(unixTime); + + mapOwnersFile.insert(unixTime, newOwners); + signForSing.setMapOwners(mapOwnersFile); + + return signForSing; + +} + +const Signature Signer::appendOwner(const Signature &signConf, const Signature &fileSign) const { + + int unixTime = time(0); + + Signature signForSing = fileSign; + QMap mapOwnersFile = signForSing.getMapOwn(); + + CopyrighFixer::Owner newOwners; + newOwners.setName(signConf.getMapOwn().cbegin().value().getOwnerName()); + newOwners.setTimePoint(unixTime); + + mapOwnersFile.insert(unixTime, newOwners); + signForSing.setMapOwners(mapOwnersFile); + + return signForSing; +} + const Signature Signer::mergeSign(const Signature &userSign, const Signature &fileSign) const { if (!fileSign.isValid()) { @@ -71,45 +112,28 @@ const Signature Signer::mergeSign(const Signature &userSign, const Signature &fi if (userSign.getMapOwn().size() > 1) { QuasarAppUtils::Params::log("Config signature contains more owners.", QuasarAppUtils::VerboseLvl::Warning); - return fileSign; + return upgradeOwner(userSign, fileSign); } - Signature signForSing = fileSign; - if (userSign.getMapOwn().cbegin().value().getOwnerName() == signForSing.getMapOwn().cbegin().value().getOwnerName()) { - - QMap mapOwners = signForSing.getMapOwn(); - mapOwners.remove(fileSign.getMapOwn().cbegin().key()); - mapOwners.insert(userSign.getMapOwn().cbegin().key(), - userSign.getMapOwn().cbegin().value()); - signForSing.setMapOwners(mapOwners); - - return signForSing; - + if (userSign.getMapOwn().cbegin().value().getOwnerName() == fileSign.getMapOwn().cbegin().value().getOwnerName()) { + return upgradeOwner(userSign, fileSign); } - if (userSign.getMapOwn().cbegin().value().getOwnerName() != signForSing.getMapOwn().cbegin().value().getOwnerName()) { - - QMap mapOwners = signForSing.getMapOwn(); - mapOwners.insert(userSign.getMapOwn().cbegin().key(), - userSign.getMapOwn().cbegin().value()); - signForSing.setMapOwners(mapOwners); - - return signForSing; - + if (userSign.getMapOwn().cbegin().value().getOwnerName() != fileSign.getMapOwn().cbegin().value().getOwnerName()) { + return appendOwner(userSign, fileSign); } return fileSign; } -IFileManager *Signer::searchFileByExt(const QString &extension) { +IFileManager *Signer::searchFileByExt(const QString &extension) const { for (auto itemFM: _fileManager) { if (itemFM && itemFM->isSupport(itemFM->toExtension(extension))) { return itemFM; } - } return nullptr; } diff --git a/src/CopyrighFixer/CopyrighFixer/signer.h b/src/CopyrighFixer/CopyrighFixer/signer.h index bfecb85..8e08a9b 100644 --- a/src/CopyrighFixer/CopyrighFixer/signer.h +++ b/src/CopyrighFixer/CopyrighFixer/signer.h @@ -10,6 +10,7 @@ #include "CopyrighFixer_global.h" #include "config.h" +#include namespace CopyrighFixer { @@ -22,6 +23,8 @@ class CopyrighFixer_EXPORT Signer { public: Signer(); + bool processSign(const QString &pathToFile, const Config &objConf) const; + /** * @brief checkSign The method that add copyright to all sources files. * @param objConf This is a configuration object. @@ -32,7 +35,7 @@ public: * @brief mergeSign The method compares two signatures and merges into one. * @param userSign The signature that is pulled from the configuration. * @param fileSign The signature that is read from the file. - * @return Returns the signature for signing a file. + * @return Returns the signature for signing a filereturn false;. */ const Signature mergeSign(const Signature &userSign, const Signature &fileSign) const; @@ -41,11 +44,26 @@ public: * @param extension This is the file extension to search. * @return Returns a pointer to the FileManager of the found extension, or nullptr if the file extension was not found. */ - IFileManager *searchFileByExt(const QString &extension); + IFileManager *searchFileByExt(const QString &extension) const; private: QList _fileManager; + /** + * @brief upgradeOwner + * @param signConf The signature that is pulled from the configuration. + * @param fileSign The signature that is read from the file. + * @return Returns a signature with the last owner updated. + */ + const Signature upgradeOwner(const Signature &signConf, const Signature &fileSign) const; + + /** + * @brief appendOwner + * @param signConf The signature that is pulled from the configuration. + * @param fileSign The signature that is read from the file. + * @return Returns a signature with the most recently updated owner list. + */ + const Signature appendOwner(const Signature &signConf, const Signature &fileSign) const; }; } diff --git a/tests/units/signertest.cpp b/tests/units/signertest.cpp index 3365dc0..8d3c458 100644 --- a/tests/units/signertest.cpp +++ b/tests/units/signertest.cpp @@ -5,6 +5,7 @@ //# of this license document, but changing it is not allowed. //# +#include #include "signertest.h" #include @@ -61,12 +62,13 @@ CopyrighFixer::Signature SignerTest::genSign(QList numOwns QList SignerTest::lstSing() const { + int unixTime = time(0); // 1 // The case when the signatures in the config and the file match. SignerTest::Signers equalSign; equalSign.signFormConf = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); equalSign.signFormFile = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); - equalSign.signAfterMerge = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); + equalSign.signAfterMerge = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", unixTime); // 2 // The Different licenses. @@ -80,10 +82,10 @@ QList SignerTest::lstSing() const { SignerTest::Signers signDiffOwn; signDiffOwn.signFormConf = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1700000000); signDiffOwn.signFormFile = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarAppSdfdf", 1622657022); - signDiffOwn.signAfterMerge = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarAppSdfdf", 1622657022); + QMap multiSign = signDiffOwn.signAfterMerge.getMapOwn(); - multiSign.insert(1700000000, genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1700000000).getMapOwn().cbegin().value()); + multiSign.insert(unixTime, genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", unixTime).getMapOwn().cbegin().value()); signDiffOwn.signAfterMerge.setMapOwners(multiSign); // 4 @@ -91,7 +93,7 @@ QList SignerTest::lstSing() const { SignerTest::Signers signEqualOwn; signEqualOwn.signFormConf = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1700000000); signEqualOwn.signFormFile = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); - signEqualOwn.signAfterMerge = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1700000000); + signEqualOwn.signAfterMerge = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", unixTime); // 5 @@ -126,7 +128,7 @@ QList SignerTest::lstSing() const { SignerTest::Signers signDiffNumOwn; signDiffNumOwn.signFormConf = genSign(Owns, "MIT License Copyright (C) 2020-2021 QuasarApp."); signDiffNumOwn.signFormFile = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1700000000); - signDiffNumOwn.signAfterMerge = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1700000000); + signDiffNumOwn.signAfterMerge = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp1", unixTime); return {equalSign, signDiffLic, signDiffOwn, signEqualOwn, signMissingInFile, signMissOwnInFile, signDiffNumOwn}; From 3ad0662bfe772a3a4a3dead1c2b6470ac2cea707 Mon Sep 17 00:00:00 2001 From: Igor loschinin Date: Wed, 9 Jun 2021 20:03:00 +0300 Subject: [PATCH 05/11] Update src/CopyrighFixer/CopyrighFixer/signer.cpp Co-authored-by: Andrei Yankovich --- src/CopyrighFixer/CopyrighFixer/signer.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/CopyrighFixer/CopyrighFixer/signer.cpp b/src/CopyrighFixer/CopyrighFixer/signer.cpp index 4be49b4..1d81948 100644 --- a/src/CopyrighFixer/CopyrighFixer/signer.cpp +++ b/src/CopyrighFixer/CopyrighFixer/signer.cpp @@ -69,11 +69,11 @@ const Signature Signer::upgradeOwner(const Signature &signConf, const Signature QMap mapOwnersFile = signForSing.getMapOwn(); mapOwnersFile.remove(fileSign.getMapOwn().cbegin().key()); - CopyrighFixer::Owner newOwners; - newOwners.setName(signConf.getMapOwn().cbegin().value().getOwnerName()); - newOwners.setTimePoint(unixTime); + CopyrighFixer::Owner newOwner; + newOwner.setName(signConf.getMapOwn().cbegin().value().getOwnerName()); + newOwner.setTimePoint(unixTime); - mapOwnersFile.insert(unixTime, newOwners); + mapOwnersFile.insert(unixTime, newOwner); signForSing.setMapOwners(mapOwnersFile); return signForSing; From 842ee98e34051d081a8a6f1514c3b604b948aedf Mon Sep 17 00:00:00 2001 From: IgorekLoschinin Date: Wed, 9 Jun 2021 21:31:24 +0300 Subject: [PATCH 06/11] ref #60 Fixing: added exception messages for method processSign. --- src/CopyrighFixer/CopyrighFixer/signer.cpp | 37 +++++++++++++--------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/src/CopyrighFixer/CopyrighFixer/signer.cpp b/src/CopyrighFixer/CopyrighFixer/signer.cpp index 1d81948..464da08 100644 --- a/src/CopyrighFixer/CopyrighFixer/signer.cpp +++ b/src/CopyrighFixer/CopyrighFixer/signer.cpp @@ -28,24 +28,32 @@ bool Signer::processSign(const QString &pathToFile, const Config &objConf) const if (i_file.isDir()) { processSign(i_file.filePath(), objConf); - } - IFileManager *currFM = searchFileByExt(i_file.suffix()); - Signature signFromFile; - Signature resultSign; + } else { + IFileManager *currFM = searchFileByExt(i_file.suffix()); + Signature signFromFile; + Signature resultSign; - if (currFM == nullptr) { - return false; - } + if (currFM == nullptr) { + QuasarAppUtils::Params::log( + QString("The CFixer tool are not support files with sufix: %1").arg(i_file.suffix()), + QuasarAppUtils::VerboseLvl::Error); + return false; + } - if (!currFM->read(i_file.filePath(), signFromFile)) { - return false; - } + if (!currFM->read(i_file.filePath(), signFromFile)) { + QuasarAppUtils::Params::log(QString("Failed to load file - %1").arg(i_file.fileName()), + QuasarAppUtils::VerboseLvl::Error); + return false; + } - resultSign = mergeSign(objConf.getSignVal(), signFromFile); + resultSign = mergeSign(objConf.getSignVal(), signFromFile); - if (!currFM->write(i_file.filePath(), resultSign)) { - return false; + if (!currFM->write(i_file.filePath(), resultSign)) { + QuasarAppUtils::Params::log(QString("Failed to write signature in file - %1").arg(i_file.fileName()), + QuasarAppUtils::VerboseLvl::Error); + return false; + } } } @@ -67,9 +75,8 @@ const Signature Signer::upgradeOwner(const Signature &signConf, const Signature Signature signForSing = fileSign; QMap mapOwnersFile = signForSing.getMapOwn(); - mapOwnersFile.remove(fileSign.getMapOwn().cbegin().key()); - CopyrighFixer::Owner newOwner; + CopyrighFixer::Owner newOwner = mapOwnersFile.take(fileSign.getMapOwn().cbegin().key()); newOwner.setName(signConf.getMapOwn().cbegin().value().getOwnerName()); newOwner.setTimePoint(unixTime); From 5a475dc798ce94f6f0df638a6a3265fd5137729e Mon Sep 17 00:00:00 2001 From: IgorekLoschinin Date: Thu, 10 Jun 2021 21:09:04 +0300 Subject: [PATCH 07/11] ref #60 Fixing unittest, added test num 8. --- src/CopyrighFixer/CopyrighFixer/signer.cpp | 6 +++ tests/units/signertest.cpp | 51 ++++++++++++---------- 2 files changed, 35 insertions(+), 22 deletions(-) diff --git a/src/CopyrighFixer/CopyrighFixer/signer.cpp b/src/CopyrighFixer/CopyrighFixer/signer.cpp index 464da08..b1c9fff 100644 --- a/src/CopyrighFixer/CopyrighFixer/signer.cpp +++ b/src/CopyrighFixer/CopyrighFixer/signer.cpp @@ -122,6 +122,12 @@ const Signature Signer::mergeSign(const Signature &userSign, const Signature &fi return upgradeOwner(userSign, fileSign); } + if (fileSign.getMapOwn().size() > 1) { + QuasarAppUtils::Params::log("File signature contains more owners.", + QuasarAppUtils::VerboseLvl::Warning); + return upgradeOwner(userSign, fileSign); + } + if (userSign.getMapOwn().cbegin().value().getOwnerName() == fileSign.getMapOwn().cbegin().value().getOwnerName()) { return upgradeOwner(userSign, fileSign); } diff --git a/tests/units/signertest.cpp b/tests/units/signertest.cpp index 8d3c458..737d439 100644 --- a/tests/units/signertest.cpp +++ b/tests/units/signertest.cpp @@ -82,11 +82,9 @@ QList SignerTest::lstSing() const { SignerTest::Signers signDiffOwn; signDiffOwn.signFormConf = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1700000000); signDiffOwn.signFormFile = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarAppSdfdf", 1622657022); - signDiffOwn.signAfterMerge = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarAppSdfdf", 1622657022); - - QMap multiSign = signDiffOwn.signAfterMerge.getMapOwn(); - multiSign.insert(unixTime, genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", unixTime).getMapOwn().cbegin().value()); - signDiffOwn.signAfterMerge.setMapOwners(multiSign); + signDiffOwn.signAfterMerge = genSign({{"QuasarAppSdfdf", 1622657022}, + {"QuasarApp", unixTime}}, + "MIT License Copyright (C) 2020-2021 QuasarApp."); // 4 // The equal owners. @@ -111,26 +109,35 @@ QList SignerTest::lstSing() const { signMissOwnInFile.signAfterMerge = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1622657022); // 7 - // Generating multiple owners. - QList Owns; - int temp = 0; - for (int i(0); i<3; i++) { - temp++; - - dataOwns lO; - lO.name = QString("QuasarApp%1").arg(temp); - lO.timePoint = 1700000000 + (temp*10); - - Owns.append(lO); - } + // Generating multiple owners config. + QList lstOwnsForConf = { + {"QuasarApp", unixTime}, + {"QuasarApp1", unixTime+1}, + {"QuasarApp2", unixTime+2} + }; // The number of owners differs. - SignerTest::Signers signDiffNumOwn; - signDiffNumOwn.signFormConf = genSign(Owns, "MIT License Copyright (C) 2020-2021 QuasarApp."); - signDiffNumOwn.signFormFile = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1700000000); - signDiffNumOwn.signAfterMerge = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp1", unixTime); + SignerTest::Signers signDiffNumOwnConf; + signDiffNumOwnConf.signFormConf = genSign(lstOwnsForConf, "MIT License Copyright (C) 2020-2021 QuasarApp."); + signDiffNumOwnConf.signFormFile = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1700000000); + signDiffNumOwnConf.signAfterMerge = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", unixTime); - return {equalSign, signDiffLic, signDiffOwn, signEqualOwn, signMissingInFile, signMissOwnInFile, signDiffNumOwn}; + // 8 + // Generating multiple owners file. + QList lstOwnsForFile = { + {"QuasarApp", unixTime}, + {"QuasarApp1", unixTime+1}, + {"QuasarApp2", unixTime+2}, + {"QuasarApp3", unixTime+3} + }; + + // The number of owners differs. + SignerTest::Signers signDiffNumOwnFile; + signDiffNumOwnFile.signFormConf = genSign("MIT License Copyright (C) 2020-2021 QuasarApp.", "QuasarApp", 1700000000); + signDiffNumOwnFile.signFormFile = genSign(lstOwnsForFile, "MIT License Copyright (C) 2020-2021 QuasarApp."); + signDiffNumOwnFile.signAfterMerge = genSign(lstOwnsForFile, "MIT License Copyright (C) 2020-2021 QuasarApp."); + + return {equalSign, signDiffLic, signDiffOwn, signEqualOwn, signMissingInFile, signMissOwnInFile, signDiffNumOwnConf}; } From b66c58786ea61f5a7c6c59faab46229ed78952a3 Mon Sep 17 00:00:00 2001 From: Igor loschinin Date: Thu, 10 Jun 2021 22:00:10 +0300 Subject: [PATCH 08/11] Update src/CopyrighFixer/CopyrighFixer/signer.cpp Co-authored-by: Andrei Yankovich --- src/CopyrighFixer/CopyrighFixer/signer.cpp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/CopyrighFixer/CopyrighFixer/signer.cpp b/src/CopyrighFixer/CopyrighFixer/signer.cpp index b1c9fff..eb32fae 100644 --- a/src/CopyrighFixer/CopyrighFixer/signer.cpp +++ b/src/CopyrighFixer/CopyrighFixer/signer.cpp @@ -122,11 +122,6 @@ const Signature Signer::mergeSign(const Signature &userSign, const Signature &fi return upgradeOwner(userSign, fileSign); } - if (fileSign.getMapOwn().size() > 1) { - QuasarAppUtils::Params::log("File signature contains more owners.", - QuasarAppUtils::VerboseLvl::Warning); - return upgradeOwner(userSign, fileSign); - } if (userSign.getMapOwn().cbegin().value().getOwnerName() == fileSign.getMapOwn().cbegin().value().getOwnerName()) { return upgradeOwner(userSign, fileSign); From fdee71fba09b6ce977a599c6c216f696090c0035 Mon Sep 17 00:00:00 2001 From: Igor loschinin Date: Thu, 10 Jun 2021 22:00:20 +0300 Subject: [PATCH 09/11] Update src/CopyrighFixer/CopyrighFixer/signer.cpp Co-authored-by: Andrei Yankovich --- src/CopyrighFixer/CopyrighFixer/signer.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/CopyrighFixer/CopyrighFixer/signer.cpp b/src/CopyrighFixer/CopyrighFixer/signer.cpp index eb32fae..a0d1991 100644 --- a/src/CopyrighFixer/CopyrighFixer/signer.cpp +++ b/src/CopyrighFixer/CopyrighFixer/signer.cpp @@ -119,7 +119,6 @@ const Signature Signer::mergeSign(const Signature &userSign, const Signature &fi if (userSign.getMapOwn().size() > 1) { QuasarAppUtils::Params::log("Config signature contains more owners.", QuasarAppUtils::VerboseLvl::Warning); - return upgradeOwner(userSign, fileSign); } From 0037830806fec6ad64f2a93b911ed918636ceeeb Mon Sep 17 00:00:00 2001 From: IgorekLoschinin Date: Thu, 10 Jun 2021 22:13:18 +0300 Subject: [PATCH 10/11] ref #60 Fixing method mergeSign alg. --- src/CopyrighFixer/CopyrighFixer/signer.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/CopyrighFixer/CopyrighFixer/signer.cpp b/src/CopyrighFixer/CopyrighFixer/signer.cpp index a0d1991..9d17c4d 100644 --- a/src/CopyrighFixer/CopyrighFixer/signer.cpp +++ b/src/CopyrighFixer/CopyrighFixer/signer.cpp @@ -106,27 +106,36 @@ const Signature Signer::appendOwner(const Signature &signConf, const Signature & const Signature Signer::mergeSign(const Signature &userSign, const Signature &fileSign) const { + bool isSizeOwnsEqual = userSign.getMapOwn().cbegin().value().getOwnerName() != fileSign.getMapOwn().cbegin().value().getOwnerName(); + bool isSizeOwnsDiff = userSign.getMapOwn().cbegin().value().getOwnerName() == fileSign.getMapOwn().cbegin().value().getOwnerName(); + bool isNumOwnsMore = userSign.getMapOwn().size() > 1; + bool isEqualLicTitle = userSign.getLicenseTitle() != fileSign.getLicenseTitle(); + if (!fileSign.isValid()) { return userSign; } - if (userSign.getLicenseTitle() != fileSign.getLicenseTitle()) { + if (isEqualLicTitle) { QuasarAppUtils::Params::log("The signature in the file is different from the config signature.", QuasarAppUtils::VerboseLvl::Warning); return fileSign; } - if (userSign.getMapOwn().size() > 1) { + if (isNumOwnsMore) { QuasarAppUtils::Params::log("Config signature contains more owners.", QuasarAppUtils::VerboseLvl::Warning); + + if (isSizeOwnsEqual) { + return appendOwner(userSign, fileSign); + } } - if (userSign.getMapOwn().cbegin().value().getOwnerName() == fileSign.getMapOwn().cbegin().value().getOwnerName()) { + if (isSizeOwnsDiff) { return upgradeOwner(userSign, fileSign); } - if (userSign.getMapOwn().cbegin().value().getOwnerName() != fileSign.getMapOwn().cbegin().value().getOwnerName()) { + if (isSizeOwnsEqual) { return appendOwner(userSign, fileSign); } From cc66828279e31d09b4de9adabf712018515aa498 Mon Sep 17 00:00:00 2001 From: Igor loschinin Date: Fri, 11 Jun 2021 21:01:54 +0300 Subject: [PATCH 11/11] Update src/CopyrighFixer/CopyrighFixer/signer.cpp Co-authored-by: Andrei Yankovich --- src/CopyrighFixer/CopyrighFixer/signer.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/CopyrighFixer/CopyrighFixer/signer.cpp b/src/CopyrighFixer/CopyrighFixer/signer.cpp index 9d17c4d..284a69f 100644 --- a/src/CopyrighFixer/CopyrighFixer/signer.cpp +++ b/src/CopyrighFixer/CopyrighFixer/signer.cpp @@ -106,36 +106,36 @@ const Signature Signer::appendOwner(const Signature &signConf, const Signature & const Signature Signer::mergeSign(const Signature &userSign, const Signature &fileSign) const { - bool isSizeOwnsEqual = userSign.getMapOwn().cbegin().value().getOwnerName() != fileSign.getMapOwn().cbegin().value().getOwnerName(); - bool isSizeOwnsDiff = userSign.getMapOwn().cbegin().value().getOwnerName() == fileSign.getMapOwn().cbegin().value().getOwnerName(); - bool isNumOwnsMore = userSign.getMapOwn().size() > 1; - bool isEqualLicTitle = userSign.getLicenseTitle() != fileSign.getLicenseTitle(); + bool fLastOwnerEqual = userSign.getMapOwn().cbegin().value().getOwnerName() != fileSign.getMapOwn().cbegin().value().getOwnerName(); + bool fLastOwnerDiff = userSign.getMapOwn().cbegin().value().getOwnerName() == fileSign.getMapOwn().cbegin().value().getOwnerName(); + bool fNumOwnsMore = userSign.getMapOwn().size() > 1; + bool fEqualLicTitle = userSign.getLicenseTitle() != fileSign.getLicenseTitle(); if (!fileSign.isValid()) { return userSign; } - if (isEqualLicTitle) { + if (fEqualLicTitle) { QuasarAppUtils::Params::log("The signature in the file is different from the config signature.", QuasarAppUtils::VerboseLvl::Warning); return fileSign; } - if (isNumOwnsMore) { + if (fNumOwnsMore) { QuasarAppUtils::Params::log("Config signature contains more owners.", QuasarAppUtils::VerboseLvl::Warning); - if (isSizeOwnsEqual) { + if (fLastOwnerEqual) { return appendOwner(userSign, fileSign); } } - if (isSizeOwnsDiff) { + if (fLastOwnerDiff) { return upgradeOwner(userSign, fileSign); } - if (isSizeOwnsEqual) { + if (fLastOwnerEqual) { return appendOwner(userSign, fileSign); }