forked from ondra/server-sdk
Adding test for colnod -> TokenManager -> getTokenUpdated
This commit is contained in:
parent
6940cad69e
commit
f1d78192f7
@ -22,7 +22,7 @@ QNetworkRequest Request::networkRequest() const
|
||||
QNetworkRequest request(QUrl(this->mUrl));
|
||||
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json; charset=UTF-8");
|
||||
|
||||
if ( !userName().isEmpty() && !password().isEmpty() ) {
|
||||
if ( !userName().isEmpty() ) {
|
||||
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;
|
||||
}
|
||||
|
||||
@ -49,7 +49,7 @@ public:
|
||||
|
||||
private:
|
||||
// Data handling
|
||||
void appendData(const QByteArray &array);
|
||||
void appendResponseData(const QByteArray &array);
|
||||
|
||||
|
||||
signals:
|
||||
|
||||
@ -20,7 +20,6 @@ RequestManager::RequestManager(QObject *parent)
|
||||
qCWarning(sdknetwork) << "server need authentication";
|
||||
});
|
||||
connect(&mNetworkAccessManager, &QNetworkAccessManager::sslErrors, this, &RequestManager::sslErrors);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -34,10 +33,13 @@ void RequestManager::processRequest(const std::shared_ptr<Request>& request)
|
||||
request->logStartTime();
|
||||
|
||||
if (request->type() == "POST") {
|
||||
if ( request->requestData().isEmpty()) {
|
||||
qCWarning(sdknetwork) << "Request data is empty -> nothing to send";
|
||||
}
|
||||
reply = mNetworkAccessManager.post(request->networkRequest(), request->requestData());
|
||||
} else if (request->type() == "GET") {
|
||||
if ( ! request->responseData().isEmpty()) {
|
||||
qCWarning(sdknetwork) << "Response data is not empty, and you are trying to use get ( not sending any data)";
|
||||
if ( ! request->requestData().isEmpty()) {
|
||||
qCWarning(sdknetwork) << "Request data is not empty, and you are trying to use get ( not sending any data)";
|
||||
}
|
||||
reply = mNetworkAccessManager.get(request->networkRequest());
|
||||
} else if (request->type() == "PUT") {
|
||||
@ -102,7 +104,6 @@ void RequestManager::downloadProgress(qint64 bytesReceived, qint64 bytesTotal)
|
||||
encoding = pair.second;
|
||||
}
|
||||
}
|
||||
|
||||
QByteArray data = reply->readAll();
|
||||
|
||||
// Decompress gzip data
|
||||
@ -113,7 +114,7 @@ void RequestManager::downloadProgress(qint64 bytesReceived, qint64 bytesTotal)
|
||||
#endif
|
||||
|
||||
// Append data to request
|
||||
request->appendData(data);
|
||||
request->appendResponseData(data);
|
||||
|
||||
emit progresss(bytesReceived, bytesTotal);
|
||||
}
|
||||
|
||||
@ -14,6 +14,10 @@ class LoginTable : public serversdk::DatabaseTable {
|
||||
class Token : public serversdk::DatabaseTable {
|
||||
Q_OBJECT
|
||||
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
|
||||
private:
|
||||
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
|
||||
auto login = std::make_unique<LoginTable>();
|
||||
login->set_username("spaceti");
|
||||
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());
|
||||
loginRequest->setUserName(login->username());
|
||||
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=="));
|
||||
|
||||
QSignalSpy spyFinished(loginRequest.get(), &serversdk::Request::finished);
|
||||
QSignalSpy loginFinished(loginRequest.get(), &serversdk::Request::finished);
|
||||
reqMan.processRequest(loginRequest);
|
||||
|
||||
QVERIFY(spyFinished.wait());
|
||||
QCOMPARE(spyFinished.count(), 1 );
|
||||
QVERIFY(loginFinished.wait());
|
||||
QCOMPARE(loginFinished.count(), 1 );
|
||||
|
||||
|
||||
auto data = loginRequest->responseData();
|
||||
@ -57,9 +68,45 @@ void RequestManagerTest::colnodAuthorization_test()
|
||||
QVERIFY(token.id().isNull()); // must be null
|
||||
token.fromJson(data);
|
||||
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)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user