summaryrefslogtreecommitdiffstats
path: root/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp')
-rw-r--r--tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp341
1 files changed, 193 insertions, 148 deletions
diff --git a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
index e93b226b04..2d784fcbbc 100644
--- a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
+++ b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
@@ -75,6 +75,7 @@
#include <QtNetwork/qnetworkconfigmanager.h>
#include <QtNetwork/qnetworkconfiguration.h>
#include <QtNetwork/qnetworksession.h>
+#include <QtNetwork/private/qnetworksession_p.h>
#endif
#ifdef QT_BUILD_INTERNAL
#include <QtNetwork/private/qnetworkaccessmanager_p.h>
@@ -102,15 +103,7 @@ Q_DECLARE_METATYPE(QList<QFile*>) // for multiparts
Q_DECLARE_METATYPE(QSslConfiguration)
#endif
-class QNetworkReplyPtr: public QSharedPointer<QNetworkReply>
-{
-public:
- inline QNetworkReplyPtr(QNetworkReply *ptr = 0)
- : QSharedPointer<QNetworkReply>(ptr)
- { }
-
- inline operator QNetworkReply *() const { return data(); }
-};
+typedef QSharedPointer<QNetworkReply> QNetworkReplyPtr;
class MyCookieJar;
class tst_QNetworkReply: public QObject
@@ -158,6 +151,12 @@ class tst_QNetworkReply: public QObject
QScopedPointer<QNetworkSession> 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();
@@ -404,6 +403,9 @@ private Q_SLOTS:
void ftpAuthentication_data();
void ftpAuthentication();
+ void backgroundRequest_data();
+ void backgroundRequest();
+
// NOTE: This test must be last!
void parentingRepliesToTheApp();
private:
@@ -745,6 +747,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()));
@@ -1181,15 +1185,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;
@@ -1214,23 +1218,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:
@@ -1252,7 +1256,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();
@@ -1280,7 +1284,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()));
@@ -1309,7 +1313,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()) {
@@ -1404,7 +1408,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());
@@ -1571,7 +1575,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());
@@ -1809,7 +1813,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())
@@ -2503,7 +2507,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;
@@ -2584,7 +2588,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()),
@@ -2616,7 +2620,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()));
@@ -2648,7 +2652,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);
@@ -2682,7 +2686,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);
@@ -2707,11 +2711,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);
@@ -2737,7 +2741,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);
@@ -2758,11 +2762,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);
@@ -2791,7 +2795,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);
@@ -2809,7 +2813,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);
@@ -2857,11 +2861,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*)),
@@ -2884,7 +2888,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*)));
@@ -2910,7 +2914,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
@@ -2936,7 +2940,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
@@ -2965,7 +2969,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);
@@ -2984,13 +2988,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*)),
@@ -3015,7 +3019,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());
@@ -3042,7 +3046,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);
@@ -3068,7 +3072,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);
@@ -3088,7 +3092,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());
@@ -3111,7 +3115,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());
@@ -3142,7 +3146,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<QSslError>)));
@@ -3174,7 +3178,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);
@@ -3199,7 +3203,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);
@@ -3261,8 +3265,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);
@@ -3292,7 +3296,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);
@@ -3315,7 +3319,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);
@@ -3485,7 +3489,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);
@@ -3709,7 +3713,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*)));
@@ -3777,7 +3781,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);
@@ -3812,7 +3816,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);
@@ -3856,8 +3860,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())
@@ -3909,7 +3913,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);
@@ -3943,7 +3947,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);
@@ -3992,7 +3996,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);
@@ -4007,7 +4011,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);
@@ -4033,7 +4037,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);
@@ -4106,7 +4110,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*)),
@@ -4183,7 +4187,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();
@@ -4209,7 +4213,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*)));
@@ -4238,7 +4242,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*)));
@@ -4266,7 +4270,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*)));
@@ -4298,7 +4302,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*)),
@@ -4376,11 +4380,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<QSslError>&)), reply, SLOT(ignoreSslErrors()));
+ connect(reply, SIGNAL(sslErrors(const QList<QSslError>&)), reply.data(), SLOT(ignoreSslErrors()));
// get the request started and the incoming socket connected
QTestEventLoop::instance().enterLoop(10);
@@ -4464,11 +4468,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();
@@ -4523,8 +4527,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
@@ -4583,8 +4587,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()));
@@ -4623,7 +4627,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);
@@ -4637,7 +4641,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);
@@ -4651,7 +4655,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);
@@ -4690,11 +4694,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;
@@ -4742,8 +4746,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());
@@ -4808,9 +4812,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());
@@ -4851,12 +4855,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);
@@ -5087,10 +5091,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);
@@ -5130,7 +5134,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.
@@ -5217,7 +5221,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());
@@ -5242,11 +5246,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);
@@ -5270,7 +5274,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);
@@ -5300,12 +5304,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);
@@ -5552,7 +5556,7 @@ void tst_QNetworkReply::ignoreSslErrorsList()
{
QFETCH(QString, url);
QNetworkRequest request(url);
- QNetworkReplyPtr reply = manager.get(request);
+ QNetworkReplyPtr reply(manager.get(request));
QFETCH(QList<QSslError>, expectedSslErrors);
reply->ignoreSslErrors(expectedSslErrors);
@@ -5579,7 +5583,7 @@ void tst_QNetworkReply::ignoreSslErrorsListWithSlot()
{
QFETCH(QString, url);
QNetworkRequest request(url);
- QNetworkReplyPtr reply = manager.get(request);
+ QNetworkReplyPtr reply(manager.get(request));
QFETCH(QList<QSslError>, expectedSslErrors);
// store the errors to ignore them later in the slot connected below
@@ -5614,7 +5618,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);
@@ -5889,9 +5893,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);
@@ -5909,7 +5913,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);
@@ -5933,7 +5937,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);
@@ -5952,7 +5956,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);
@@ -5981,7 +5985,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);
@@ -6004,7 +6008,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);
@@ -6017,7 +6021,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);
@@ -6031,11 +6035,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);
@@ -6124,7 +6128,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());
@@ -6137,7 +6141,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());
@@ -6165,7 +6169,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());
@@ -6181,7 +6185,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());
@@ -6199,7 +6203,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());
@@ -6214,7 +6218,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());
@@ -6323,7 +6327,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);
@@ -6334,7 +6338,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);
@@ -6346,9 +6350,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);
@@ -6370,7 +6374,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);
@@ -6389,7 +6393,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);
@@ -6410,7 +6414,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);
@@ -6573,16 +6577,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);
@@ -6590,7 +6593,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);
@@ -6621,7 +6624,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);
@@ -6638,7 +6641,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);
@@ -6691,7 +6694,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);
}
@@ -6702,7 +6705,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");
@@ -6714,7 +6717,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");
@@ -6728,7 +6731,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);
@@ -6746,7 +6749,7 @@ void tst_QNetworkReply::pipeliningHelperSlot() {
pipeliningWasUsed = true;
// check that the contents match (the response to echo.cgi?3 should return 3 etc.)
- QString urlQueryString = reply->url().queryItems().at(0).first;
+ QString urlQueryString = reply->url().query();
QString content = reply->readAll();
QVERIFY2(urlQueryString == content, "data corruption with pipelining detected");
@@ -6779,7 +6782,6 @@ void tst_QNetworkReply::closeDuringDownload()
QTest::qWait(1000); //cancelling ftp takes some time, this avoids a warning caused by test's cleanup() destroying the connection cache before the abort is finished
}
-
void tst_QNetworkReply::ftpAuthentication_data()
{
QTest::addColumn<QString>("referenceName");
@@ -6807,6 +6809,49 @@ void tst_QNetworkReply::ftpAuthentication()
QCOMPARE(reply->error(), QNetworkReply::NetworkError(error));
}
+void tst_QNetworkReply::backgroundRequest_data()
+{
+ QTest::addColumn<bool>("background");
+ QTest::addColumn<int>("policy");
+ QTest::addColumn<QNetworkReply::NetworkError>("error");
+
+ QTest::newRow("fg, normal") << false << 0 << QNetworkReply::NoError;
+ QTest::newRow("bg, normal") << true << 0 << QNetworkReply::NoError;
+ QTest::newRow("fg, nobg") << false << (int)QNetworkSession::NoBackgroundTrafficPolicy << QNetworkReply::NoError;
+ QTest::newRow("bg, nobg") << true << (int)QNetworkSession::NoBackgroundTrafficPolicy << QNetworkReply::BackgroundRequestNotAllowedError;
+
+}
+
+void tst_QNetworkReply::backgroundRequest()
+{
+#ifdef QT_BUILD_INTERNAL
+ QFETCH(bool, background);
+ QFETCH(int, policy);
+ QFETCH(QNetworkReply::NetworkError, error);
+
+ QNetworkRequest request(QUrl("http://" + QtNetworkSettings::serverName()));
+
+ if (background)
+ request.setAttribute(QNetworkRequest::BackgroundRequestAttribute, QVariant::fromValue(true));
+
+ //this preconstructs the session so we can change policies in advance
+ manager.setConfiguration(networkConfiguration);
+
+ const QWeakPointer<const QNetworkSession> session = QNetworkAccessManagerPrivate::getNetworkSession(&manager);
+ QVERIFY(session);
+ QNetworkSession::UsagePolicies original = session.data()->usagePolicies();
+ QNetworkSessionPrivate::setUsagePolicies(*const_cast<QNetworkSession *>(session.data()), QNetworkSession::UsagePolicies(policy));
+
+ QNetworkReplyPtr reply(manager.get(request));
+
+ QVERIFY(waitForFinish(reply) != Timeout);
+ if (session)
+ QNetworkSessionPrivate::setUsagePolicies(*const_cast<QNetworkSession *>(session.data()), original);
+
+ QVERIFY(reply->isFinished());
+ QCOMPARE(reply->error(), error);
+#endif
+}
// NOTE: This test must be last testcase in tst_qnetworkreply!
void tst_QNetworkReply::parentingRepliesToTheApp()