From 6391f957424e2946aba4a8b044fdfedc03cc0ed0 Mon Sep 17 00:00:00 2001 From: ericmenezesn@gmail.com Date: Thu, 14 Aug 2014 14:59:19 -0300 Subject: [PATCH] cacic-teste: adicionado 4 novos testes; install-cacic: pegando chave do login e gravando em arquivo; caciccomm: carregando sessao em atributo privado da classe ao logar; ccacic: novos métodos de auxilio ao json (setJsonToFile e getJsonFromFile); caciccomp: pegando nome do so tambem, modificado o nome das variaveis; criado metodo toJsonObject nas classes cacicomp e operatingsystem; --- cacic-teste/cacic-teste.pro | 6 ++++-- cacic-teste/testcacic.cpp | 24 +++++++++++++++++++++--- cacic-teste/testcacic.h | 3 +++ install-cacic/install-cacic.pro | 6 ++++-- install-cacic/installcacic.cpp | 5 ++++- src/cacic_comm.h | 3 ++- src/cacic_computer.cpp | 4 ++-- src/cacic_computer.h | 3 +-- src/ccacic.cpp | 30 ++++++++++++++++++++++++++++++ src/ccacic.h | 6 ++++++ src/operatingsystem.cpp | 38 ++++++++++++++++++++++++++++++++------ src/operatingsystem.h | 14 ++++++++------ 12 files changed, 117 insertions(+), 25 deletions(-) diff --git a/cacic-teste/cacic-teste.pro b/cacic-teste/cacic-teste.pro index 65019f8..91c45ee 100644 --- a/cacic-teste/cacic-teste.pro +++ b/cacic-teste/cacic-teste.pro @@ -20,7 +20,8 @@ win32 { SOURCES += \ testcacic.cpp \ ../src/ccacic.cpp \ - ../src/cacic_computer.cpp + ../src/cacic_computer.cpp \ + ../src/operatingsystem.cpp HEADERS += \ @@ -28,7 +29,8 @@ HEADERS += \ ../src/ccacic.h \ ../src/cacic_computer.h \ ../src/cacic_comm.h \ - ../src/console.h + ../src/console.h \ + ../src/operatingsystem.h INCLUDEPATH += ../src \ ../src/crypto++/include/ diff --git a/cacic-teste/testcacic.cpp b/cacic-teste/testcacic.cpp index 3b9852c..64b79ce 100644 --- a/cacic-teste/testcacic.cpp +++ b/cacic-teste/testcacic.cpp @@ -88,14 +88,15 @@ void CTestCacic::testInterfaceDeRede(){ void CTestCacic::testpegarOS(){ //basta que seja um retorno válido, não precisa validar todos. - QVERIFY(OCacicComp.getOs().getIdSo() != -1 ); + QVERIFY(OCacicComp.getOs().getIdOs() != -1 ); } void CTestCacic::testConsole() { ConsoleObject console; - QVERIFY(console("echo teste").toStdString() == "teste\n"); +// QVERIFY(console("echo teste").toStdString() == "teste\n"); + QVERIFY(false); } void CTestCacic::testPegarUsu(){ @@ -165,7 +166,24 @@ void CTestCacic::testCacicCompToJsonObject() QVERIFY(!OCacicComp.toJsonObject().empty()); } -void CTestCacic::cleanupTestCase() +void CTestCacic::testOperatingSystemToJsonObject() +{ + QVERIFY(!OCacicComp.getOs().toJsonObject().empty()); +} + +void CTestCacic::testJsonToFile() { + QJsonObject json; + json["teste"] = QJsonValue::fromVariant(QString("teste")); + QVERIFY(OCacic.setJsonToFile(json, "teste.json")); +} +void CTestCacic::testJsonFromFile() +{ + QVERIFY(OCacic.getJsonFromFile("teste.json")["teste"].toString() == "teste"); +} + +void CTestCacic::cleanupTestCase() +{ + OCacic.deleteFile("teste.json"); } diff --git a/cacic-teste/testcacic.h b/cacic-teste/testcacic.h index 83a4098..fcb1034 100644 --- a/cacic-teste/testcacic.h +++ b/cacic-teste/testcacic.h @@ -53,6 +53,9 @@ private slots: void testDeCrypt(); void testInstallCacicStart(); void testCacicCompToJsonObject(); + void testOperatingSystemToJsonObject(); + void testJsonToFile(); + void testJsonFromFile(); void cleanupTestCase(); }; diff --git a/install-cacic/install-cacic.pro b/install-cacic/install-cacic.pro index 4b8cb99..2c724aa 100644 --- a/install-cacic/install-cacic.pro +++ b/install-cacic/install-cacic.pro @@ -24,13 +24,15 @@ TEMPLATE = app SOURCES += main.cpp \ installcacic.cpp \ ../src/ccacic.cpp \ - ../src/cacic_computer.cpp + ../src/cacic_computer.cpp \ + ../src/operatingsystem.cpp HEADERS += \ installcacic.h \ ../src/ccacic.h \ ../src/cacic_computer.h \ - ../src/cacic_comm.h + ../src/cacic_comm.h \ + ../src/operatingsystem.h INCLUDEPATH += ../src \ ../src/crypto++/include/ diff --git a/install-cacic/installcacic.cpp b/install-cacic/installcacic.cpp index fbbd0a5..f6a3d7e 100644 --- a/install-cacic/installcacic.cpp +++ b/install-cacic/installcacic.cpp @@ -19,7 +19,10 @@ void InstallCacic::run(QStringList argv, int argc) { QJsonObject jsonLogin = oCacicComm.login(&ok); if (ok){ //TODO: Conectado. armazenar chave em arquivo e sessao na comm; - qDebug() << "Logado"; + oCacic.setChaveCrypt(jsonLogin["reply"].toObject()["chavecrip"].toString()); + QJsonObject configToSave; + configToSave["chaveCrypt"] = QJsonValue::fromVariant(oCacic.getChaveCrypt()); + oCacic.setJsonToFile(configToSave, "cacicTeste.json"); } else qDebug() << "falha no login"; diff --git a/src/cacic_comm.h b/src/cacic_comm.h index d8b00a2..4894ca8 100644 --- a/src/cacic_comm.h +++ b/src/cacic_comm.h @@ -22,7 +22,7 @@ private: // FIXME: Get from configuration QString usuario; QString password; - std::string session; + QString session; public: CacicComm (){ @@ -166,6 +166,7 @@ public: // Cria conexão e retorna Json da sessão // qDebug() << "Conectando."; QJsonObject retorno = this->comm("/ws/neo/login", ok, QJsonObject::fromVariantMap(login), true); + this->session = retorno["reply"].toObject()["session"].toString(); return retorno; } diff --git a/src/cacic_computer.cpp b/src/cacic_computer.cpp index 870dd5e..e685a78 100644 --- a/src/cacic_computer.cpp +++ b/src/cacic_computer.cpp @@ -2,7 +2,6 @@ CACIC_Computer::CACIC_Computer() { - operatingSystem = OperatingSystem(); networkInterface = networkInterfacesRunning(); usuario = pegarUsu(); } @@ -56,6 +55,7 @@ QJsonObject CACIC_Computer::toJsonObject() QJsonObject network; int count = 1; json["usuario"] = QJsonValue::fromVariant(QString::fromStdString(this->usuario)); + json["operatingSystem"] = this->oOperatingSystem.toJsonObject(); foreach(QVariantMap auxMap, this->getNetworkInterface()){ network["network" + QVariant::fromValue(count).toString()] = QJsonObject::fromVariantMap(auxMap); count++; @@ -89,7 +89,7 @@ std::string CACIC_Computer::pegarUsu(){ */ OperatingSystem CACIC_Computer::getOs() const { - return operatingSystem; + return oOperatingSystem; } std::string CACIC_Computer::getUser() const { diff --git a/src/cacic_computer.h b/src/cacic_computer.h index b1c344e..56471bc 100644 --- a/src/cacic_computer.h +++ b/src/cacic_computer.h @@ -7,7 +7,6 @@ #include #include #include - #include class CACIC_Computer @@ -23,7 +22,7 @@ public: private: - OperatingSystem operatingSystem; + OperatingSystem oOperatingSystem; int pegarOS(); std::string pegarUsu(); diff --git a/src/ccacic.cpp b/src/ccacic.cpp index e661e02..5d8a43c 100644 --- a/src/ccacic.cpp +++ b/src/ccacic.cpp @@ -113,6 +113,26 @@ QJsonValue CCacic::jsonValueFromJsonString(QString json, QString key) return QJsonDocument::fromJson(json.toUtf8()).object()[key]; } +bool CCacic::setJsonToFile(QJsonObject json, QString filepath) +{ + QFile configFile(filepath); + if (!configFile.open(QIODevice::WriteOnly)){ + qDebug() << "Não foi possivel abrir o arquivo."; + } + QJsonDocument docJson(json); + return (configFile.write(docJson.toJson()) != -1); +} + +QJsonObject CCacic::getJsonFromFile(QString filepath) +{ + QFile configFile(filepath); + QJsonObject json; + if (!configFile.open(QIODevice::ReadOnly)) + qDebug() << "Nao foi possivel ler o arquivo"; + json = QJsonDocument::fromJson(configFile.readAll()).object(); + return json; +} + /*enCrypt * @parameter std::string str_in: string que será encriptada (url). * std::string key: chave utilizada na encriptação (32 caracteres) 32*8 = 256 bits @@ -208,6 +228,16 @@ void CCacic::setChksisInfFilePath(const QString &value) { chksisInfFilePath = value; } +QString CCacic::getChaveCrypt() const +{ + return chaveCrypt; +} + +void CCacic::setChaveCrypt(const QString &value) +{ + chaveCrypt = value; +} + /*Getters/Setters * End. diff --git a/src/ccacic.h b/src/ccacic.h index df55571..f0003fb 100644 --- a/src/ccacic.h +++ b/src/ccacic.h @@ -32,6 +32,8 @@ public: bool deleteFolder(QString path); bool deleteFile(QString path); QJsonValue jsonValueFromJsonString(QString json, QString key); + bool setJsonToFile(QJsonObject json, QString filepath); + QJsonObject getJsonFromFile(QString filepath); //Geters/seters: @@ -50,12 +52,16 @@ public: QString getChksisInfFilePath() const; void setChksisInfFilePath(const QString &value); + QString getChaveCrypt() const; + void setChaveCrypt(const QString &value); + private: QString cacicMainFolder; QString mainModuleName; QString urlGerente; QString gerColsInfFilePath; QString chksisInfFilePath; + QString chaveCrypt; signals: diff --git a/src/operatingsystem.cpp b/src/operatingsystem.cpp index 9f62144..5b43c4a 100644 --- a/src/operatingsystem.cpp +++ b/src/operatingsystem.cpp @@ -1,5 +1,11 @@ #include "operatingsystem.h" +OperatingSystem::OperatingSystem() +{ + this->idOs = this->coletaIdOs(); + this->nomeOs = this->coletaNomeOs(); +} + /*pegarOS * @return: int; * retorna um id referente a versão do SO. @@ -10,7 +16,7 @@ * 176 = Windows 8.1 * 200 = Linux */ -int OperatingSystem::pegarOS(){ +int OperatingSystem::coletaIdOs(){ #if defined (Q_OS_WIN) return QSysInfo::WindowsVersion; #elif defined (Q_OS_LINUX) @@ -20,16 +26,36 @@ int OperatingSystem::pegarOS(){ #endif } -int OperatingSystem::getIdSo() const +QString OperatingSystem::coletaNomeOs() { - return idSo; + QString text; + QStringList environment = QProcessEnvironment::systemEnvironment().toStringList(); + foreach (text, environment) { + if (text.contains("OS=" , Qt::CaseInsensitive) || + text.contains("SESSION=", Qt::CaseInsensitive) ){ + QStringList split = text.split("="); + // qDebug() << split[1]; + return split[1]; + } + } + return ""; } -void OperatingSystem::setIdSo(int value) +QJsonObject OperatingSystem::toJsonObject() { - idSo = value; + QJsonObject json; + json["idOs"] = QJsonValue::fromVariant(QVariant::fromValue(this->idOs)); + json["nomeOs"] = QJsonValue::fromVariant(this->nomeOs); +// qDebug() << json; + return json; } -OperatingSystem::OperatingSystem() +QString OperatingSystem::getNomeOs() +{ + return this->nomeOs; +} + +int OperatingSystem::getIdOs() const { + return this->idOs; } diff --git a/src/operatingsystem.h b/src/operatingsystem.h index 6f0abb6..2356846 100644 --- a/src/operatingsystem.h +++ b/src/operatingsystem.h @@ -3,16 +3,18 @@ #include #include +#include class OperatingSystem { private: - int idSo; - - int pegarOS(); + int idOs; + int coletaIdOs(); + QString nomeOs; + QString coletaNomeOs(); public: OperatingSystem(); - + QJsonObject toJsonObject(); enum OsList { MAC, LINUX_DEBIAN, @@ -21,8 +23,8 @@ public: }; static const enum OsList OsList; - int getIdSo() const; - void setIdSo(int value); + QString getNomeOs(); + int getIdOs() const; }; #endif // OPERATINGSYSTEM_H -- libgit2 0.21.2