274 void ignoreSslErrorsList(); |
274 void ignoreSslErrorsList(); |
275 void ignoreSslErrorsListWithSlot_data(); |
275 void ignoreSslErrorsListWithSlot_data(); |
276 void ignoreSslErrorsListWithSlot(); |
276 void ignoreSslErrorsListWithSlot(); |
277 #endif |
277 #endif |
278 |
278 |
|
279 void getAndThenDeleteObject_data(); |
|
280 void getAndThenDeleteObject(); |
|
281 |
279 // NOTE: This test must be last! |
282 // NOTE: This test must be last! |
280 void parentingRepliesToTheApp(); |
283 void parentingRepliesToTheApp(); |
281 }; |
284 }; |
282 |
285 |
283 QT_BEGIN_NAMESPACE |
286 QT_BEGIN_NAMESPACE |
4106 QCOMPARE(reply->error(), expectedNetworkError); |
4109 QCOMPARE(reply->error(), expectedNetworkError); |
4107 } |
4110 } |
4108 |
4111 |
4109 #endif // QT_NO_OPENSSL |
4112 #endif // QT_NO_OPENSSL |
4110 |
4113 |
|
4114 void tst_QNetworkReply::getAndThenDeleteObject_data() |
|
4115 { |
|
4116 QTest::addColumn<bool>("replyFirst"); |
|
4117 |
|
4118 QTest::newRow("delete-reply-first") << true; |
|
4119 QTest::newRow("delete-qnam-first") << false; |
|
4120 } |
|
4121 |
|
4122 void tst_QNetworkReply::getAndThenDeleteObject() |
|
4123 { |
|
4124 // yes, this will leak if the testcase fails. I don't care. It must not fail then :P |
|
4125 QNetworkAccessManager *manager = new QNetworkAccessManager(); |
|
4126 QNetworkRequest request("http://" + QtNetworkSettings::serverName() + "/qtest/bigfile"); |
|
4127 QNetworkReply *reply = manager->get(request); |
|
4128 reply->setReadBufferSize(1); |
|
4129 reply->setParent((QObject*)0); // must be 0 because else it is the manager |
|
4130 |
|
4131 QTime stopWatch; |
|
4132 stopWatch.start(); |
|
4133 forever { |
|
4134 QCoreApplication::instance()->processEvents(); |
|
4135 if (reply->bytesAvailable()) |
|
4136 break; |
|
4137 if (stopWatch.elapsed() >= 30000) |
|
4138 break; |
|
4139 } |
|
4140 |
|
4141 QVERIFY(reply->bytesAvailable()); |
|
4142 QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); |
|
4143 QVERIFY(!reply->isFinished()); // must not be finished |
|
4144 |
|
4145 QFETCH(bool, replyFirst); |
|
4146 |
|
4147 if (replyFirst) { |
|
4148 delete reply; |
|
4149 delete manager; |
|
4150 } else { |
|
4151 delete manager; |
|
4152 delete reply; |
|
4153 } |
|
4154 } |
|
4155 |
|
4156 |
|
4157 |
4111 // NOTE: This test must be last testcase in tst_qnetworkreply! |
4158 // NOTE: This test must be last testcase in tst_qnetworkreply! |
4112 void tst_QNetworkReply::parentingRepliesToTheApp() |
4159 void tst_QNetworkReply::parentingRepliesToTheApp() |
4113 { |
4160 { |
4114 QNetworkRequest request (QUrl("http://" + QtNetworkSettings::serverName())); |
4161 QNetworkRequest request (QUrl("http://" + QtNetworkSettings::serverName())); |
4115 manager.get(request)->setParent(this); // parent to this object |
4162 manager.get(request)->setParent(this); // parent to this object |