mirror of
https://gitlab.com/spaceti-app/integrations/common/server-sdk.git
synced 2026-07-12 22:40:40 +02:00
Adding test for colnod -> TokenManager -> getTokenUpdated
This commit is contained in:
parent
6940cad69e
commit
5ae6ee7e75
@ -22,7 +22,7 @@ QNetworkRequest Request::networkRequest() const
|
|||||||
QNetworkRequest request(QUrl(this->mUrl));
|
QNetworkRequest request(QUrl(this->mUrl));
|
||||||
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json; charset=UTF-8");
|
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json; charset=UTF-8");
|
||||||
|
|
||||||
if ( !userName().isEmpty() && !password().isEmpty() ) {
|
if ( !userName().isEmpty() ) {
|
||||||
request.setRawHeader("Authorization", this->basicAuthorization().toUtf8());
|
request.setRawHeader("Authorization", this->basicAuthorization().toUtf8());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -47,7 +47,7 @@ int Request::status() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Request::appendData(const QByteArray &array)
|
void Request::appendResponseData(const QByteArray &array)
|
||||||
{
|
{
|
||||||
mResponseData += array;
|
mResponseData += array;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -49,7 +49,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
// Data handling
|
// Data handling
|
||||||
void appendData(const QByteArray &array);
|
void appendResponseData(const QByteArray &array);
|
||||||
|
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
|
|||||||
@ -20,7 +20,6 @@ RequestManager::RequestManager(QObject *parent)
|
|||||||
qCWarning(sdknetwork) << "server need authentication";
|
qCWarning(sdknetwork) << "server need authentication";
|
||||||
});
|
});
|
||||||
connect(&mNetworkAccessManager, &QNetworkAccessManager::sslErrors, this, &RequestManager::sslErrors);
|
connect(&mNetworkAccessManager, &QNetworkAccessManager::sslErrors, this, &RequestManager::sslErrors);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -34,10 +33,13 @@ void RequestManager::processRequest(const std::shared_ptr<Request>& request)
|
|||||||
request->logStartTime();
|
request->logStartTime();
|
||||||
|
|
||||||
if (request->type() == "POST") {
|
if (request->type() == "POST") {
|
||||||
|
if ( request->requestData().isEmpty()) {
|
||||||
|
qCWarning(sdknetwork) << "Request data is empty -> nothing to send";
|
||||||
|
}
|
||||||
reply = mNetworkAccessManager.post(request->networkRequest(), request->requestData());
|
reply = mNetworkAccessManager.post(request->networkRequest(), request->requestData());
|
||||||
} else if (request->type() == "GET") {
|
} else if (request->type() == "GET") {
|
||||||
if ( ! request->responseData().isEmpty()) {
|
if ( ! request->requestData().isEmpty()) {
|
||||||
qCWarning(sdknetwork) << "Response data is not empty, and you are trying to use get ( not sending any data)";
|
qCWarning(sdknetwork) << "Request data is not empty, and you are trying to use get ( not sending any data)";
|
||||||
}
|
}
|
||||||
reply = mNetworkAccessManager.get(request->networkRequest());
|
reply = mNetworkAccessManager.get(request->networkRequest());
|
||||||
} else if (request->type() == "PUT") {
|
} else if (request->type() == "PUT") {
|
||||||
@ -102,7 +104,6 @@ void RequestManager::downloadProgress(qint64 bytesReceived, qint64 bytesTotal)
|
|||||||
encoding = pair.second;
|
encoding = pair.second;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QByteArray data = reply->readAll();
|
QByteArray data = reply->readAll();
|
||||||
|
|
||||||
// Decompress gzip data
|
// Decompress gzip data
|
||||||
@ -113,7 +114,7 @@ void RequestManager::downloadProgress(qint64 bytesReceived, qint64 bytesTotal)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Append data to request
|
// Append data to request
|
||||||
request->appendData(data);
|
request->appendResponseData(data);
|
||||||
|
|
||||||
emit progresss(bytesReceived, bytesTotal);
|
emit progresss(bytesReceived, bytesTotal);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,6 +14,10 @@ class LoginTable : public serversdk::DatabaseTable {
|
|||||||
class Token : public serversdk::DatabaseTable {
|
class Token : public serversdk::DatabaseTable {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
TABLE_PROPERTY(QUuid, id, set_id, "");
|
TABLE_PROPERTY(QUuid, id, set_id, "");
|
||||||
|
public:
|
||||||
|
QString idWithoutCurlyBraces() {
|
||||||
|
return a_id.toString().mid(1, 36);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -24,30 +28,37 @@ class RequestManagerTest : public QObject
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
private:
|
private:
|
||||||
Q_SLOT void colnodAuthorization_test();
|
Q_SLOT void colnodAuthorization_test();
|
||||||
|
Q_SLOT void colnodGetUpdatedTokens_test();
|
||||||
|
|
||||||
|
std::shared_ptr<Request> colnodLoginRequest();
|
||||||
};
|
};
|
||||||
|
|
||||||
void RequestManagerTest::colnodAuthorization_test()
|
std::shared_ptr<Request> RequestManagerTest::colnodLoginRequest()
|
||||||
{
|
{
|
||||||
// Colnod
|
// Colnod
|
||||||
auto login = std::make_unique<LoginTable>();
|
auto login = std::make_unique<LoginTable>();
|
||||||
login->set_username("spaceti");
|
login->set_username("spaceti");
|
||||||
login->set_password("E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0");
|
login->set_password("E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
serversdk::RequestManager reqMan;
|
|
||||||
reqMan.setIgnoreSsl(true);
|
|
||||||
|
|
||||||
auto loginRequest = std::make_shared<serversdk::Request>("POST", "https://192.168.1.3:8443/AaaManager/authSession", login->jsonData());
|
auto loginRequest = std::make_shared<serversdk::Request>("POST", "https://192.168.1.3:8443/AaaManager/authSession", login->jsonData());
|
||||||
loginRequest->setUserName(login->username());
|
loginRequest->setUserName(login->username());
|
||||||
loginRequest->setPassword(login->password());
|
loginRequest->setPassword(login->password());
|
||||||
|
return loginRequest;
|
||||||
|
}
|
||||||
|
|
||||||
|
void RequestManagerTest::colnodAuthorization_test()
|
||||||
|
{
|
||||||
|
serversdk::RequestManager reqMan;
|
||||||
|
reqMan.setIgnoreSsl(true);
|
||||||
|
|
||||||
|
auto loginRequest = colnodLoginRequest();
|
||||||
QCOMPARE(loginRequest->basicAuthorization(), QStringLiteral("Basic c3BhY2V0aTpFN0ZFQTA3REJDODJGQjlCQTM0QjJFNDUzRTJFRkU4OUYwNTgzRTcxODc1NDM1MDdFRjExRTg0NzI2MDcxRkU0Mjg0NDUzNzJGMkU0NkI0NTVFQjBDNzk3NDdDNTFFMzYyRjQwM0NFMzk0NzNBMkE4QzJERkEwQ0U1Qzk4MjZDMA=="));
|
QCOMPARE(loginRequest->basicAuthorization(), QStringLiteral("Basic c3BhY2V0aTpFN0ZFQTA3REJDODJGQjlCQTM0QjJFNDUzRTJFRkU4OUYwNTgzRTcxODc1NDM1MDdFRjExRTg0NzI2MDcxRkU0Mjg0NDUzNzJGMkU0NkI0NTVFQjBDNzk3NDdDNTFFMzYyRjQwM0NFMzk0NzNBMkE4QzJERkEwQ0U1Qzk4MjZDMA=="));
|
||||||
|
|
||||||
QSignalSpy spyFinished(loginRequest.get(), &serversdk::Request::finished);
|
QSignalSpy loginFinished(loginRequest.get(), &serversdk::Request::finished);
|
||||||
reqMan.processRequest(loginRequest);
|
reqMan.processRequest(loginRequest);
|
||||||
|
|
||||||
QVERIFY(spyFinished.wait());
|
QVERIFY(loginFinished.wait());
|
||||||
QCOMPARE(spyFinished.count(), 1 );
|
QCOMPARE(loginFinished.count(), 1 );
|
||||||
|
|
||||||
|
|
||||||
auto data = loginRequest->responseData();
|
auto data = loginRequest->responseData();
|
||||||
@ -57,9 +68,45 @@ void RequestManagerTest::colnodAuthorization_test()
|
|||||||
QVERIFY(token.id().isNull()); // must be null
|
QVERIFY(token.id().isNull()); // must be null
|
||||||
token.fromJson(data);
|
token.fromJson(data);
|
||||||
QVERIFY(!token.id().isNull()); // mut not be null ( authentication token )
|
QVERIFY(!token.id().isNull()); // mut not be null ( authentication token )
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RequestManagerTest::colnodGetUpdatedTokens_test()
|
||||||
|
{
|
||||||
|
serversdk::RequestManager reqMan;
|
||||||
|
reqMan.setIgnoreSsl(true);
|
||||||
|
|
||||||
|
auto loginRequest = colnodLoginRequest();
|
||||||
|
QCOMPARE(loginRequest->basicAuthorization(), QStringLiteral("Basic c3BhY2V0aTpFN0ZFQTA3REJDODJGQjlCQTM0QjJFNDUzRTJFRkU4OUYwNTgzRTcxODc1NDM1MDdFRjExRTg0NzI2MDcxRkU0Mjg0NDUzNzJGMkU0NkI0NTVFQjBDNzk3NDdDNTFFMzYyRjQwM0NFMzk0NzNBMkE4QzJERkEwQ0U1Qzk4MjZDMA=="));
|
||||||
|
|
||||||
|
QSignalSpy spyFinished(loginRequest.get(), &serversdk::Request::finished);
|
||||||
|
reqMan.processRequest(loginRequest);
|
||||||
|
|
||||||
|
QVERIFY(spyFinished.wait());
|
||||||
|
QCOMPARE(spyFinished.count(), 1 );
|
||||||
|
|
||||||
|
auto data = loginRequest->responseData();
|
||||||
|
|
||||||
|
Token token;
|
||||||
|
QVERIFY(token.id().isNull()); // must be null
|
||||||
|
token.fromJson(data);
|
||||||
|
QVERIFY(!token.id().isNull()); // mut not be null ( authentication token )
|
||||||
|
|
||||||
|
QByteArray array = R"({"timestamp": 1570109859681})";
|
||||||
|
|
||||||
|
auto tokensRequest = std::make_shared<serversdk::Request>("POST", "https://192.168.1.3:8443/TokenManager/getTokensUpdated", array);
|
||||||
|
tokensRequest->setUserName(token.idWithoutCurlyBraces());
|
||||||
|
QSignalSpy tokensFinished(tokensRequest.get(), &serversdk::Request::finished);
|
||||||
|
reqMan.processRequest(tokensRequest);
|
||||||
|
QVERIFY(tokensRequest->networkReply());
|
||||||
|
QVERIFY(tokensFinished.wait());
|
||||||
|
QCOMPARE(tokensFinished.count(), 1 );
|
||||||
|
|
||||||
|
QVERIFY(tokensRequest->status() == 200);
|
||||||
|
qDebug() << tokensRequest->responseData();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QTEST_GUILESS_MAIN(serversdk::RequestManagerTest)
|
QTEST_GUILESS_MAIN(serversdk::RequestManagerTest)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user