summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.qmake.conf2
-rw-r--r--src/enginio_client/enginio_client.pro2
-rw-r--r--src/enginio_client/enginioclient.cpp2
-rw-r--r--src/enginio_plugin/enginio_plugin.pro2
-rw-r--r--src/enginio_plugin/enginioqmlclient.cpp2
-rw-r--r--sync.profile7
-rw-r--r--tests/auto/enginioclient/tst_enginioclient.cpp29
-rw-r--r--tests/auto/files/tst_files.cpp22
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);