summaryrefslogtreecommitdiff
path: root/tests/auto
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/enginioclient/tst_enginioclient.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/auto/enginioclient/tst_enginioclient.cpp b/tests/auto/enginioclient/tst_enginioclient.cpp
index d9d5dc8..363bbc2 100644
--- a/tests/auto/enginioclient/tst_enginioclient.cpp
+++ b/tests/auto/enginioclient/tst_enginioclient.cpp
@@ -94,6 +94,7 @@ private slots:
void acl();
void creator_updater();
void sharingNetworkManager();
+ void lifeTimeOfNetworkManager();
void search();
void assignUserToGroup();
@@ -1442,6 +1443,42 @@ void tst_EnginioClient::sharingNetworkManager()
delete e2;
}
+struct NetworkManagerDestroySignalSpy
+{
+ bool &called;
+ void operator()() { called = true; }
+};
+
+void tst_EnginioClient::lifeTimeOfNetworkManager()
+{
+ struct : public QThread {
+ void run()
+ {
+ bool result = false;
+ NetworkManagerDestroySignalSpy spy = { result };
+ {
+ EnginioClient client;
+ QNetworkAccessManager *qnam = client.networkManager();
+ QVERIFY(qnam);
+ QObject::connect(qnam, &QNetworkAccessManager::destroyed, spy);
+ }
+ QVERIFY(spy.called);
+ // we need to repeat the operation to confirm that a qnam instance will
+ // be re-created when needed.
+ result = false;
+ {
+ EnginioClient client;
+ QNetworkAccessManager *qnam = client.networkManager();
+ QVERIFY(qnam);
+ QObject::connect(qnam, &QNetworkAccessManager::destroyed, spy);
+ }
+ QVERIFY(spy.called);
+ }
+ } thread;
+ thread.start();
+ QVERIFY(thread.wait(10000));
+}
+
void tst_EnginioClient::prepareForSearch()
{
QJsonObject customObject1;