diff options
Diffstat (limited to 'tests/auto')
-rw-r--r-- | tests/auto/enginioclient/tst_enginioclient.cpp | 37 |
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; |