From 167af3b6cad5f40cafffafdc779f26ef63e62c81 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Tue, 6 Mar 2012 08:52:11 +0100 Subject: tst_qnetworkreply: don't inherit from QSharedPointer QSharedPointer isn't meant to be used as a base class. Instead of inheriting from it to add implicit conversions to and from QNetworkReply*, make QNetworkReplyPtr a typedef, overload two oft-used functions to take a QNetworkReplyPtr in addition to QNetworkReply*, and otherwise make the conversions explicit. Change-Id: I1eff1793a19f2d5bad1cce8de74c0786675a50f3 Reviewed-by: Shane Kearns --- .../access/qnetworkreply/tst_qnetworkreply.cpp | 291 ++++++++++----------- .../access/qnetworkreply/tst_qnetworkreply.cpp | 34 +-- 2 files changed, 162 insertions(+), 163 deletions(-) diff --git a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp index 438cf866aa..a5aaf6af25 100644 --- a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp @@ -102,15 +102,7 @@ Q_DECLARE_METATYPE(QList) // for multiparts Q_DECLARE_METATYPE(QSslConfiguration) #endif -class QNetworkReplyPtr: public QSharedPointer -{ -public: - inline QNetworkReplyPtr(QNetworkReply *ptr = 0) - : QSharedPointer(ptr) - { } - - inline operator QNetworkReply *() const { return data(); } -}; +typedef QSharedPointer QNetworkReplyPtr; class MyCookieJar; class tst_QNetworkReply: public QObject @@ -158,6 +150,12 @@ class tst_QNetworkReply: public QObject QScopedPointer networkSession; #endif + using QObject::connect; + static bool connect(const QNetworkReplyPtr &ptr, const char *signal, const QObject *receiver, const char *slot, Qt::ConnectionType ct = Qt::AutoConnection) + { return connect(ptr.data(), signal, receiver, slot, ct); } + bool connect(const QNetworkReplyPtr &ptr, const char *signal, const char *slot, Qt::ConnectionType ct = Qt::AutoConnection) + { return connect(ptr.data(), signal, slot, ct); } + public: tst_QNetworkReply(); ~tst_QNetworkReply(); @@ -742,6 +740,8 @@ public: QByteArray data; QIODevice *device; bool accumulate; + DataReader(const QNetworkReplyPtr &dev, bool acc = true) : totalBytes(0), device(dev.data()), accumulate(acc) + { connect(device, SIGNAL(readyRead()), SLOT(doRead()) ); } DataReader(QIODevice *dev, bool acc = true) : totalBytes(0), device(dev), accumulate(acc) { connect(device, SIGNAL(readyRead()), SLOT(doRead())); @@ -1178,15 +1178,15 @@ QString tst_QNetworkReply::runMultipartRequest(const QNetworkRequest &request, const QByteArray &verb) { if (verb == "POST") - reply = manager.post(request, multiPart); + reply.reset(manager.post(request, multiPart)); else - reply = manager.put(request, multiPart); + reply.reset(manager.put(request, multiPart)); // the code below is copied from tst_QNetworkReply::runSimpleRequest, see below reply->setParent(this); connect(reply, SIGNAL(finished()), SLOT(finished())); connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), SLOT(gotError())); - multiPart->setParent(reply); + multiPart->setParent(reply.data()); returnCode = Timeout; loop = new QEventLoop; @@ -1211,23 +1211,23 @@ QString tst_QNetworkReply::runSimpleRequest(QNetworkAccessManager::Operation op, { switch (op) { case QNetworkAccessManager::HeadOperation: - reply = manager.head(request); + reply.reset(manager.head(request)); break; case QNetworkAccessManager::GetOperation: - reply = manager.get(request); + reply.reset(manager.get(request)); break; case QNetworkAccessManager::PutOperation: - reply = manager.put(request, data); + reply.reset(manager.put(request, data)); break; case QNetworkAccessManager::PostOperation: - reply = manager.post(request, data); + reply.reset(manager.post(request, data)); break; case QNetworkAccessManager::DeleteOperation: - reply = manager.deleteResource(request); + reply.reset(manager.deleteResource(request)); break; default: @@ -1249,7 +1249,7 @@ QString tst_QNetworkReply::runSimpleRequest(QNetworkAccessManager::Operation op, int count = 0; loop = new QEventLoop; - QSignalSpy spy(reply, SIGNAL(downloadProgress(qint64,qint64))); + QSignalSpy spy(reply.data(), SIGNAL(downloadProgress(qint64,qint64))); while (!reply->isFinished()) { QTimer::singleShot(20000, loop, SLOT(quit())); code = loop->exec(); @@ -1277,7 +1277,7 @@ QString tst_QNetworkReply::runCustomRequest(const QNetworkRequest &request, const QByteArray &verb, QIODevice *data) { - reply = manager.sendCustomRequest(request, verb, data); + reply.reset(manager.sendCustomRequest(request, verb, data)); reply->setParent(this); connect(reply, SIGNAL(finished()), SLOT(finished())); connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), SLOT(gotError())); @@ -1306,7 +1306,7 @@ int tst_QNetworkReply::waitForFinish(QNetworkReplyPtr &reply) connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), SLOT(gotError())); returnCode = Success; loop = new QEventLoop; - QSignalSpy spy(reply, SIGNAL(downloadProgress(qint64,qint64))); + QSignalSpy spy(reply.data(), SIGNAL(downloadProgress(qint64,qint64))); while (!reply->isFinished()) { QTimer::singleShot(5000, loop, SLOT(quit())); if ( loop->exec() == Timeout && count == spy.count() && !reply->isFinished()) { @@ -1401,7 +1401,7 @@ void tst_QNetworkReply::stateChecking() { QUrl url = QUrl("file:///"); QNetworkRequest req(url); // you can't open this file, I know - QNetworkReplyPtr reply = manager.get(req); + QNetworkReplyPtr reply(manager.get(req)); QVERIFY(reply.data()); QVERIFY(reply->isOpen()); @@ -1568,7 +1568,7 @@ void tst_QNetworkReply::getFromFile() file.flush(); // run again - reply = 0; + reply.clear(); RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::GetOperation, request, reply)); QCOMPARE(reply->url(), request.url()); @@ -1806,7 +1806,7 @@ void tst_QNetworkReply::getErrors() } #endif - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); reply->setParent(this); // we have expect-fails if (!reply->isFinished()) @@ -2500,7 +2500,7 @@ void tst_QNetworkReply::connectToIPv6Address() url.setPort(server.serverPort()); QNetworkRequest request(url); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); QVERIFY(waitForFinish(reply) == Success); QByteArray content = reply->readAll(); //qDebug() << server.receivedData; @@ -2581,7 +2581,7 @@ void tst_QNetworkReply::ioGetFromData() QUrl url = QUrl::fromEncoded(urlStr.toLatin1()); QNetworkRequest request(url); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); DataReader reader(reply); connect(reply, SIGNAL(finished()), @@ -2613,7 +2613,7 @@ void tst_QNetworkReply::ioGetFromFileSpecial() QNetworkRequest request; request.setUrl(url); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); DataReader reader(reply); connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); @@ -2645,7 +2645,7 @@ void tst_QNetworkReply::ioGetFromFile() QCOMPARE(file.size(), qint64(data.size())); QNetworkRequest request(QUrl::fromLocalFile(file.fileName())); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); QVERIFY(reply->isFinished()); // a file should immediately be done DataReader reader(reply); @@ -2679,7 +2679,7 @@ void tst_QNetworkReply::ioGetFromFtp() reference.open(QIODevice::ReadOnly); // will fail for bigfile QNetworkRequest request("ftp://" + QtNetworkSettings::serverName() + "/qtest/" + fileName); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); DataReader reader(reply); QVERIFY(waitForFinish(reply) == Success); @@ -2704,11 +2704,11 @@ void tst_QNetworkReply::ioGetFromFtpWithReuse() QNetworkRequest request(QUrl("ftp://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt")); // two concurrent (actually, consecutive) gets: - QNetworkReplyPtr reply1 = manager.get(request); + QNetworkReplyPtr reply1(manager.get(request)); DataReader reader1(reply1); - QNetworkReplyPtr reply2 = manager.get(request); + QNetworkReplyPtr reply2(manager.get(request)); DataReader reader2(reply2); - QSignalSpy spy(reply1, SIGNAL(finished())); + QSignalSpy spy(reply1.data(), SIGNAL(finished())); QVERIFY(waitForFinish(reply1) == Success); QVERIFY(waitForFinish(reply2) == Success); @@ -2734,7 +2734,7 @@ void tst_QNetworkReply::ioGetFromHttp() QVERIFY(reference.open(QIODevice::ReadOnly)); QNetworkRequest request(QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt")); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); DataReader reader(reply); QVERIFY(waitForFinish(reply) == Success); @@ -2755,11 +2755,11 @@ void tst_QNetworkReply::ioGetFromHttpWithReuseParallel() QVERIFY(reference.open(QIODevice::ReadOnly)); QNetworkRequest request(QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt")); - QNetworkReplyPtr reply1 = manager.get(request); - QNetworkReplyPtr reply2 = manager.get(request); + QNetworkReplyPtr reply1(manager.get(request)); + QNetworkReplyPtr reply2(manager.get(request)); DataReader reader1(reply1); DataReader reader2(reply2); - QSignalSpy spy(reply1, SIGNAL(finished())); + QSignalSpy spy(reply1.data(), SIGNAL(finished())); QVERIFY(waitForFinish(reply2) == Success); QVERIFY(waitForFinish(reply1) == Success); @@ -2788,7 +2788,7 @@ void tst_QNetworkReply::ioGetFromHttpWithReuseSequential() QNetworkRequest request(QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt")); { - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); DataReader reader(reply); QVERIFY(waitForFinish(reply) == Success); @@ -2806,7 +2806,7 @@ void tst_QNetworkReply::ioGetFromHttpWithReuseSequential() reference.seek(0); // rinse and repeat: { - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); DataReader reader(reply); QVERIFY(waitForFinish(reply) == Success); @@ -2854,11 +2854,11 @@ void tst_QNetworkReply::ioGetFromHttpWithAuth() QFETCH(int, expectedAuth); QNetworkRequest request(url); { - QNetworkReplyPtr reply1 = manager.get(request); - QNetworkReplyPtr reply2 = manager.get(request); + QNetworkReplyPtr reply1(manager.get(request)); + QNetworkReplyPtr reply2(manager.get(request)); DataReader reader1(reply1); DataReader reader2(reply2); - QSignalSpy finishedspy(reply1, SIGNAL(finished())); + QSignalSpy finishedspy(reply1.data(), SIGNAL(finished())); QSignalSpy authspy(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*))); connect(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)), @@ -2881,7 +2881,7 @@ void tst_QNetworkReply::ioGetFromHttpWithAuth() // rinse and repeat: { - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); DataReader reader(reply); QSignalSpy authspy(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*))); @@ -2907,7 +2907,7 @@ void tst_QNetworkReply::ioGetFromHttpWithAuth() true); QSignalSpy authspy(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*))); - QNetworkReplyPtr replySync = manager.get(request); + QNetworkReplyPtr replySync(manager.get(request)); QVERIFY(replySync->isFinished()); // synchronous if (expectedAuth) { // bad credentials in a synchronous request should just fail @@ -2933,7 +2933,7 @@ void tst_QNetworkReply::ioGetFromHttpWithAuth() true); QSignalSpy authspy(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*))); - QNetworkReplyPtr replySync = manager.get(request); + QNetworkReplyPtr replySync(manager.get(request)); QVERIFY(replySync->isFinished()); // synchronous if (expectedAuth) { // bad credentials in a synchronous request should just fail @@ -2962,7 +2962,7 @@ void tst_QNetworkReply::ioGetFromHttpWithAuthSynchronous() true); QSignalSpy authspy(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*))); - QNetworkReplyPtr replySync = manager.get(request); + QNetworkReplyPtr replySync(manager.get(request)); QVERIFY(replySync->isFinished()); // synchronous QCOMPARE(replySync->error(), QNetworkReply::AuthenticationRequiredError); QCOMPARE(authspy.count(), 0); @@ -2981,13 +2981,13 @@ void tst_QNetworkReply::ioGetFromHttpWithProxyAuth() QNetworkRequest request(QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt")); { manager.setProxy(proxy); - QNetworkReplyPtr reply1 = manager.get(request); - QNetworkReplyPtr reply2 = manager.get(request); + QNetworkReplyPtr reply1(manager.get(request)); + QNetworkReplyPtr reply2(manager.get(request)); manager.setProxy(QNetworkProxy()); DataReader reader1(reply1); DataReader reader2(reply2); - QSignalSpy finishedspy(reply1, SIGNAL(finished())); + QSignalSpy finishedspy(reply1.data(), SIGNAL(finished())); QSignalSpy authspy(&manager, SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*))); connect(&manager, SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)), @@ -3012,7 +3012,7 @@ void tst_QNetworkReply::ioGetFromHttpWithProxyAuth() // rinse and repeat: { manager.setProxy(proxy); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); DataReader reader(reply); manager.setProxy(QNetworkProxy()); @@ -3039,7 +3039,7 @@ void tst_QNetworkReply::ioGetFromHttpWithProxyAuth() true); QSignalSpy authspy(&manager, SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*))); - QNetworkReplyPtr replySync = manager.get(request); + QNetworkReplyPtr replySync(manager.get(request)); QVERIFY(replySync->isFinished()); // synchronous QCOMPARE(authspy.count(), 0); @@ -3065,7 +3065,7 @@ void tst_QNetworkReply::ioGetFromHttpWithProxyAuthSynchronous() true); QSignalSpy authspy(&manager, SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*))); - QNetworkReplyPtr replySync = manager.get(request); + QNetworkReplyPtr replySync(manager.get(request)); manager.setProxy(QNetworkProxy()); // reset QVERIFY(replySync->isFinished()); // synchronous QCOMPARE(replySync->error(), QNetworkReply::ProxyAuthenticationRequiredError); @@ -3085,7 +3085,7 @@ void tst_QNetworkReply::ioGetFromHttpWithSocksProxy() QNetworkRequest request(QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt")); { manager.setProxy(proxy); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); DataReader reader(reply); manager.setProxy(QNetworkProxy()); @@ -3108,7 +3108,7 @@ void tst_QNetworkReply::ioGetFromHttpWithSocksProxy() proxy = QNetworkProxy(QNetworkProxy::Socks5Proxy, QtNetworkSettings::serverName(), 1079); { manager.setProxy(proxy); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); DataReader reader(reply); manager.setProxy(QNetworkProxy()); @@ -3139,7 +3139,7 @@ void tst_QNetworkReply::ioGetFromHttpsWithSslErrors() QVERIFY(reference.open(QIODevice::ReadOnly)); QNetworkRequest request(QUrl("https://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt")); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); DataReader reader(reply); QSignalSpy sslspy(&manager, SIGNAL(sslErrors(QNetworkReply*,QList))); @@ -3171,7 +3171,7 @@ void tst_QNetworkReply::ioGetFromHttpsWithIgnoreSslErrors() QNetworkRequest request(QUrl("https://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt")); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); reply->ignoreSslErrors(); DataReader reader(reply); @@ -3196,7 +3196,7 @@ void tst_QNetworkReply::ioGetFromHttpsWithSslHandshakeError() QNetworkRequest request(QUrl("https://" + QtNetworkSettings::serverName() + ":80")); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); reply->ignoreSslErrors(); DataReader reader(reply); @@ -3258,8 +3258,8 @@ void tst_QNetworkReply::ioGetFromHttpBrokenServer() server.doClose = doDisconnect; QNetworkRequest request(QUrl("http://localhost:" + QString::number(server.serverPort()))); - QNetworkReplyPtr reply = manager.get(request); - QSignalSpy spy(reply, SIGNAL(error(QNetworkReply::NetworkError))); + QNetworkReplyPtr reply(manager.get(request)); + QSignalSpy spy(reply.data(), SIGNAL(error(QNetworkReply::NetworkError))); QVERIFY(waitForFinish(reply) == Failure); @@ -3289,7 +3289,7 @@ void tst_QNetworkReply::ioGetFromHttpStatus100() server.doClose = true; QNetworkRequest request(QUrl("http://localhost:" + QString::number(server.serverPort()))); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); QVERIFY(waitForFinish(reply) == Success); @@ -3312,7 +3312,7 @@ void tst_QNetworkReply::ioGetFromHttpNoHeaders() server.doClose = true; QNetworkRequest request(QUrl("http://localhost:" + QString::number(server.serverPort()))); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); QVERIFY(waitForFinish(reply) == Success); @@ -3482,7 +3482,7 @@ void tst_QNetworkReply::ioGetFromHttpWithCache() request.setRawHeader(header.toLatin1(), value.toLatin1()); // To latin1? Deal with it! } - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); QVERIFY(waitForFinish(reply) != Timeout); @@ -3706,7 +3706,7 @@ void tst_QNetworkReply::ioGetWithManyProxies() QFETCH(QString, url); QUrl theUrl(url); QNetworkRequest request(theUrl); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); DataReader reader(reply); QSignalSpy authspy(&manager, SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*))); @@ -3774,7 +3774,7 @@ void tst_QNetworkReply::ioPutToFileFromFile() QUrl url = QUrl::fromLocalFile(targetFile.fileName()); QNetworkRequest request(url); - QNetworkReplyPtr reply = manager.put(request, &sourceFile); + QNetworkReplyPtr reply(manager.put(request, &sourceFile)); QVERIFY(waitForFinish(reply) == Success); @@ -3809,7 +3809,7 @@ void tst_QNetworkReply::ioPutToFileFromSocket() QVERIFY(socketpair.endPoints[0] && socketpair.endPoints[1]); socketpair.endPoints[0]->write(data); - QNetworkReplyPtr reply = manager.put(QNetworkRequest(url), socketpair.endPoints[1]); + QNetworkReplyPtr reply(manager.put(QNetworkRequest(url), socketpair.endPoints[1])); socketpair.endPoints[0]->close(); QVERIFY(waitForFinish(reply) == Success); @@ -3853,8 +3853,8 @@ void tst_QNetworkReply::ioPutToFileFromLocalSocket() QFETCH(QByteArray, data); active.write(data); active.close(); - QNetworkReplyPtr reply = manager.put(QNetworkRequest(url), passive); - passive->setParent(reply); + QNetworkReplyPtr reply(manager.put(QNetworkRequest(url), passive)); + passive->setParent(reply.data()); #ifdef Q_OS_WIN if (!data.isEmpty()) @@ -3906,7 +3906,7 @@ void tst_QNetworkReply::ioPutToFileFromProcess() process.write(data); process.closeWriteChannel(); - QNetworkReplyPtr reply = manager.put(QNetworkRequest(url), &process); + QNetworkReplyPtr reply(manager.put(QNetworkRequest(url), &process)); QVERIFY(waitForFinish(reply) == Success); @@ -3940,7 +3940,7 @@ void tst_QNetworkReply::ioPutToFtpFromFile() .arg(uniqueExtension)); QNetworkRequest request(url); - QNetworkReplyPtr reply = manager.put(request, &sourceFile); + QNetworkReplyPtr reply(manager.put(request, &sourceFile)); QVERIFY(waitForFinish(reply) == Success); @@ -3989,7 +3989,7 @@ void tst_QNetworkReply::ioPutToHttpFromFile() .arg(uniqueExtension)); QNetworkRequest request(url); - QNetworkReplyPtr reply = manager.put(request, &sourceFile); + QNetworkReplyPtr reply(manager.put(request, &sourceFile)); QVERIFY(waitForFinish(reply) == Success); @@ -4004,7 +4004,7 @@ void tst_QNetworkReply::ioPutToHttpFromFile() // download the file again from HTTP to make sure it was uploaded // correctly - reply = manager.get(request); + reply.reset(manager.get(request)); QVERIFY(waitForFinish(reply) == Success); @@ -4030,7 +4030,7 @@ void tst_QNetworkReply::ioPostToHttpFromFile() QNetworkRequest request(url); request.setRawHeader("Content-Type", "application/octet-stream"); - QNetworkReplyPtr reply = manager.post(request, &sourceFile); + QNetworkReplyPtr reply(manager.post(request, &sourceFile)); QVERIFY(waitForFinish(reply) == Success); @@ -4103,7 +4103,7 @@ void tst_QNetworkReply::ioPostToHttpFromSocket() request.setRawHeader("Content-Type", "application/octet-stream"); manager.setProxy(proxy); - QNetworkReplyPtr reply = manager.post(request, socketpair.endPoints[1]); + QNetworkReplyPtr reply(manager.post(request, socketpair.endPoints[1])); socketpair.endPoints[0]->close(); connect(&manager, SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)), @@ -4180,7 +4180,7 @@ void tst_QNetworkReply::ioPostToHttpFromSocketSynchronous() QNetworkRequest::SynchronousRequestAttribute, true); - QNetworkReplyPtr reply = manager.post(request, socketpair.endPoints[1]); + QNetworkReplyPtr reply(manager.post(request, socketpair.endPoints[1])); QVERIFY(reply->isFinished()); socketpair.endPoints[0]->close(); @@ -4206,7 +4206,7 @@ void tst_QNetworkReply::ioPostToHttpFromMiddleOfFileToEnd() QUrl url = "http://" + QtNetworkSettings::serverName() + "/qtest/protected/cgi-bin/md5sum.cgi"; QNetworkRequest request(url); request.setRawHeader("Content-Type", "application/octet-stream"); - QNetworkReplyPtr reply = manager.post(request, &sourceFile); + QNetworkReplyPtr reply(manager.post(request, &sourceFile)); connect(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)), SLOT(authenticationRequired(QNetworkReply*,QAuthenticator*))); @@ -4235,7 +4235,7 @@ void tst_QNetworkReply::ioPostToHttpFromMiddleOfFileFiveBytes() // only send 5 bytes request.setHeader(QNetworkRequest::ContentLengthHeader, 5); QVERIFY(request.header(QNetworkRequest::ContentLengthHeader).isValid()); - QNetworkReplyPtr reply = manager.post(request, &sourceFile); + QNetworkReplyPtr reply(manager.post(request, &sourceFile)); connect(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)), SLOT(authenticationRequired(QNetworkReply*,QAuthenticator*))); @@ -4263,7 +4263,7 @@ void tst_QNetworkReply::ioPostToHttpFromMiddleOfQBufferFiveBytes() QUrl url = "http://" + QtNetworkSettings::serverName() + "/qtest/protected/cgi-bin/md5sum.cgi"; QNetworkRequest request(url); request.setRawHeader("Content-Type", "application/octet-stream"); - QNetworkReplyPtr reply = manager.post(request, &uploadBuffer); + QNetworkReplyPtr reply(manager.post(request, &uploadBuffer)); connect(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)), SLOT(authenticationRequired(QNetworkReply*,QAuthenticator*))); @@ -4295,7 +4295,7 @@ void tst_QNetworkReply::ioPostToHttpNoBufferFlag() // disallow buffering request.setAttribute(QNetworkRequest::DoNotBufferUploadDataAttribute, true); request.setHeader(QNetworkRequest::ContentLengthHeader, data.size()); - QNetworkReplyPtr reply = manager.post(request, socketpair.endPoints[1]); + QNetworkReplyPtr reply(manager.post(request, socketpair.endPoints[1])); socketpair.endPoints[0]->close(); connect(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)), @@ -4373,11 +4373,11 @@ void tst_QNetworkReply::ioPostToHttpsUploadProgress() QNetworkRequest request(url); request.setRawHeader("Content-Type", "application/octet-stream"); - QNetworkReplyPtr reply = manager.post(request, sourceFile); + QNetworkReplyPtr reply(manager.post(request, sourceFile)); - QSignalSpy spy(reply, SIGNAL(uploadProgress(qint64,qint64))); + QSignalSpy spy(reply.data(), SIGNAL(uploadProgress(qint64,qint64))); connect(&server, SIGNAL(newEncryptedConnection()), &QTestEventLoop::instance(), SLOT(exitLoop())); - connect(reply, SIGNAL(sslErrors(const QList&)), reply, SLOT(ignoreSslErrors())); + connect(reply, SIGNAL(sslErrors(const QList&)), reply.data(), SLOT(ignoreSslErrors())); // get the request started and the incoming socket connected QTestEventLoop::instance().enterLoop(10); @@ -4461,11 +4461,11 @@ void tst_QNetworkReply::ioGetFromBuiltinHttp() .arg(https?"https":"http") .arg(server.serverPort())); QNetworkRequest request(url); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); reply->setReadBufferSize(bufferSize); reply->ignoreSslErrors(); const int rate = 200; // in kB per sec - RateControlledReader reader(server, reply, rate, bufferSize); + RateControlledReader reader(server, reply.data(), rate, bufferSize); QTime loopTime; loopTime.start(); @@ -4520,8 +4520,8 @@ void tst_QNetworkReply::ioPostToHttpUploadProgress() QUrl url = QUrl(QString("http://127.0.0.1:%1/").arg(server.serverPort())); QNetworkRequest request(url); request.setRawHeader("Content-Type", "application/octet-stream"); - QNetworkReplyPtr reply = manager.post(request, &sourceFile); - QSignalSpy spy(reply, SIGNAL(uploadProgress(qint64,qint64))); + QNetworkReplyPtr reply(manager.post(request, &sourceFile)); + QSignalSpy spy(reply.data(), SIGNAL(uploadProgress(qint64,qint64))); connect(&server, SIGNAL(newConnection()), &QTestEventLoop::instance(), SLOT(exitLoop())); // get the request started and the incoming socket connected @@ -4580,8 +4580,8 @@ void tst_QNetworkReply::ioPostToHttpEmptyUploadProgress() QUrl url = QUrl(QString("http://127.0.0.1:%1/").arg(server.serverPort())); QNetworkRequest request(url); request.setRawHeader("Content-Type", "application/octet-stream"); - QNetworkReplyPtr reply = manager.post(request, &buffer); - QSignalSpy spy(reply, SIGNAL(uploadProgress(qint64,qint64))); + QNetworkReplyPtr reply(manager.post(request, &buffer)); + QSignalSpy spy(reply.data(), SIGNAL(uploadProgress(qint64,qint64))); connect(&server, SIGNAL(newConnection()), &QTestEventLoop::instance(), SLOT(exitLoop())); @@ -4620,7 +4620,7 @@ void tst_QNetworkReply::lastModifiedHeaderForFile() QUrl url = QUrl::fromLocalFile(fileInfo.filePath()); QNetworkRequest request(url); - QNetworkReplyPtr reply = manager.head(request); + QNetworkReplyPtr reply(manager.head(request)); QVERIFY(waitForFinish(reply) == Success); @@ -4634,7 +4634,7 @@ void tst_QNetworkReply::lastModifiedHeaderForHttp() QUrl url = "http://" + QtNetworkSettings::serverName() + "/qtest/fluke.gif"; QNetworkRequest request(url); - QNetworkReplyPtr reply = manager.head(request); + QNetworkReplyPtr reply(manager.head(request)); QVERIFY(waitForFinish(reply) == Success); @@ -4648,7 +4648,7 @@ void tst_QNetworkReply::lastModifiedHeaderForHttp() void tst_QNetworkReply::httpCanReadLine() { QNetworkRequest request(QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt")); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); QVERIFY(waitForFinish(reply) == Success); @@ -4687,11 +4687,11 @@ void tst_QNetworkReply::rateControl() FastSender sender(20 * rate * 1024); QNetworkRequest request("debugpipe://localhost:" + QString::number(sender.serverPort())); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); reply->setReadBufferSize(32768); - QSignalSpy errorSpy(reply, SIGNAL(error(QNetworkReply::NetworkError))); + QSignalSpy errorSpy(reply.data(), SIGNAL(error(QNetworkReply::NetworkError))); - RateControlledReader reader(sender, reply, rate, 20); + RateControlledReader reader(sender, reply.data(), rate, 20); // this test is designed to run for 25 seconds at most QTime loopTime; @@ -4739,8 +4739,8 @@ void tst_QNetworkReply::downloadProgress() QVERIFY(server.listen()); QNetworkRequest request("debugpipe://127.0.0.1:" + QString::number(server.serverPort()) + "/?bare=1"); - QNetworkReplyPtr reply = manager.get(request); - QSignalSpy spy(reply, SIGNAL(downloadProgress(qint64,qint64))); + QNetworkReplyPtr reply(manager.get(request)); + QSignalSpy spy(reply.data(), SIGNAL(downloadProgress(qint64,qint64))); connect(reply, SIGNAL(downloadProgress(qint64,qint64)), &QTestEventLoop::instance(), SLOT(exitLoop())); QVERIFY(spy.isValid()); @@ -4805,9 +4805,9 @@ void tst_QNetworkReply::uploadProgress() QVERIFY(server.listen()); QNetworkRequest request("debugpipe://127.0.0.1:" + QString::number(server.serverPort()) + "/?bare=1"); - QNetworkReplyPtr reply = manager.put(request, data); - QSignalSpy spy(reply, SIGNAL(uploadProgress(qint64,qint64))); - QSignalSpy finished(reply, SIGNAL(finished())); + QNetworkReplyPtr reply(manager.put(request, data)); + QSignalSpy spy(reply.data(), SIGNAL(uploadProgress(qint64,qint64))); + QSignalSpy finished(reply.data(), SIGNAL(finished())); QVERIFY(spy.isValid()); QVERIFY(finished.isValid()); @@ -4848,12 +4848,12 @@ void tst_QNetworkReply::chaining() QCOMPARE(sourceFile.size(), qint64(data.size())); QNetworkRequest request(QUrl::fromLocalFile(sourceFile.fileName())); - QNetworkReplyPtr getReply = manager.get(request); + QNetworkReplyPtr getReply(manager.get(request)); QFile targetFile(testFileName); QUrl url = QUrl::fromLocalFile(targetFile.fileName()); request.setUrl(url); - QNetworkReplyPtr putReply = manager.put(request, getReply); + QNetworkReplyPtr putReply(manager.put(request, getReply.data())); QVERIFY(waitForFinish(putReply) == Success); @@ -5084,10 +5084,10 @@ void tst_QNetworkReply::nestedEventLoops() QUrl url("http://" + QtNetworkSettings::serverName()); QNetworkRequest request(url); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); - QSignalSpy finishedspy(reply, SIGNAL(finished())); - QSignalSpy errorspy(reply, SIGNAL(error(QNetworkReply::NetworkError))); + QSignalSpy finishedspy(reply.data(), SIGNAL(finished())); + QSignalSpy errorspy(reply.data(), SIGNAL(error(QNetworkReply::NetworkError))); connect(reply, SIGNAL(finished()), SLOT(nestedEventLoops_slot())); QTestEventLoop::instance().enterLoop(20); @@ -5127,7 +5127,7 @@ void tst_QNetworkReply::httpProxyCommands() manager.setProxy(proxy); QNetworkRequest request(url); request.setRawHeader("User-Agent", "QNetworkReplyAutoTest/1.0"); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); //clearing the proxy here causes the test to fail. //the proxy isn't used until after the bearer has been started //which is correct in general, because system proxy isn't known until that time. @@ -5214,7 +5214,7 @@ void tst_QNetworkReply::httpProxyCommandsSynchronous() QNetworkRequest::SynchronousRequestAttribute, true); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); QVERIFY(reply->isFinished()); // synchronous manager.setProxy(QNetworkProxy()); @@ -5239,11 +5239,11 @@ void tst_QNetworkReply::proxyChange() proxyServer.doClose = false; manager.setProxy(dummyProxy); - QNetworkReplyPtr reply1 = manager.get(req); + QNetworkReplyPtr reply1(manager.get(req)); connect(reply1, SIGNAL(finished()), &helper, SLOT(finishedSlot())); manager.setProxy(QNetworkProxy()); - QNetworkReplyPtr reply2 = manager.get(req); + QNetworkReplyPtr reply2(manager.get(req)); connect(reply2, SIGNAL(finished()), &helper, SLOT(finishedSlot())); QTestEventLoop::instance().enterLoop(20); @@ -5267,7 +5267,7 @@ void tst_QNetworkReply::proxyChange() "Content-Length: 1\r\n\r\n1"; manager.setProxy(dummyProxy); - QNetworkReplyPtr reply3 = manager.get(req); + QNetworkReplyPtr reply3(manager.get(req)); QVERIFY(waitForFinish(reply3) == Failure); @@ -5297,12 +5297,12 @@ void tst_QNetworkReply::authorizationError() { QFETCH(QString, url); QNetworkRequest request(url); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); QCOMPARE(reply->error(), QNetworkReply::NoError); - QSignalSpy errorSpy(reply, SIGNAL(error(QNetworkReply::NetworkError))); - QSignalSpy finishedSpy(reply, SIGNAL(finished())); + QSignalSpy errorSpy(reply.data(), SIGNAL(error(QNetworkReply::NetworkError))); + QSignalSpy finishedSpy(reply.data(), SIGNAL(finished())); // now run the request: QVERIFY(waitForFinish(reply) == Failure); @@ -5549,7 +5549,7 @@ void tst_QNetworkReply::ignoreSslErrorsList() { QFETCH(QString, url); QNetworkRequest request(url); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); QFETCH(QList, expectedSslErrors); reply->ignoreSslErrors(expectedSslErrors); @@ -5576,7 +5576,7 @@ void tst_QNetworkReply::ignoreSslErrorsListWithSlot() { QFETCH(QString, url); QNetworkRequest request(url); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); QFETCH(QList, expectedSslErrors); // store the errors to ignore them later in the slot connected below @@ -5611,7 +5611,7 @@ void tst_QNetworkReply::sslConfiguration() QNetworkRequest request(QUrl("https://" + QtNetworkSettings::serverName() + "/index.html")); QFETCH(QSslConfiguration, configuration); request.setSslConfiguration(configuration); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); QVERIFY(waitForFinish(reply) != Timeout); @@ -5886,9 +5886,9 @@ void tst_QNetworkReply::getFromHttpIntoBuffer2() request.setAttribute(QNetworkRequest::MaximumDownloadBufferSizeAttribute, 1024*1024*128); // 128 MB is max allowed QNetworkAccessManager manager; - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); - GetFromHttpIntoBuffer2Client client(reply, useDownloadBuffer, UploadSize); + GetFromHttpIntoBuffer2Client client(reply.data(), useDownloadBuffer, UploadSize); connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection); QTestEventLoop::instance().enterLoop(40); @@ -5906,7 +5906,7 @@ void tst_QNetworkReply::getFromHttpIntoBufferCanReadLine() QNetworkRequest request(QUrl("http://localhost:" + QString::number(server.serverPort()))); request.setAttribute(QNetworkRequest::MaximumDownloadBufferSizeAttribute, 1024*1024*128); // 128 MB is max allowed - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); QVERIFY(waitForFinish(reply) == Success); @@ -5930,7 +5930,7 @@ void tst_QNetworkReply::ioGetFromHttpWithoutContentLength() server.doClose = true; QNetworkRequest request(QUrl("http://localhost:" + QString::number(server.serverPort()))); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); QVERIFY(waitForFinish(reply) == Success); @@ -5949,7 +5949,7 @@ void tst_QNetworkReply::ioGetFromHttpBrokenChunkedEncoding() server.doClose = false; // FIXME QNetworkRequest request(QUrl("http://localhost:" + QString::number(server.serverPort()))); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); QTestEventLoop::instance().enterLoop(10); @@ -5978,7 +5978,7 @@ void tst_QNetworkReply::qtbug12908compressedHttpReply() server.doClose = true; QNetworkRequest request(QUrl("http://localhost:" + QString::number(server.serverPort()))); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); QVERIFY(waitForFinish(reply) == Success); @@ -6001,7 +6001,7 @@ void tst_QNetworkReply::compressedHttpReplyBrokenGzip() server.doClose = true; QNetworkRequest request(QUrl("http://localhost:" + QString::number(server.serverPort()))); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); QVERIFY(waitForFinish(reply) == Failure); @@ -6014,7 +6014,7 @@ void tst_QNetworkReply::getFromUnreachableIp() QNetworkAccessManager manager; QNetworkRequest request(QUrl("http://255.255.255.255/42/23/narf/narf/narf")); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); QVERIFY(waitForFinish(reply) == Failure); @@ -6028,11 +6028,11 @@ void tst_QNetworkReply::qtbug4121unknownAuthentication() QNetworkRequest request(QUrl("http://localhost:" + QString::number(server.serverPort()))); QNetworkAccessManager manager; - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); QSignalSpy authSpy(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*))); QSignalSpy finishedSpy(&manager, SIGNAL(finished(QNetworkReply*))); - QSignalSpy errorSpy(reply, SIGNAL(error(QNetworkReply::NetworkError))); + QSignalSpy errorSpy(reply.data(), SIGNAL(error(QNetworkReply::NetworkError))); connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection); QTestEventLoop::instance().enterLoop(10); @@ -6121,7 +6121,7 @@ void tst_QNetworkReply::authenticationCacheAfterCancel() QNetworkReplyPtr reply; if (proxyAuth) { //should fail due to no credentials - reply = manager.get(request); + reply.reset(manager.get(request)); connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection); QTestEventLoop::instance().enterLoop(10); QVERIFY(!QTestEventLoop::instance().timeout()); @@ -6134,7 +6134,7 @@ void tst_QNetworkReply::authenticationCacheAfterCancel() //should fail due to bad credentials helper.proxyUserName = "qsockstest"; helper.proxyPassword = "badpassword"; - reply = manager.get(request); + reply.reset(manager.get(request)); connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection); QTestEventLoop::instance().enterLoop(10); QVERIFY(!QTestEventLoop::instance().timeout()); @@ -6162,7 +6162,7 @@ void tst_QNetworkReply::authenticationCacheAfterCancel() } //should fail due to no credentials - reply = manager.get(request); + reply.reset(manager.get(request)); connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection); QTestEventLoop::instance().enterLoop(10); QVERIFY(!QTestEventLoop::instance().timeout()); @@ -6178,7 +6178,7 @@ void tst_QNetworkReply::authenticationCacheAfterCancel() //should fail due to bad credentials helper.httpUserName = "baduser"; helper.httpPassword = "badpassword"; - reply = manager.get(request); + reply.reset(manager.get(request)); connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection); QTestEventLoop::instance().enterLoop(10); QVERIFY(!QTestEventLoop::instance().timeout()); @@ -6196,7 +6196,7 @@ void tst_QNetworkReply::authenticationCacheAfterCancel() helper.httpUserName = "httptest"; helper.httpPassword = "httptest"; - reply = manager.get(request); + reply.reset(manager.get(request)); connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection); QTestEventLoop::instance().enterLoop(10); QVERIFY(!QTestEventLoop::instance().timeout()); @@ -6211,7 +6211,7 @@ void tst_QNetworkReply::authenticationCacheAfterCancel() } //next auth should use cached credentials - reply = manager.get(request); + reply.reset(manager.get(request)); connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection); QTestEventLoop::instance().enterLoop(10); QVERIFY(!QTestEventLoop::instance().timeout()); @@ -6320,7 +6320,7 @@ void tst_QNetworkReply::httpWithNoCredentialUsage() // Get with credentials, to preload authentication cache { QNetworkRequest request(QUrl("http://httptest:httptest@" + QtNetworkSettings::serverName() + "/qtest/protected/cgi-bin/md5sum.cgi")); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); QVERIFY(waitForFinish(reply) == Success); // credentials in URL, so don't expect authentication signal QCOMPARE(authSpy.count(), 0); @@ -6331,7 +6331,7 @@ void tst_QNetworkReply::httpWithNoCredentialUsage() // Get with cached credentials (normal usage) { QNetworkRequest request(QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/protected/cgi-bin/md5sum.cgi")); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); QVERIFY(waitForFinish(reply) == Success); // credentials in cache, so don't expect authentication signal QCOMPARE(authSpy.count(), 0); @@ -6343,9 +6343,9 @@ void tst_QNetworkReply::httpWithNoCredentialUsage() { QNetworkRequest request(QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/protected/cgi-bin/md5sum.cgi")); request.setAttribute(QNetworkRequest::AuthenticationReuseAttribute, QNetworkRequest::Manual); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); - QSignalSpy errorSpy(reply, SIGNAL(error(QNetworkReply::NetworkError))); + QSignalSpy errorSpy(reply.data(), SIGNAL(error(QNetworkReply::NetworkError))); connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection); QTestEventLoop::instance().enterLoop(10); @@ -6367,7 +6367,7 @@ void tst_QNetworkReply::qtbug15311doubleContentLength() server.doClose = true; QNetworkRequest request(QUrl("http://localhost:" + QString::number(server.serverPort()))); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); QVERIFY(waitForFinish(reply) == Success); @@ -6386,7 +6386,7 @@ void tst_QNetworkReply::qtbug18232gzipContentLengthZero() server.doClose = true; QNetworkRequest request(QUrl("http://localhost:" + QString::number(server.serverPort()))); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); QVERIFY(waitForFinish(reply) == Success); @@ -6407,7 +6407,7 @@ void tst_QNetworkReply::qtbug22660gzipNoContentLengthEmptyContent() server.doClose = true; QNetworkRequest request(QUrl("http://localhost:" + QString::number(server.serverPort()))); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); QVERIFY(waitForFinish(reply) == Success); @@ -6570,16 +6570,15 @@ void tst_QNetworkReply::httpAbort() // Abort after the first readyRead() QNetworkRequest request("http://" + QtNetworkSettings::serverName() + "/qtest/bigfile"); - QNetworkReplyPtr reply; - reply = manager.get(request); - HttpAbortHelper replyHolder(reply); + QNetworkReplyPtr reply(manager.get(request)); + HttpAbortHelper replyHolder(reply.data()); QTestEventLoop::instance().enterLoop(10); QVERIFY(!QTestEventLoop::instance().timeout()); QCOMPARE(reply->error(), QNetworkReply::OperationCanceledError); QVERIFY(reply->isFinished()); // Abort immediately after the get() - QNetworkReplyPtr reply2 = manager.get(request); + QNetworkReplyPtr reply2(manager.get(request)); connect(reply2, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); reply2->abort(); QCOMPARE(reply2->error(), QNetworkReply::OperationCanceledError); @@ -6587,7 +6586,7 @@ void tst_QNetworkReply::httpAbort() // Abort after the finished() QNetworkRequest request3("http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt"); - QNetworkReplyPtr reply3 = manager.get(request3); + QNetworkReplyPtr reply3(manager.get(request3)); QVERIFY(waitForFinish(reply3) == Success); @@ -6618,7 +6617,7 @@ void tst_QNetworkReply::dontInsertPartialContentIntoTheCache() QNetworkRequest request(url); request.setRawHeader("Range", "bytes=2-6"); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); QVERIFY(waitForFinish(reply) == Success); @@ -6635,7 +6634,7 @@ void tst_QNetworkReply::httpUserAgent() QNetworkRequest request(QUrl("http://localhost:" + QString::number(server.serverPort()))); request.setHeader(QNetworkRequest::UserAgentHeader, "abcDEFghi"); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); QVERIFY(waitForFinish(reply) == Success); @@ -6688,7 +6687,7 @@ void tst_QNetworkReply::synchronousAuthenticationCache() QNetworkRequest request(url); request.setAttribute(QNetworkRequest::SynchronousRequestAttribute, true); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); QVERIFY(reply->isFinished()); QCOMPARE(reply->error(), QNetworkReply::AuthenticationRequiredError); } @@ -6699,7 +6698,7 @@ void tst_QNetworkReply::synchronousAuthenticationCache() QNetworkRequest request(url); request.setAttribute(QNetworkRequest::SynchronousRequestAttribute, true); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); QVERIFY(reply->isFinished()); QCOMPARE(reply->error(), QNetworkReply::NoError); QCOMPARE(reply->readAll().constData(), "OK"); @@ -6711,7 +6710,7 @@ void tst_QNetworkReply::synchronousAuthenticationCache() QNetworkRequest request(url); request.setAttribute(QNetworkRequest::SynchronousRequestAttribute, true); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); QVERIFY(reply->isFinished()); QCOMPARE(reply->error(), QNetworkReply::NoError); QCOMPARE(reply->readAll().constData(), "OK"); @@ -6725,7 +6724,7 @@ void tst_QNetworkReply::pipelining() for (int a = 0; a < 20; a++) { QNetworkRequest request(urlString + QString::number(a)); request.setAttribute(QNetworkRequest::HttpPipeliningAllowedAttribute, QVariant(true)); - replies.append(manager.get(request)); + replies.append(QNetworkReplyPtr(manager.get(request))); connect(replies.at(a), SIGNAL(finished()), this, SLOT(pipeliningHelperSlot())); } QTestEventLoop::instance().enterLoop(20); diff --git a/tests/benchmarks/network/access/qnetworkreply/tst_qnetworkreply.cpp b/tests/benchmarks/network/access/qnetworkreply/tst_qnetworkreply.cpp index 16f9625eba..d6477475d3 100644 --- a/tests/benchmarks/network/access/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/benchmarks/network/access/qnetworkreply/tst_qnetworkreply.cpp @@ -122,16 +122,7 @@ protected: }; -class QNetworkReplyPtr: public QSharedPointer -{ -public: - inline QNetworkReplyPtr(QNetworkReply *ptr = 0) - : QSharedPointer(ptr) - { } - - inline operator QNetworkReply *() const { return data(); } -}; - +typedef QSharedPointer QNetworkReplyPtr; class DataReader: public QObject { @@ -141,6 +132,10 @@ public: QByteArray data; QIODevice *device; bool accumulate; + DataReader(const QNetworkReplyPtr &dev, bool acc = true) : totalBytes(0), device(dev.data()), accumulate(acc) + { + connect(device, SIGNAL(readyRead()), SLOT(doRead())); + } DataReader(QIODevice *dev, bool acc = true) : totalBytes(0), device(dev), accumulate(acc) { connect(device, SIGNAL(readyRead()), SLOT(doRead())); @@ -453,6 +448,11 @@ class tst_qnetworkreply : public QObject Q_OBJECT QNetworkAccessManager manager; + +public: + using QObject::connect; + bool connect(const QNetworkReplyPtr &sender, const char *signal, const QObject *receiver, const char *slot, Qt::ConnectionType ct = Qt::AutoConnection) + { return connect(sender.data(), signal, receiver, slot, ct); } private slots: void initTestCase(); void httpLatency(); @@ -531,7 +531,7 @@ void tst_qnetworkreply::downloadPerformance() // and measures how fast it was. TimedSender sender(5000); QNetworkRequest request(QUrl(QStringLiteral("debugpipe://127.0.0.1:") + QString::number(sender.serverPort()) + QStringLiteral("/?bare=1"))); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); DataReader reader(reply, false); QTime loopTime; @@ -553,7 +553,7 @@ void tst_qnetworkreply::uploadPerformance() QNetworkRequest request(QUrl(QStringLiteral("debugpipe://127.0.0.1:") + QString::number(reader.serverPort()) + QStringLiteral("/?bare=1"))); - QNetworkReplyPtr reply = manager.put(request, &generator); + QNetworkReplyPtr reply(manager.put(request, &generator)); generator.start(); connect(&reader, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); QTimer::singleShot(5000, &generator, SLOT(stop())); @@ -577,7 +577,7 @@ void tst_qnetworkreply::httpUploadPerformance() QNetworkRequest request(QUrl("http://127.0.0.1:" + QString::number(reader.serverPort()) + "/?bare=1")); request.setHeader(QNetworkRequest::ContentLengthHeader,UploadSize); - QNetworkReplyPtr reply = manager.put(request, &generator); + QNetworkReplyPtr reply(manager.put(request, &generator)); connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); @@ -645,10 +645,10 @@ void tst_qnetworkreply::httpDownloadPerformance() HttpDownloadPerformanceServer server(UploadSize, serverSendsContentLength, chunkedEncoding); QNetworkRequest request(QUrl("http://127.0.0.1:" + QString::number(server.serverPort()) + "/?bare=1")); - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection); - HttpDownloadPerformanceClient client(reply); + HttpDownloadPerformanceClient client(reply.data()); QTime time; time.start(); @@ -734,9 +734,9 @@ void tst_qnetworkreply::httpDownloadPerformanceDownloadBuffer() request.setAttribute(QNetworkRequest::MaximumDownloadBufferSizeAttribute, 1024*1024*128); // 128 MB is max allowed QNetworkAccessManager manager; - QNetworkReplyPtr reply = manager.get(request); + QNetworkReplyPtr reply(manager.get(request)); - HttpDownloadPerformanceClientDownloadBuffer client(reply, testType, UploadSize); + HttpDownloadPerformanceClientDownloadBuffer client(reply.data(), testType, UploadSize); QBENCHMARK_ONCE { QTestEventLoop::instance().enterLoop(40); -- cgit v1.2.3