diff options
-rw-r--r-- | .qmake.conf | 2 | ||||
-rw-r--r-- | src/enginio_client/enginio_client.pro | 2 | ||||
-rw-r--r-- | src/enginio_client/enginioclient.cpp | 2 | ||||
-rw-r--r-- | src/enginio_plugin/enginio_plugin.pro | 2 | ||||
-rw-r--r-- | src/enginio_plugin/enginioqmlclient.cpp | 2 | ||||
-rw-r--r-- | sync.profile | 7 | ||||
-rw-r--r-- | tests/auto/enginioclient/tst_enginioclient.cpp | 29 | ||||
-rw-r--r-- | tests/auto/files/tst_files.cpp | 22 |
8 files changed, 58 insertions, 10 deletions
diff --git a/.qmake.conf b/.qmake.conf index a6ed00b..edb7555 100644 --- a/.qmake.conf +++ b/.qmake.conf @@ -2,4 +2,4 @@ load(qt_build_config) CONFIG += warning_clean CONFIG += qt_example_installs -MODULE_VERSION = 1.0.4 +MODULE_VERSION = 1.0.5 diff --git a/src/enginio_client/enginio_client.pro b/src/enginio_client/enginio_client.pro index 3680f53..ef3f868 100644 --- a/src/enginio_client/enginio_client.pro +++ b/src/enginio_client/enginio_client.pro @@ -43,3 +43,5 @@ HEADERS += \ enginiooauth2authentication.h \ enginioreplystate.h + +DEFINES += "ENGINIO_VERSION=\\\"$$MODULE_VERSION\\\"" diff --git a/src/enginio_client/enginioclient.cpp b/src/enginio_client/enginioclient.cpp index 81029bb..6a47696 100644 --- a/src/enginio_client/enginioclient.cpp +++ b/src/enginio_client/enginioclient.cpp @@ -286,6 +286,8 @@ void EnginioClientConnectionPrivate::init() QObject::connect(static_cast<EnginioClient*>(q_ptr), &EnginioClient::sessionTerminated, AuthenticationStateTrackerFunctor(this)); QObject::connect(static_cast<EnginioClient*>(q_ptr), &EnginioClient::sessionAuthenticated, AuthenticationStateTrackerFunctor(this, Enginio::Authenticated)); QObject::connect(static_cast<EnginioClient*>(q_ptr), &EnginioClient::sessionAuthenticationError, AuthenticationStateTrackerFunctor(this, Enginio::AuthenticationFailure)); + _request.setHeader(QNetworkRequest::UserAgentHeader, + QByteArrayLiteral("Qt:" QT_VERSION_STR " Enginio:" ENGINIO_VERSION " Language:C++")); } void EnginioClientConnectionPrivate::replyFinished(QNetworkReply *nreply) diff --git a/src/enginio_plugin/enginio_plugin.pro b/src/enginio_plugin/enginio_plugin.pro index ac108ea..eef4dfb 100644 --- a/src/enginio_plugin/enginio_plugin.pro +++ b/src/enginio_plugin/enginio_plugin.pro @@ -41,3 +41,5 @@ copy2build.commands = $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT} copy2build.name = COPY ${QMAKE_FILE_IN} copy2build.CONFIG += no_link force_independent: QMAKE_EXTRA_COMPILERS += copy2build + +DEFINES += "ENGINIO_VERSION=\\\"$$MODULE_VERSION\\\"" diff --git a/src/enginio_plugin/enginioqmlclient.cpp b/src/enginio_plugin/enginioqmlclient.cpp index 7c29cd2..9e97e3f 100644 --- a/src/enginio_plugin/enginioqmlclient.cpp +++ b/src/enginio_plugin/enginioqmlclient.cpp @@ -284,6 +284,8 @@ void EnginioQmlClientPrivate::init() QObject::connect(q, &EnginioQmlClient::sessionTerminated, AuthenticationStateTrackerFunctor(this)); QObject::connect(q, &EnginioQmlClient::sessionAuthenticated, AuthenticationStateTrackerFunctor(this, Enginio::Authenticated)); QObject::connect(q, &EnginioQmlClient::sessionAuthenticationError, AuthenticationStateTrackerFunctor(this, Enginio::AuthenticationFailure)); + _request.setHeader(QNetworkRequest::UserAgentHeader, + QByteArrayLiteral("Qt:" QT_VERSION_STR " Enginio:" ENGINIO_VERSION " Language:QML")); } EnginioQmlReply *EnginioQmlClient::fullTextSearch(const QJSValue &query) diff --git a/sync.profile b/sync.profile index 7f05b34..8e2728b 100644 --- a/sync.profile +++ b/sync.profile @@ -8,10 +8,11 @@ # Each of the module version specifiers can take one of the following values: # - A specific Git revision. # - any git symbolic ref resolvable from the module's repository (e.g. "refs/heads/master" to track master branch) +# - an empty string to use the same branch under test (dependencies will become "refs/heads/master" if we are in the master branch) # %dependencies = ( - "qtbase" => "refs/heads/stable", - "qtdeclarative" => "refs/heads/stable", - "qtxmlpatterns" => "refs/heads/stable", + "qtbase" => "", + "qtdeclarative" => "", + "qtxmlpatterns" => "", ); diff --git a/tests/auto/enginioclient/tst_enginioclient.cpp b/tests/auto/enginioclient/tst_enginioclient.cpp index b9941fc..aafebbe 100644 --- a/tests/auto/enginioclient/tst_enginioclient.cpp +++ b/tests/auto/enginioclient/tst_enginioclient.cpp @@ -98,6 +98,7 @@ private slots: void lifeTimeOfNetworkManager(); void fullTextSearch(); void assignUserToGroup(); + void userAgent(); private: QString usergroupId(EnginioClient *client) @@ -798,6 +799,34 @@ void tst_EnginioClient::assignUserToGroup() } } +static void checkUserAgent(QNetworkReply *reply) +{ + QNetworkRequest request = reply->request(); + QVERIFY(request.rawHeaderList().contains("User-Agent")); + QByteArray agent = request.rawHeader("User-Agent"); + QVERIFY(!agent.isEmpty()); + QVERIFY(agent.contains("Qt:")); + QVERIFY(agent.contains("Enginio:")); + QVERIFY(agent.contains("Language:")); +} + +void tst_EnginioClient::userAgent() +{ + EnginioClient client; + client.setBackendId(_backendId); + client.setServiceUrl(EnginioTests::TESTAPP_URL); + + QNetworkAccessManager *qnam = client.networkManager(); + QObject::connect(qnam, &QNetworkAccessManager::finished, &client, checkUserAgent); + + QVector<EnginioReply *> replies; + replies.append(client.query(QJsonObject(), Enginio::UserOperation)); + replies.append(client.create(QJsonObject(), Enginio::UserOperation)); + + foreach (EnginioReply *reply, replies) + QTRY_VERIFY(reply->isFinished()); +} + struct DeleteReplyCountHelper { QSet<QString> &requests; diff --git a/tests/auto/files/tst_files.cpp b/tests/auto/files/tst_files.cpp index 8ac1924..bc1d14d 100644 --- a/tests/auto/files/tst_files.cpp +++ b/tests/auto/files/tst_files.cpp @@ -258,9 +258,14 @@ void tst_Files::fileUploadDownload() QNetworkRequest req; req.setUrl(QUrl(downloadData["expiringUrl"].toString())); QNetworkReply *reply = client.networkManager()->get(req); - QVERIFY(reply); - QSignalSpy downloadSpy(reply, SIGNAL(finished())); - QTRY_COMPARE(downloadSpy.count(), 1); + QTRY_VERIFY(reply->isFinished()); + if (reply->error() != QNetworkReply::NoError) { + // the test has failed already, let's printout some debugging information + qDebug() << downloadData; + qDebug() << req.url(); + qDebug() << reply->readAll(); + QCOMPARE(reply->error(), QNetworkReply::NoError); + } QByteArray imageData = reply->readAll(); reply->deleteLater(); QImage img = QImage::fromData(imageData); @@ -325,9 +330,14 @@ void tst_Files::fileUploadDownload() QNetworkRequest req; req.setUrl(QUrl(downloadData["expiringUrl"].toString())); QNetworkReply *reply = client.networkManager()->get(req); - QVERIFY(reply); - QSignalSpy downloadSpy(reply, SIGNAL(finished())); - QTRY_COMPARE(downloadSpy.count(), 1); + QTRY_VERIFY(reply->isFinished()); + if (reply->error() != QNetworkReply::NoError) { + // the test has failed already, let's printout some debugging information + qDebug() << downloadData; + qDebug() << req.url(); + qDebug() << reply->readAll(); + QCOMPARE(reply->error(), QNetworkReply::NoError); + } QByteArray imageData = reply->readAll(); reply->deleteLater(); QImage img = QImage::fromData(imageData); |